在Pytorch中,词嵌入使用函数nn.embedding:
class torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=None, norm_type=2, scale_grad_by_freq=False, sparse=False)
embedding使用的参数如下:
- num_embeddings:词嵌入的字典大小
- embedding_dim:词嵌入的维度
- padding_idx:可选项,如果选择,对该index上的结果填充0
- max_norm:可选项,如果选择,对词嵌入归一化时,设置归一化的最大值
- norm_type:可选项,如果选择,对词嵌入归一化时,设置p-norm的p值
- scale_grad_by_freq:可选项,如果选择,在mini-batch时,根据词频对梯度进行规整
- sparse:可选项,如果选择,梯度w.r.t权值矩阵将是一个稀疏张量
词嵌入的简单使用例子如下:
import torch
import torch.nn as nn
import torch.aurtograd as aotugrad
word_to_idx = {"hello":0, "pytorch":1}
embeds = nn.Embedding(2,5) # 2 words in vocab, 5 dimensional embeddings
lookup_tensor = torc