embedding = torch.nn.Embedding(10, 3)

embedding = torch.nn.Embedding(10, 3)

通过 word embedding,就可以将自然语言所表示的单词或短语转换为计算机能够理解的由实数构成的向量或矩阵形式(比如,one-hot 就是一种简单的 word embedding 的方法)。

import torch
# 10个单词的向量矩阵,10*3的矩阵,会初始化
embedding = torch.nn.Embedding(10, 3)
# input是要取的单词的下标矩阵
input = torch.LongTensor([[2,2]])

print(embedding(input))
print(embedding(torch.LongTensor([2])))

结果

tensor([[[ 1.2912,  0.9011, -0.7307],
         [ 1.2912,  0.9011, -0.7307]]], grad_fn=<SqueezeBackward1>)
         
tensor([[ 1.2912,  0.9011, -0.7307]], grad_fn=<EmbeddingBackward>)

我遇到的情况

感觉他用 2位数组来取是多此一举

input = torch.LongTensor([[2],[3]])
print(embedding(input))
print(embedding(input).squeeze(dim=1))  # squeeze 是把维数压缩
# 2*3*1
tensor([[[-1.4740, -1.0795, -1.5344]],

        [[-0.3839, -0.8261,  1.4525]]], grad_fn=<EmbeddingBackward>)
# 2*3
tensor([[-1.4740, -1.0795, -1.5344],
        [-0.3839, -0.8261,  1.4525]], grad_fn=<SqueezeBackward1>)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值