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.Image 或
numpy.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
- 教程样例: