pytorch nn.Embedding()原理

Word Embedding

Word embedding 是将自然语言中的词语映射为实数向量的一种技术,通常通过机器学习算法从文本数据中学习得到。其基本思想是将每个词语映射到高维空间中的一个向量,使得词语在语义上相似的向量在空间中距离较近,从而能够将自然语言中的词语转化为计算机能够处理的数值型数据。Word embedding 技术在自然语言处理、机器翻译、信息检索等领域得到了广泛应用。常见的 Word embedding 方法有 CBOW(Continuous Bag-of-Words)、Skip-gram 和 GloVe 等。

nn.Embedding

为什么使用嵌入层

1、使用One-hot 方法编码的向量会很高维也很稀疏。假设我们在做自然语言处理(NLP)中遇到了一个包含2000个词的字典,当使用One-hot编码时,每一个词会被一个包含2000个整数的向量来表示,其中1999个数字是0,如果字典再大一点,这种方法的计算效率会大打折扣。

2、训练神经网络的过程中,每个嵌入的向量都会得到更新。通过上面的图片我们就会发现在多维空间中词与词之间有多少相似性,这使我们能可视化的了解词语之间的关系,不仅仅是词语,任何能通过嵌入层 Embedding 转换成向量的内容都可以这样做。

参数

  • num_embeddings - 词嵌入字典大小,即一个字典里要有多少个词。
  • embedding_dim - 每个词嵌入向量的大小。

import torch

embedding=torch.nn.Embedding(10,10)
for i in range(10):
    print(i)
    tensor=torch.tensor(i)
    output=embedding(tensor)
    print(output)

参考:

经常提到的Embedding层有什么用? | 机器之心 (jiqizhixin.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一壶浊酒..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值