list转tensor很慢
今天写代码,想将list转成tensor,发现异常慢,跑不出结果,问了chatgpt很多次都没找到原因,然后在网上翻到一个博客:List 转 pytorch tensor 的各种方式速度对比_list to tensor-CSDN博客
大致内容是如果list里边含有np.array类型的数据,那么list转tensor就会非常慢,除非list先转成np.array,np.array再转成tensor
我看了下我的代码:
X=[]
test_X = []
# X变成像素矩阵
for item in train_data.iloc[:,:-1].values:
image=plt.imread('../data/classify-leaves/'+item[0])
X.append(image)
X是一个列表,但是循环里边得到的元素image是np.array,所以我的X是一个含np.array数据的list,难怪torch.tensor(X)这么慢 ,
X=torch.tensor(np.array(X))写成这样就把问题解决了