pytorch 附加或合并不同形状的列式 Torch Tensor

fhity93d  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(204)

下面的TensorA和B共享行大小。6和3指的是2 Dataframe 的列,但TensorB在每个单元格处具有大小为256的向量。

A= torch.Size([17809, 6])
B= torch.Size([17809, 3, 256])

我如何附加合并这些Tensor?
更多详情:“A”的一列是类似于“年龄”的数值向量,在B中,3列中的一列具有大小为256的节点嵌入(向量)集。

ep6jt1vc

ep6jt1vc1#

您可以在A上应用torch.nn.Embedding来嵌入数值向量,然后使用torch.catembeding of AB连接到axis=1上。

  • (在下面的代码中,我使用随机Tensor)*.
import torch
from torch import nn

num_embeddings = 10 # fill base Age
embedding_dim = 256 # fill base of B tensor
embedding = nn.Embedding(num_embeddings, embedding_dim)

A = torch.randint(10, (17809, 6))
print(f"A   : {A.shape}")

E_A = embedding(A)
print(f"E_A : {E_A.shape}")

B = torch.rand(17809, 3, 256)
print(f"B   : {B.shape}")

C = torch.cat((E_A, B), 1)
print(f"C   : {C.shape}")

输出量:

A   : torch.Size([17809, 6])
E_A : torch.Size([17809, 6, 256])
B   : torch.Size([17809, 3, 256])
C   : torch.Size([17809, 9, 256])

相关问题