pytorch的Embedding使用

摘要:
火炬nn。嵌入存储num_嵌入*嵌入_ dim的矩阵,以单词向量为例,num_嵌入表示单词向量的数量_ dim表示单词向量维数。

torch.nn.Embedding存储的是形如num_embeddings*embedding_dim的矩阵,以词向量为例,num_embeddings表示词向量的个数,embedding_dim表示词向量的维度。

初始化:

它提供了从已知Tensor进行初始化的方法:nn.Embedding.from_pretrained

配合torch.from_numpy可以直接把numpy的array直接转换到Embedding

nn.Embedding.from_pretrained(torch.from_numpy(words_vector.wv.vectors))

取值:
在使用的时候,传入的是索引值张量,取出对应索引的词向量,如下所示

embedding = nn.Embedding(10, 3)
print(embedding.weight)
# 根据索引取embedding中的词向量 input = torch.LongTensor([[0,2,4,5],[4,3,2,0]]) embedding(input)

 输出如下:

Parameter containing:
tensor([[-0.3226,  0.4114,  1.0047],
        [ 0.9196, -1.3295, -1.2954],
        [ 1.3443, -0.3448,  0.0851],
        [-0.2293, -1.3142, -1.0111],
        [-0.9291,  1.2002, -1.6681],
        [ 0.5507,  0.2129,  0.7609],
        [-0.3079, -1.5352, -0.0675],
        [ 0.8036, -0.2572,  0.4783],
        [-1.2597, -0.1978, -1.1519],
        [-0.7035, -0.0925,  0.1286]], requires_grad=True)

tensor([[[-0.3226,  0.4114,  1.0047],
         [ 1.3443, -0.3448,  0.0851],
         [-0.9291,  1.2002, -1.6681],
         [ 0.5507,  0.2129,  0.7609]],

        [[-0.9291,  1.2002, -1.6681],
         [-0.2293, -1.3142, -1.0111],
         [ 1.3443, -0.3448,  0.0851],
         [-0.3226,  0.4114,  1.0047]]], grad_fn=<EmbeddingBackward>)

对于通过gensim构造的词向量,如fastText,可以通过词来获取索引:

i = model.wv.vocab['hello'].index

免责声明:文章转载自《pytorch的Embedding使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇py2exe使用总结基于Qt5 跨平台应用开发下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【PyTorch基础】将pytorch模型转换为script模型

操作步骤: 1. 将PyTorch模型转换为Torch脚本; 1)通过torch.jit.trace转换为torch脚本; 2)通过torch.jit.script转换为torch脚本; 2. 将脚本模型序列化为文件; 3. 在c++中加载脚本模块; 安装使用LibTorch; 4. 在c++中执行脚本模块; code # -*- coding: utf-...

pyTorch进阶-torch

一、Broadcast自动扩展 Expand和unsquee的结合,习惯性行是高维度,列是低维度 example: 小维度指定,大维度随意 二、拼接与拆分 Cat Stack:增加新的维度 Split(按照长度进行拆分) Chunk(按照数量进行拆分) torch.stack torch.stack(sequence, dim=0) 参数:...

Unsupervised Open Domain Recognition by Semantic Discrepancy Minimization论文笔记

Unsupervised Open Domain Recognition by Semantic Discrepancy Minimization论文笔记 Abstract 本文的作者解决的是一个无监督的开放域识别(UODR)问题,而在开放域中的源域与目标域的情况中,⭐源域是目标域的一个子集,即一个未标记的目标域T和一个仅覆盖目标域分类子集的有差异的标记源...

pytorch 基础内容

一些基础的操作: import torch as th a=th.rand(3,4) #随机数,维度为3,4的tensor b=th.rand(4)print(a)print(b) a+b tensor([[0.3777, 0.4128, 0.6244, 0.7772], [0.0859, 0.9350, 0.1705, 0.911...

pytorch导入错误so: undefined symbol: _Z11libshm_initPKc

首先删除torch文件 或者直接卸载 删除会更彻底 https://blog.csdn.net/qq_37674858/article/details/88870124 但是会发现卸载重装pytorch之后 错误信息还在 原因时 conda list 显示包名 存在libtorch 将其卸载 https://blog.csdn.net/pursuit_z...

词向量之word2vec实践

首先感谢无私分享的各位大神,文中很多内容多有借鉴之处。本次将自己的实验过程记录,希望能帮助有需要的同学。 一、从下载数据开始     现在的中文语料库不是特别丰富,我在之前的文章中略有整理,有兴趣的可以看看。本次实验使用wiki公开数据,下载地址如下:         wiki英文数据下载:https://dumps.wikimedia.org/enwik...