声明PyTorch张量时有关尺寸的参数错误
我目前正试图将一个值列表转换为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终端看看
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))