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的类实例属性访问规则探讨
Jan 30 Python
Python多线程编程(六):可重入锁RLock
Apr 05 Python
详解Python中for循环的使用
Apr 14 Python
Python实现大文件排序的方法
Jul 10 Python
在Python中如何传递任意数量的实参的示例代码
Mar 21 Python
PyCharm中代码字体大小调整方法
Jul 29 Python
Python socket聊天脚本代码实例
Jan 02 Python
python numpy--数组的组合和分割实例
Feb 24 Python
Python实现进度条和时间预估的示例代码
Jun 02 Python
python 爬取百度文库并下载(免费文章限定)
Dec 04 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 Python
python中的plt.cm.Paired用法说明
May 31 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
php disk_free_space 返回目录可用空间
2010/05/10 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
2016/05/10 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
这应该是最详细的响应式系统讲解了
2019/07/22 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
举例详解Python中yield生成器的用法
2015/08/05 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
python树莓派红外反射传感器
2019/01/21 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
总经理办公室主任岗位职责
2013/11/12 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP