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

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

相关推荐
敲代码不忘补水9 小时前
Python Matplotlib 数据可视化全面解析:选择它的七大理由与入门简介
开发语言·python·信息可视化·numpy·pandas·matplotlib
取个名字真难呐2 天前
2、PyTorch张量的运算API(上)
pytorch·python·numpy
敲代码不忘补水2 天前
pandas 机器学习数据预处理:从缺失值到特征切分的全面解析
人工智能·后端·python·机器学习·numpy·pandas·matplotlib
小青头7 天前
numpy学习笔记
笔记·学习·numpy
取个名字真难呐7 天前
矩阵乘法实现获取第i行,第j列值,矩阵大小不变
python·线性代数·矩阵·numpy
小锋学长生活大爆炸8 天前
【教程】Cupy、Numpy、Torch互相转换
pytorch·numpy·cupy
鱼灯几许10 天前
Python爬虫
爬虫·python·numpy
爱折腾的小码农10 天前
记一次宝塔centos出现Failed to start crond.service: Unit crond.service not found.解决
python·centos·numpy
正义的彬彬侠12 天前
XGBoost算法Python代码实现
python·决策树·机器学习·numpy·集成学习·boosting·xgboost
竹笋常青14 天前
《流星落凡尘》
django·numpy