mindspore.dataset.vision.ToTensor

class mindspore.dataset.vision.ToTensor(output_type=np.float32)[源代码]

将输入PIL图像或numpy.ndarray图像转换为指定类型的numpy.ndarray图像,图像的像素值范围将从[0, 255]放缩为[0.0, 1.0],shape将从<H, W, C>调整为<C, H, W>。

参数:
  • output_type (Union[mindspore.dtype, numpy.dtype],可选) - 输出图像的数据类型。默认值: np.float32

异常:
  • TypeError - 当输入图像的类型不为 PIL.Image.Imagenumpy.ndarray

  • TypeError - 输入图像的维度不为2或3。

支持平台:

CPU

样例:

>>> import numpy as np
>>> import mindspore.dataset as ds
>>> import mindspore.dataset.vision as vision
>>> from mindspore.dataset.transforms import Compose
>>>
>>> # Use the transform in dataset pipeline mode
>>> data = np.random.randint(0, 255, size=(1, 100, 100, 3)).astype(np.uint8)
>>> numpy_slices_dataset = ds.NumpySlicesDataset(data, ["image"])
>>> # create a list of transformations to be applied to the "image" column of each data row
>>> transforms_list = Compose([vision.RandomHorizontalFlip(0.5),
...                            vision.ToTensor()])
>>> # apply the transform to dataset through map function
>>> numpy_slices_dataset = numpy_slices_dataset.map(operations=transforms_list, input_columns="image")
>>> for item in numpy_slices_dataset.create_dict_iterator(num_epochs=1, output_numpy=True):
...     print(item["image"].shape, item["image"].dtype)
...     break
(3, 100, 100) float32
>>>
>>> # Use the transform in eager mode
>>> data = np.random.randint(0, 255, size=(100, 100, 3)).astype(np.uint8)
>>> output = vision.ToTensor()(data)
>>> print(output.shape, output.dtype)
(3, 100, 100) float32
教程样例: