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

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

相关推荐
小白开始进步1 天前
JAKA Zu12 机械臂运动学算法深度解析(含可视化方案)
python·算法·numpy
肾透侧视攻城狮3 天前
《解锁 PyTorch 张量:多维数据操作与 GPU 性能优化全解析》
人工智能·numpy·张量的索引和切片·张量形状变换·张量数学运算操作·张量的gpu加速·张量与 numpy 的互操作
七夜zippoe5 天前
NumPy高级:结构化数组与内存布局优化实战指南
python·架构·numpy·内存·视图
waves浪游7 天前
Ext系列文件系统
linux·服务器·开发语言·c++·numpy
强化试剂瓶8 天前
Silane-PEG8-DBCO,硅烷-聚乙二醇8-二苯并环辛炔技术应用全解析
python·flask·numpy·pyqt·fastapi
Python-AI Xenon9 天前
RHEL / CentOs 7.9 离线升级OpenSSH完整指南
linux·centos·numpy
和小胖112210 天前
Anaconda虚拟环境创建步骤
python·conda·numpy
叫我:松哥11 天前
基于scrapy的网易云音乐数据采集与分析设计实现
python·信息可视化·数据分析·beautifulsoup·numpy·pandas
_Soy_Milk12 天前
【算法工程师】—— Python 数据分析
python·数据分析·numpy·pandas·matplotlib
强化试剂瓶12 天前
Acridinium-Biotin,吖啶生物素偶联物双功能设计的精妙之处
flask·numpy·fastapi·web3.py·tornado