将数组的元组转换为张量,然后将它们堆叠在 pytorch 中
Convert tuple of arrays into tensors to then stack them in pytorch
我有一个名为 train 的元组,包含 2 个数组,第一个 (10000,10),第二个 (1000):
(array([[0.0727882 , 0.82148589, 0.9932996 , ..., 0.9604997 , 0.48725072,
0.87095636],
[0.28299425, 0.94904277, 0.69887889, ..., 0.59392614, 0.96375439,
0.23708264],
[0.44746802, 0.46455956, 0.99537243, ..., 0.03077313, 0.60441346,
0.5284877 ],
...,
[0.74851845, 0.59469311, 0.20880812, ..., 0.82080042, 0.16033365,
0.94729764],
[0.56686195, 0.35784948, 0.15531381, ..., 0.95415527, 0.88907735,
0.39981913],
[0.61606041, 0.30158736, 0.65476444, ..., 0.0637397 , 0.76772078,
0.85285724]]), array([ 9.78050432, 21.84804394, 13.14748592, ..., 17.86811178,
14.94744237, 9.80791838]))
我试过将它们堆叠起来,但形状不匹配
seq = torch.as_tensor(train[0], dtype=None, device=None)
label = torch.as_tensor(train[1], dtype=None, device=None)
#seq.size() = torch.Size([10000,10])
#label.size() = torch.Size([10000])
我的目标是用 10000 张量标签堆叠 10000 个 len(10) 张量。能够像人们处理图像一样将 seq 视为单个张量。
其中一个实例看起来像这样:
[tensor(0.0727882 , 0.82148589, 0.9932996 , ..., 0.9604997 , 0.48725072,
0.87095636]), tensor(9.78050432)]
谢谢你,
Where/what 正是您的错误?
因为,要获得所需的输出,看起来您只需 运行:
stack = [[seq[i],label[i]] for i in range(seq.shape[0])]
但是,如果你想要一个大小为 [10000,11] 的序列,那么你需要扩展标签张量的维数,使其可以沿第二个轴连接(组成那个词):
label = torch.unsqueeze(label,1)
stack = torch.cat([seq,label],1)
我有一个名为 train 的元组,包含 2 个数组,第一个 (10000,10),第二个 (1000):
(array([[0.0727882 , 0.82148589, 0.9932996 , ..., 0.9604997 , 0.48725072,
0.87095636],
[0.28299425, 0.94904277, 0.69887889, ..., 0.59392614, 0.96375439,
0.23708264],
[0.44746802, 0.46455956, 0.99537243, ..., 0.03077313, 0.60441346,
0.5284877 ],
...,
[0.74851845, 0.59469311, 0.20880812, ..., 0.82080042, 0.16033365,
0.94729764],
[0.56686195, 0.35784948, 0.15531381, ..., 0.95415527, 0.88907735,
0.39981913],
[0.61606041, 0.30158736, 0.65476444, ..., 0.0637397 , 0.76772078,
0.85285724]]), array([ 9.78050432, 21.84804394, 13.14748592, ..., 17.86811178,
14.94744237, 9.80791838]))
我试过将它们堆叠起来,但形状不匹配
seq = torch.as_tensor(train[0], dtype=None, device=None)
label = torch.as_tensor(train[1], dtype=None, device=None)
#seq.size() = torch.Size([10000,10])
#label.size() = torch.Size([10000])
我的目标是用 10000 张量标签堆叠 10000 个 len(10) 张量。能够像人们处理图像一样将 seq 视为单个张量。
其中一个实例看起来像这样:
[tensor(0.0727882 , 0.82148589, 0.9932996 , ..., 0.9604997 , 0.48725072,
0.87095636]), tensor(9.78050432)]
谢谢你,
Where/what 正是您的错误?
因为,要获得所需的输出,看起来您只需 运行:
stack = [[seq[i],label[i]] for i in range(seq.shape[0])]
但是,如果你想要一个大小为 [10000,11] 的序列,那么你需要扩展标签张量的维数,使其可以沿第二个轴连接(组成那个词):
label = torch.unsqueeze(label,1)
stack = torch.cat([seq,label],1)