声明PyTorch张量时有关尺寸的参数错误

声明PyTorch张量时有关尺寸的参数错误,pytorch,Pytorch,我目前正试图将一个值列表转换为PyTorch张量,并且面临一些困难 导致错误的确切代码是: input_tensor = torch.cuda.FloatTensor(data) 这里,data是一个包含两个元素的列表:第一个元素是另一个NumPy数组列表,第二个元素是元组列表。两个列表的大小不同,我认为这导致了以下错误: *** ValueError: expected sequence of length x at dim 2 (got y) 通常y大于x。我试着用IPython终端看看

我目前正试图将一个值列表转换为PyTorch张量,并且面临一些困难

导致错误的确切代码是:

input_tensor = torch.cuda.FloatTensor(data)
这里,
data
是一个包含两个元素的列表:第一个元素是另一个NumPy数组列表,第二个元素是元组列表。两个列表的大小不同,我认为这导致了以下错误:

*** ValueError: expected sequence of length x at dim 2 (got y)
通常
y
大于
x
。我试着用IPython终端看看有什么问题,但似乎试图将这种格式的数据直接转换成PyTorch张量是行不通的。不过,将
数据列表中的每个元素转换成张量是可行的


有没有人知道为什么这不起作用,也许还能就如何实现我最初的目标提供一些反馈?提前感谢。

假设
数据的第一个子列表包含
n
1D数组,每个数组的大小
m
,第二个子列表包含
k
元组,每个数组的大小
p

调用
torch.FloatTensor(data)
时,每个子列表分别转换为二维张量,其形状
(n,m)
和形状
(k,p)
;然后它们叠加在一起形成一个三维张量。只有当
n=k
m=p
将三维张量视为长方体时,这才有可能

我认为这是非常明显的,所以我猜你有
m=p
,并且想要通过简单地连接两个子列表来创建形状为
(n+k,m)
的二维张量:

torch.FloatTensor(np.concatenate(data))

假设
数据的第一个子列表包含
n
1D数组,每个数组的大小
m
,第二个子列表包含
k
元组,每个数组的大小
p

调用
torch.FloatTensor(data)
时,每个子列表分别转换为二维张量,其形状
(n,m)
和形状
(k,p)
;然后它们叠加在一起形成一个三维张量。只有当
n=k
m=p
将三维张量视为长方体时,这才有可能

我认为这是非常明显的,所以我猜你有
m=p
,并且想要通过简单地连接两个子列表来创建形状为
(n+k,m)
的二维张量:

torch.FloatTensor(np.concatenate(data))