python - 无法将列表转换为数组:ValueError:只能将一个元素张量转换为Python标量

标签 python numpy pytorch numpy-ndarray

我目前正在使用PyTorch框架,并试图了解外部代码。我遇到了一个索引问题,想打印一个列表的形状。
这样做的唯一方法(据Google告诉我)是将列表转换为numpy数组,然后使用numpy.ndarray.shape()获得形状。

但是尝试将我的列表转换成数组,却得到了ValueError: only one element tensors can be converted to Python scalars

我的列表是经过转换的PyTorch张量(list(pytorchTensor)),看起来像这样:


[张量([[--0.2781,-0.2567,-0.2353,...,-0.9640,-0.9855,-1.0069],
[-0.2781,-0.2567,-0.2353,...,-1.0069,-1.0283,-1.0927],
[-0.2567,-0.2567,-0.2138,...,-1.0712,-1.1141,-1.1784],
...,
[-0.6640,-0.6425,-0.6211,...,-1.0712,-1.1141,-1.0927],
[-0.6640,-0.6425,-0.5997,...,-0.9426,-0.9640,-0.9640],
[-0.6640,-0.6425,-0.5997,...,-0.9640,-0.9426,-0.9426]]),张量([[--0.0769,-0.0980,-0.076 9,...,-0.9388,-0.9598, -0.9808],
[-0.0559,-0.0769,-0.0980,...,-0.9598,-1.0018,-1.0228],
[-0.0559,-0.0769,-0.0769,...,-1.0228,-1.0439,-1.0859],
...,
[-0.4973,-0.4973,-0.4973,...,-1.0018,-1.0439,-1.0228],
[-0.4973,-0.4973,-0.4973,...,-0.8757,-0.9177,-0.9177],
[-0.4973,-0.4973,-0.4973,...,-0.9177,-0.8967,-0.8967]]),张量([[--0.1313,-0.1313,-0.110 0,...,-0.8115,-0.8328, -0.8753],
[-0.1313,-0.1525,-0.1313,...,-0.8541,-0.8966,-0.9391],
[-0.1100,-0.1313,-0.1100,...,-0.9391,-0.9816,-1.0666],
...,
[-0.4502,-0.4714,-0.4502,...,-0.8966,-0.8966,-0.8966],
[-0.4502,-0.4714,-0.4502,...,-0.8115,-0.8115,-0.7903],
[-0.4502,-0.4714,-0.4502,...,-0.8115,-0.7690,-0.7690]]]]


有没有一种方法可以在不将其转换为numpy数组的情况下获得列表的形状?

最佳答案

似乎您有一个张量列表。对于每个张量,您可以查看其size()(无需转换为list / numpy)。如果坚持的话,可以使用numpy()将张量转换为numpy数组:

返回张量形状的列表:

>> [t.size() for t in my_list_of_tensors]


返回numpy数组的列表:

>> [t.numpy() for t in my_list_of_tensors]


在性能方面,始终最好避免将张量转换为numpy数组,因为它可能导致设备/主机内存同步。如果只需要检查张量的shape,请使用size()函数。

关于python - 无法将列表转换为数组:ValueError:只能将一个元素张量转换为Python标量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52074153/

相关文章:

python - 根据值在另一个数据帧中的频率将值附加到一个数据帧

python - 在 scipy/numpy 中求解具有已知 y 的多项式的 x 值

python - 为什么 numpy 返回元组给我?

Pytorch:将 2D-CNN 模型转换为 tflite

pytorch - 了解 PyTorch conv1D 的输入形状?

python - 将 Pandas 导出为 CSV 会导致 CSV 中出现#NAME 错误

python - PyInstaller 电子邮件模块错误

python - 是否可以列出模块中的所有功能?

python - 在 Pandas 数据帧中存储 FFT 周期时出现奇怪的问题

python - 如何解决在python中导入torch的ValueError