RuntimeError: Integer division of tensors using div or / is no longer supported, and in a future release div will perform true division as in Python 3. Use true_divide or floor_divide (// in Python) instead.
示例代码:
from torchvision import transforms
import numpy as np
data = np.random.randint(0, 255, size=12)
img = data.reshape(2, 2, 3)
print(img.shape)
img_tensor = transforms.ToTensor()(img) # 转换成tensor
print(img_tensor)
print(img_tensor.shape)
print("*" * 20)
norm_img = transforms.Normalize((10, 10, 10), (1, 1, 1))(img_tensor) # 进行规范化处理
print(norm_img)
运行效果:
原因:
pytorch1.5.0是可以的,但升级到1.6.0,发现tensor和int之间的除法不能直接用'/'。
解决方案:对数据进行规范化处理
示例代码:
from torchvision import transforms
import numpy as np
data = np.random.randint(0, 255, size=12)
img = data.reshape(2, 2, 3)
print(img.shape)
img_tensor = transforms.ToTensor()(img) # 转换成tensor
print(img_tensor)
print(img_tensor.shape)
print("*" * 20)
img_tensor = img_tensor.float() # 加上这一行
norm_img = transforms.Normalize((10, 10, 10), (1, 1, 1))(img_tensor) # 进行规范化处理
print(norm_img)
运行结果: