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 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
python编程实现归并排序
Apr 14 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
Python正则捕获操作示例
Aug 19 Python
python实现k-means聚类算法
Feb 23 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
Flask模板引擎之Jinja2语法介绍
Jun 26 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
Python使用Turtle库绘制一棵西兰花
Nov 23 Python
python读取hdfs并返回dataframe教程
Jun 05 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 Python
用Python提取PDF表格的方法
Apr 11 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 array_multisort()函数的使用札记
2011/07/03 PHP
ThinkPHP安装和设置
2015/07/27 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
javascript this用法小结
2008/12/19 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
详解html-webpack-plugin用法全解
2018/01/22 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
图文讲解vue的v-if使用方法
2019/02/11 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
让Python代码更快运行的5种方法
2015/06/21 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
2019/09/16 Python
通过实例了解python property属性
2019/11/01 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
python中format函数如何使用
2020/06/22 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
《日月潭》教学反思
2014/02/28 职场文书
中华魂演讲稿
2014/05/13 职场文书