解决警告Creating a tensor from a list of numpy.ndarrays is extremely slow.

  • 我的问题是创建一个列表x=[],然后不断读入数据使用x.append(sample),chatgpt说这样转化比较低效,如果预先知道样本个数,可以用numpy来创建数组,再用索引x[i]=sample赋值
  • 第二种方法更快,直接用numpy转化一下np.array(list_of_ndarrays)

这个警告是因为你在将一个包含多个 numpy ndarrays 的列表直接转换为 PyTorch 的 tensor。这样做会非常慢,建议先将这些 ndarrays 转换为单个 numpy ndarray,然后再转换为 tensor。你可以按照以下步骤来实现这一点:

  1. 将列表转换为 numpy ndarray :使用 numpy.array() 将列表中的多个 numpy ndarrays 合并为一个单一的 numpy ndarray。
  2. 将 numpy ndarray 转换为 PyTorch tensor :使用 torch.tensor()torch.from_numpy()

以下是一个示例代码:

python 复制代码
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)

这样做不仅可以避免警告,还能提高代码的效率。

相关推荐
ROBOT玲玉8 小时前
Milvus 中,FieldSchema 的 dim 参数和索引参数中的 “nlist“ 的区别
python·机器学习·numpy
GocNeverGiveUp9 小时前
机器学习2-NumPy
人工智能·机器学习·numpy
AI小白白猫1 天前
20241230 基础数学-线性代数-(1)求解特征值(numpy, scipy)
线性代数·numpy·scipy
子晓聊技术5 天前
【Python技术】同花顺wencai涨停分析基础上增加连板分析
后端·python·numpy
西猫雷婶8 天前
python学opencv|读取图像(九)用numpy创建黑白相间灰度图
python·opencv·numpy
星霜旅人8 天前
Python的基础知识
开发语言·python·numpy
fmc12110410 天前
【3】数据分析基础(Numpy的计算)
数据挖掘·数据分析·numpy
HP-Patience10 天前
【NumPy进阶】:内存视图、性能优化与高级线性代数
python·numpy
sinat_3842410912 天前
Python程序是一个基于Tkinter的GUI应用程序,用于录制和回放用户的鼠标和键盘操作
python·django·flask·beautifulsoup·numpy·scikit-learn
yivifu13 天前
利用cnocr库完成中文扫描pdf文件的文字识别
python·pdf·numpy·pymupdf·cnocr