torchvision.Transform.ToTensor()将图片正确输入网络

ToTensor()描述如下:
在这里插入图片描述
它会将图片从NHWC转换为NCHW且变为tensor,并且通过除以255将图片归一化到(0,1)。
注意,通道的顺序与你读取图片所用的工具有关:
PIL: (R,G,G)
cv2:(B,G,R)
例子如下:

import torch
from PIL import Image
import cv2

from torchvision import transforms
import numpy


img_PIL = Image.open("000001.jpg")
img_cv2 = cv2.imread("000001.jpg")
print(img_PIL.size)       ##  WH
print(img_cv2.shape)      ##  HWC

img_PIL_np = numpy.array(img_PIL) #转为numpy后,变为CHW
print(img_PIL_np.shape)   ##    HWC


tran = transforms.ToTensor()### 注意用这种写法
img_PIL_tensor = tran(img_PIL)
img_cv2_tensor = tran(img_cv2)

print(img_PIL_tensor.size())  #CHW (RGB)
print(img_cv2_tensor.size())  #CHW (BGR)

输出结果:
(409, 687)
(687, 409, 3)
(687, 409, 3)
torch.Size([3, 687, 409])
torch.Size([3, 687, 409])

注意:
当使用PIL.Image.open()打开图片后,如果要使用img.shape函数,需要先将image形式转换成array数组
torchvision.Transform.ToTensor()这个工具在数据处理时还是非常方便的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

通信仿真爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值