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

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

相关推荐
winfreedoms2 天前
ubuntu24.04安装numpy时报错error: externally-managed-environment解决办法
numpy
人工小情绪2 天前
python报错:AttributeError: module ‘numpy‘ has no attribute ‘object‘.
python·numpy·neo4j
郑泰科技3 天前
python深度学习报错:Original error was: No module named ‘numpy.core._multiarray_umath‘
python·深度学习·numpy
Java后端的Ai之路3 天前
【Python进阶学习】-NumPy详细介绍指南(附demo)
python·学习·numpy
laplace01234 天前
LangChain 1.0 入门实战 · Part 6:LangChain Agent 中间件(Middleware)入门介绍
笔记·python·中间件·langchain·numpy·pandas
laplace01234 天前
LangChain 1.0 入门实战(Part 1)详细笔记
笔记·python·langchain·numpy·pandas
liu****5 天前
04_Pandas数据分析入门
python·jupyter·数据挖掘·数据分析·numpy·pandas·python常用工具
玄同7655 天前
Python 装饰器:LLM API 的安全与可观测性增强
开发语言·人工智能·python·安全·自然语言处理·numpy·装饰器
adjust25866 天前
day 46
人工智能·机器学习·numpy
渡我白衣6 天前
计算机组成原理(11):加法器
python·机器学习·numpy·pandas·matplotlib·计组·数电