报错代码示例
import cv2
img = cv2.imread('./1.png')
img = img[:, ::-1, :]
import torch
torch.LongTensor(img)
报错信息
Traceback (most recent call last):
File "xx/test.py", line 9, in <module>
torch.LongTensor(img)
ValueError: some of the strides of a given numpy array are negative. This is currently not supported, but will be added in future releases.
原因分析
- 在对numpy数据进行翻转后,比如使用np.flip或[::-1],会导致翻转后的内存不连续。
- 将numpy数据转为PyTorch的tensor数据时,要求numpy数据内存是连续的。
解决方案
为了获取内存连续的numpy数据,可以在翻转后使用copy(),修改后代码如下。
import cv2
img = cv2.imread('./1.png')
img = img[:, ::-1, :].copy()
import torch
torch.LongTensor(img)