class_docstr: Structure that holds a list of images (of possibly
  varying sizes) as a single tensor.
  This works by padding the images to the same size.
  The original sizes of each image is stored in `image_sizes`.
  
  Attributes:
      image_sizes (list[tuple[int, int]]): each tuple is (h, w).
          During tracing, it becomes list[Tensor] instead.
class_docstr_tok: ["Structure","that","holds","a","list","of","images","(","of","possibly","varying","sizes",")","as","a","single","tensor",".","This","works","by","padding","the","images","to","the","same","size",".","The","original","sizes","of","each","image","is","stored","in","`","image_sizes","`",".","Attributes",":","image_sizes","(","list","[","tuple","[","int",",","int","]","]",")",":","each","tuple","is","(","h",",","w",")",".","During","tracing",",","it","becomes","list","[","Tensor","]","instead","."]
code: def device(self) -> device:
      return self.tensor.device
  
file_path: detectron2/detectron2/structures/image_list.py
imports: from __future__ import division
  from typing import Any, Dict, List, Optional, Tuple
  import torch
  from torch import device
  from torch.nn import functional
  from detectron2.layers.wrappers import move_device_like, shapes_to_tensor
label_desc: Use image node_id 5 for calling the ImageList obj's underlying member method code with example usage: obj.device() and returns: self