相关文章推荐
逆袭的灭火器  ·  Deep learning with ...·  4 天前    · 
傲视众生的麻辣香锅  ·  springBoot框架 ...·  2 月前    · 
高大的蛋挞  ·  javascript - Node.js: ...·  11 月前    · 
伤情的热水瓶  ·  pymysql insert into ...·  1 年前    · 
有腹肌的苦瓜  ·  Visual Studio ...·  1 年前    · 

ValueError: 在将列表转换为numpy数组时,只有一个元素的张量可以被转换为Python标量

1 人关注

我有一个图像数据集,我正在使用PIL和Torch张量在一个循环中把它们转换成张量,并把它们存储在一个列表中。

def preprocess(string):
    return torch.FloatTensor(np.ascontiguousarray(np.array((PIL.Image.open(string)).convert('RGB'))[:, :, ::-1].transpose(2, 0, 1).astype(np.float32) * (1.0 / 255.0)))
import os
folder_name = 'folder name and path'
train1 = []
for item in folder_name:
    x = preprocess(item)
    train1.append(x)

现在,在训练之前,我想用Np.array将列表转换为Np.array。

train1 = np.array(train1)

This shows the error:

ValueError: only one element tensors can be converted to Python scalars

我还打印了列表train1的成分的形状和类型,发现它们和预期的一样是张量。

谁能帮我解决这个问题?

python
numpy
pytorch
tensor
Khabbab Zakaria
Khabbab Zakaria
发布于 2021-01-31
2 个回答
ffdoctor
ffdoctor
发布于 2021-02-01
0 人赞同

从FloatTensors到numpy数组的转换方式应该是。

train1.append(x.numpy())