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

  • 我的问题是创建一个列表x=\[\],然后不断读入数据使用x.append(sample),chatgpt说这样转化比较低效,如果预先知道样本个数,可以用numpy来创建数组,再用索引xi=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)

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

相关推荐
张宇Joaquin3 天前
鲲鹏统一并行加速库KUPL--异步数据拷贝
线性代数·算法·矩阵·numpy
方知我3 天前
NumPy一小时速成
开发语言·python·numpy
典典分享指南3 天前
Excel SUMIFS 跨表汇总实战:多表条件求和的完整指南
django·flask·numpy·pyqt·fastapi
泡干脆面就番茄10 天前
NumPy 科学计算完全指南:从数组创建到广播机制
python·numpy
战略性的菠萝13 天前
学习笔记-Numpy知识
python·numpy
典典分享指南14 天前
GEO 实战:从挖搜索词到监控 AI 收录,一套内容流水线怎么搭
开发语言·青少年编程·numpy·erlang
智购科技自动售卖机厂家15 天前
2026自动售货机OTA升级系统设计:从全量升级到差分升级的带宽优化工程实践~YH
大数据·人工智能·numpy·pyqt·fastapi
️学习的小王15 天前
NumPy完整学习笔记:ndarray数组详解、创建、索引切片、常用函数与运算
笔记·学习·numpy
BK贝壳16 天前
Python底层:1亿个布尔值缓存失效标记,list爆内存numpy爆拷贝,bool-hybrid-array混合存储实测
数据结构·python·缓存·性能优化·list·numpy
爱吃火鸡面呀16 天前
NumPy 从入门到精通:一份完整的高质量学习路线与实践指南
学习·numpy