本人语法不太好,想问一下调用Totensor为什么可以这样调用是实例化给tensor_tans的意思吗?
tensor_tans = transforms.ToTensor()
tensor_img = tensor_tans(img)
还有就是为什么不能这样调用tensor_tans = transforms.ToTensor(img)而是需要像这样:tensor_tans = transforms.ToTensor()(img)。
Totensor不能这样用的原因是因为什么吗?
本人语法不太好,想问一下调用Totensor为什么可以这样调用是实例化给tensor_tans的意思吗?
tensor_tans = transforms.ToTensor()
tensor_img = tensor_tans(img)
还有就是为什么不能这样调用tensor_tans = transforms.ToTensor(img)而是需要像这样:tensor_tans = transforms.ToTensor()(img)。
Totensor不能这样用的原因是因为什么吗?
transforms.ToTensor() 是一个类的实例化对象,它是 transforms.ToTensor 这个类的一个实例化对象。通过调用这个对象,就可以将图片转化为张量。
这种方式可以通过多次调用 tensor_tans 来对多个图片进行转化,每次转化时使用同一个实例化对象,以保证每张图片被转化的方式一致。
而在 transforms.ToTensor(img) 这种方式下,将 img 作为参数传入时,实际上调用了 ToTensor 这个类的构造函数,而不是它的 call 函数。由于 ToTensor 的构造函数并不支持接收一个图像参数,所以会报错。
因此,在调用 transforms.ToTensor() 时不需要传入参数,而在调用 call 函数时才需要传入待转换的图片作为参数。