pytorch中的embedding词向量的使用方法


Posted in Python onAugust 18, 2019

Embedding

词嵌入在 pytorch 中非常简单,只需要调用 torch.nn.Embedding(m, n) 就可以了,m 表示单词的总数目,n 表示词嵌入的维度,其实词嵌入就相当于是一个大矩阵,矩阵的每一行表示一个单词。

emdedding初始化

默认是随机初始化的

import torch
from torch import nn
from torch.autograd import Variable
# 定义词嵌入
embeds = nn.Embedding(2, 5) # 2 个单词,维度 5
# 得到词嵌入矩阵,开始是随机初始化的
torch.manual_seed(1)
embeds.weight
# 输出结果:
Parameter containing:
-0.8923 -0.0583 -0.1955 -0.9656 0.4224
 0.2673 -0.4212 -0.5107 -1.5727 -0.1232
[torch.FloatTensor of size 2x5]

如果从使用已经训练好的词向量,则采用

pretrained_weight = np.array(args.pretrained_weight) # 已有词向量的numpy
self.embed.weight.data.copy_(torch.from_numpy(pretrained_weight))

embed的读取

读取一个向量。

注意参数只能是LongTensor型的

# 访问第 50 个词的词向量
embeds = nn.Embedding(100, 10)
embeds(Variable(torch.LongTensor([50])))
# 输出:
Variable containing:
 0.6353 1.0526 1.2452 -1.8745 -0.1069 0.1979 0.4298 -0.3652 -0.7078 0.2642
[torch.FloatTensor of size 1x10]

读取多个向量。

输入为两个维度(batch的大小,每个batch的单词个数),输出则在两个维度上加上词向量的大小。

Input: LongTensor (N, W), N = mini-batch, W = number of indices to extract per mini-batch
Output: (N, W, embedding_dim)

见代码

# an Embedding module containing 10 tensors of size 3
embedding = nn.Embedding(10, 3)
# 每批取两组,每组四个单词
input = Variable(torch.LongTensor([[1,2,4,5],[4,3,2,9]]))
a = embedding(input) # 输出2*4*3
a[0],a[1]

输出为:

(Variable containing:
 -1.2603 0.4337 0.4181
 0.4458 -0.1987 0.4971
 -0.5783 1.3640 0.7588
 0.4956 -0.2379 -0.7678
 [torch.FloatTensor of size 4x3], Variable containing:
 -0.5783 1.3640 0.7588
 -0.5313 -0.3886 -0.6110
 0.4458 -0.1987 0.4971
 -1.3768 1.7323 0.4816
 [torch.FloatTensor of size 4x3])

以上这篇pytorch中的embedding词向量的使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python list转dict示例分享
Jan 28 Python
Python抓取京东图书评论数据
Aug 31 Python
总结Python中逻辑运算符的使用
May 13 Python
python实现杨辉三角思路
Jul 14 Python
python实现快速排序的示例(二分法思想)
Mar 12 Python
python 正确保留多位小数的实例
Jul 16 Python
python实现感知器算法(批处理)
Jan 18 Python
pandas数据处理进阶详解
Oct 11 Python
PyTorch的SoftMax交叉熵损失和梯度用法
Jan 15 Python
推荐技术人员一款Python开源库(造数据神器)
Jul 08 Python
Python jieba结巴分词原理及用法解析
Nov 05 Python
Pytest allure 命令行参数的使用
Apr 18 Python
Pytorch加载部分预训练模型的参数实例
Aug 18 #Python
在pytorch中查看可训练参数的例子
Aug 18 #Python
浅析PyTorch中nn.Module的使用
Aug 18 #Python
关于PyTorch 自动求导机制详解
Aug 18 #Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 #Python
pytorch numpy list类型之间的相互转换实例
Aug 18 #Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
Aug 18 #Python
You might like
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
php求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
php数组去除空值函数分享
2015/02/02 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
删除table表格行的实例讲解
2017/09/21 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
python数字图像处理之高级滤波代码详解
2017/11/23 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
Bowflex美国官方网站:高级家庭健身器材
2017/12/22 全球购物
德尔福集团DELPHI的笔试题
2012/02/22 面试题
毕业生动漫设计求职信
2013/10/11 职场文书
物业公司采购员岗位职责
2013/12/31 职场文书
十佳大学生事迹材料
2014/01/29 职场文书
纠风工作实施方案
2014/03/15 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书