Differences with torchvision.transforms.ConvertImageDtype

View Source On Gitee

torchvision.transforms.ConvertImageDtype

class torchvision.transforms.ConvertImageDtype(
    dtype: torch.dtype
    )

For more information, see torchvision.transforms.ConvertImageDtype.

mindspore.dataset.transforms.TypeCast

class mindspore.dataset.transforms.TypeCast(
    output_type
    )

For more information, see mindspore.dataset.transforms.TypeCast.

Differences

PyTorch: Convert a tensor image to the given dtype and scale the values accordingly. This function does not support PIL Image.

MindSpore: Convert the input numpy.ndarray image to the desired dtype.

Code Example

from download import download
from PIL import Image

url = "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/flamingos.jpg"
download(url, './flamingos.jpg', replace=True)
orig_img = Image.open('flamingos.jpg')

# PyTorch
import torch
import torchvision.transforms as T

to_tensor = T.ToTensor()
convert = T.ConvertImageDtype(torch.float)
img_torch = T.Compose([to_tensor, convert])((orig_img))
print(img_torch.dtype)
# Out: torch.float32

# MindSpore
import mindspore.dataset.vision as vision
import mindspore.dataset.transforms as transforms

to_tensor = vision.ToTensor()
convert = transforms.TypeCast("float32")
img_ms = transforms.Compose([to_tensor, convert])((orig_img))
print(img_ms[0].dtype)
# Out: float32