解决警告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)

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

相关推荐
JOYCE_Leo163 天前
图像处理:使用Numpy和OpenCV实现傅里叶和逆傅里叶变换
图像处理·opencv·numpy
豆豆5 天前
day17 学习笔记
笔记·学习·numpy
杜子腾dd7 天前
21.Excel自动化:如何使用 xlwings 进行编程
运维·python·自动化·excel·numpy·pandas
赛卡8 天前
“自动驾驶背后的数学” 专栏导读
人工智能·pytorch·python·学习·机器学习·自动驾驶·numpy
Cccc吃吃吃9 天前
python中深浅拷贝以及可变对象和不可变对象
开发语言·jvm·python·beautifulsoup·numpy·pyqt·fastapi
豆芽81911 天前
二项式分布(Binomial Distribution)
人工智能·python·机器学习·numpy·概率论
赛卡12 天前
自动驾驶系统的车辆动力学建模:自行车模型与汽车模型的对比分析
python·算法·数学建模·自动驾驶·numpy·matplotlib
夜松云12 天前
线性代数核心概念与NumPy科学计算实战全解析
数据结构·人工智能·python·线性代数·算法·机器学习·numpy
fen_fen12 天前
numpy学习笔记10:arr *= 2向量化操作性能优化
学习笔记·numpy
杜子腾dd13 天前
20. Excel 自动化:Excel 对象模型
运维·python·数据挖掘·自动化·excel·numpy·pandas