# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. from __future__ import division import torch from torch.jit.annotations import List, Tuple from torch import Tensor @torch.jit.script class ImageList(object): """ 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, and storing in a field the original sizes of each image """ def __init__(self, tensors, image_sizes): # type: (Tensor, List[Tuple[int, int]]) """ Arguments: tensors (tensor) image_sizes (list[tuple[int, int]]) """ self.tensors = tensors self.image_sizes = image_sizes def to(self, device): # type: (Device) # noqa cast_tensor = self.tensors.to(device) return ImageList(cast_tensor, self.image_sizes)