- 我的问题是创建一个列表x=[],然后不断读入数据使用x.append(sample),chatgpt说这样转化比较低效,如果预先知道样本个数,可以用numpy来创建数组,再用索引x[i]=sample赋值
- 第二种方法更快,直接用numpy转化一下np.array(list_of_ndarrays)
这个警告是因为你在将一个包含多个 numpy ndarrays 的列表直接转换为 PyTorch 的 tensor。这样做会非常慢,建议先将这些 ndarrays 转换为单个 numpy ndarray,然后再转换为 tensor。你可以按照以下步骤来实现这一点:
- 将列表转换为 numpy ndarray:使用
numpy.array()
将列表中的多个 numpy ndarrays 合并为一个单一的 numpy ndarray。 - 将 numpy ndarray 转换为 PyTorch tensor:使用
torch.tensor()
或torch.from_numpy()
。
以下是一个示例代码:
import numpy as np
import torch
# 假设你有一个包含多个 numpy ndarrays 的列表
list_of_ndarrays = [np.array([1, 2, 3]), np.array([4, 5, 6]), np.array([7, 8, 9])]
# 将列表转换为单个 numpy ndarray
combined_ndarray = np.array(list_of_ndarrays)
# 将 numpy ndarray 转换为 PyTorch tensor
tensor = torch.tensor(combined_ndarray)
print(tensor)
这样做不仅可以避免警告,还能提高代码的效率。