- 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
- 🍖 原作者:K同学啊
Embedding(词嵌入)是一种用于自然语言处理的技术,用于将单词表示为数字,以便于计算机可以处理他们。通俗的讲就是,一种把文本转换为数值输入到计算机中的方法。
上周将文本转换为字典序列、one-hot编码,就是最早期的词嵌入方法
Embedding
和EmbeddingBag
是pytorch中用来处理文本数据中词嵌入(word embedding)的工具,它们将离散的词汇映射到低维的连续向量空间中,使得词汇之间的语义关系能够在向量空间中得到体现。
Embedding
Embedding
是pytorch中最基本的词嵌入操作,tensorflow中也有相同的函数,功能是一样的。将每个离散的词汇映射到一个低维的连续向量空间中,并且保持了词汇之间的语义关系。在pytorch中,Embeeding
的输入是一个整数张量,每个整数都代表着一个词汇的索引,输出是一个浮点型的张量,它代表着对应词汇的词嵌入向量。
嵌入层使用随机权重初始化,并将学习数据集中所有词的嵌入,它是一个灵活的层,可以以各种方式使用。如:
- 可以用作深度学习模型的一部分,其中嵌入与模型本身一起被学习
- 可以用于加载训练好的词嵌入模型
嵌入层往往被定义为网络的第一个隐藏层。
函数原型
torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=None, norm_type=2.0, scale_grad_by_freq=False, sparse=False, _weight=None, _freeze=False,device=None, dtype=None)
num_embeddings
词汇表的大小,最大整数index + 1embedding_dim
词向量的维度
示例
import torch
import torch.nn as nn
vocab_szie = 12
embedding_dim = 4
embedding = nn.Embedding(vocab_size, embedding_dim)
# 造两个假的输入序列
input_sequence1 = torch.tensor([1, 5