警告虽然无伤大雅,但是看着不好看
这个警告表示将一个不可写的NumPy数组转换为PyTorch张量。避免这个警告只需要在转换之前创建一个NumPy数组的副本。
这样写就会有警告
img = np.asarray(pil_img)
应该类似这样写
img = np.array(pil_img, copy=True)
原因:
当使用 Image.open()
打开图像并将其转换为 NumPy 数组时,该数组可能是只读的。如果直接将这个只读的 NumPy 数组传递给 torch.as_tensor()
,则 PyTorch 会发出警告,因为它不能保证在只读数组上进行操作是安全的。通过 np.array(pil_img, copy=True)
,创建了一个新的 NumPy 数组,这个数组是可写的。