PyTorch:Embedding初始化及自定义

Posted -柚子皮-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyTorch:Embedding初始化及自定义相关的知识,希望对你有一定的参考价值。

-柚子皮-

torch.nn.Embedding(num_embeddings: int, embedding_dim: int, padding_idx: Optional[int] = None, max_norm: Optional[float] = None, norm_type: float = 2.0, scale_grad_by_freq: bool = False, sparse: bool = False, _weight: Optional[torch.Tensor] = None)

参数

前面两个参数的简单理解:torch.nn.Embedding(m, n)。m 表示单词的总数目,n 表示词嵌入的维度,其实词嵌入就相当于是一个大矩阵,矩阵的每一行表示一个单词。

num_embeddings (int) – size of the dictionary of embeddings 词典的大小尺寸,比如总共出现5000个词,那就输入5000。此时index为(0-4999)。注意这里num_embeddings必须要比词对应的最大index要大,而不是比词个数大就可以。

embedding_dim (int) – the size of each embedding vector 嵌入向量的维度,即用多少维来表示一个符号。embedding_dim的选择要注意,根据自己的符号数量,举个例子,如果你的词典尺寸是1024,那么极限压缩(用二进制表示)也需要10维,再考虑词性之间的相关性,怎么也要在15-20维左右,虽然embedding是用来降维的,但是>- 也要注意这种极限维度,结合实际情况,合理定义

以上是关于PyTorch:Embedding初始化及自定义的主要内容,如果未能解决你的问题,请参考以下文章

pytorch学习 | 提取参数及自定义初始化

pytorch如何使用torchtext初始化LSTM的embedding层?如何用各种预训练模型初始化embedding层?

PyTorch框架+Python 3面向对象编程学习笔记

pytorch中nn.Embedding原理及使用

通俗讲解pytorch中nn.Embedding原理及使用

Pytorch系列:自然语言处理NLP