共计 932 个字符,预计需要花费 3 分钟才能阅读完成。
Q:torchvision 的 transforms.ToTensor 干了什么事件?
A:torchvision 的 transforms.ToTensor() 是将 PIL Image 或 numpy.ndarray 转化成 torch.FloatTensor 数据类型的办法。这个办法的次要性能是:
- 将 PIL Image 或 numpy.ndarray 转化成 torch.FloatTensor 数据类型。
- 像素值在 0-255 范畴内的 PIL Image 或 numpy.ndarray 在被转化成 torch.FloatTensor 时,会主动除以 255,使其像素值在 0-1 之间。
- 如果像素值曾经在 0-1 范畴内,那么就不会主动除以 255。
简而言之,transforms.ToTensor() 的作用是将输出的 PIL Image 或 numpy.ndarray 转换为 Tensor 类型,并且进行标准化操作,不便神经网络的训练。因为神经网络须要的输出数据类型个别是 FloatTensor 类型,且须要进行标准化,这个过程经常应用 transforms.ToTensor() 办法来实现。
Q:torchvision 的 transforms.ToTensor() 解决过的数据,还能还原回一张图片吗?
A: 能够通过 transforms.ToPILImage() 将解决后的数据转换为 PIL 图像格式,从而还原回一张图片。例如:
from torchvision import transforms | |
from PIL import Image | |
# 读取图片 | |
image = Image.open('example.jpg') | |
# 对图片进行 transforms.ToTensor() 解决 | |
preprocess = transforms.Compose([transforms.ToTensor() | |
]) | |
tensor = preprocess(image) | |
# 将解决后的数据还原成一张图片 | |
to_pil = transforms.ToPILImage() | |
image_restored = to_pil(tensor) | |
image_restored.show() |
这段代码会将一张名为 example.jpg 的图片读入,通过 transforms.ToTensor() 解决后,将解决后的数据还原成一张图片并展现进去。
正文完