作用:将特定的图片通过transforms工具处理,得到我们想要的结果。
ToTensor写成如下会报错:
img=cv2.imread('./data/train/ants/0013035.jpg')
tensor_img=transforms.ToTensor(img)
print(tensor_img)
正确形式:
img=cv2.imread('./data/train/ants/0013035.jpg')
tensor_trans=transforms.ToTensor()
tensor_img=tensor_trans(img)
print(tensor_img)
原因:
在PyTorch的torchvision.transforms
模块中,ToTensor
是一个用于图像预处理的类,而不是一个函数。因此,你不能直接调用transforms.ToTensor(img)
来转换图像,因为这不是这个类设计的使用方式。
ToTensor
类是用来创建一个预处理对象的,该对象可以被调用以将PIL图像或NumPy ndarray转换为PyTorch张量(tensor)。
正确的使用方式是:
- 首先,实例化
ToTensor
类,得到一个转换对象。 - 然后,使用该转换对象来转换图像。
遇见小错误:tensorboard无法显示图片,原因:忘记 writer.close()
__call__函数和普通函数的区别:
class Person:
def __call__(self,name):
print('__call__'+' hello'+name)