pytorch Embedding 层的使用

### embedding 层的使用 test
# 定义 Embedding 层
test_gender_embed = nn.Embedding(gender_size, embed_size)

# 原始特征
gender_fea

# embed 后的
test_gender_embed_result = test_gender_embed(torch.Tensor(gender_fea).long())

# reverse 是用来测试 mean 的
test_gender_embed_result_reverse = test_gender_embed(torch.Tensor(gender_fea[::-1].copy()).long())
test_gender_embed_result
test_gender_embed_result.size()

# 要先沿着一个新维度对输入张量序列进行连接(https://blog.csdn.net/xinjieyuan/article/details/105205326)
torch.stack((test_gender_embed_result, test_gender_embed_result_reverse),dim=1)
torch.stack((test_gender_embed_result, test_gender_embed_result_reverse),dim=1).size()

# 然后才可以 mean 因为 mean 是按照某个维度展开的,
# 如两个 torch.Size([216069, 32]) torch.Size([216069, 32]),必须要先拼成 torch.Size([216069, 2, 32]) 才可以沿着 dim=1 的维度 mean
torch.mean(torch.stack((test_gender_embed_result, test_gender_embed_result_reverse),dim=1), dim=1)
torch.mean(torch.stack((test_gender_embed_result, test_gender_embed_result_reverse),dim=1), dim=1).size()

pytorch Embedding 层的使用_第1张图片

你可能感兴趣的:(算法,pytorch)