位置: IT常识 - 正文

【pytorch】有关nn.EMBEDDING的简单介绍(pytorch nn.parameters)

编辑:rootadmin
【pytorch】有关nn.EMBEDDING的简单介绍 1. 引例

推荐整理分享【pytorch】有关nn.EMBEDDING的简单介绍(pytorch nn.parameters),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:pytorch nn.lstm,pytorch nn.model,pytorch nn.parameters,pytorch nn.parameters,pytorch nn.parameter,pytorch gan 例子,pytorch的nn.linear,pytorch的nn.linear,内容如对您有帮助,希望把文章链接给更多的朋友!

假设有一本字典,就一共只有10单词,每个单词有5个字母组成。 每一页上只写一个单词,所以这10页纸上分别写了这10个单词。

内如如下,

[[a,p,p,l,e], # page 0[g,r,e,e,n], # page 1[s,m,a,l,l], # page 2[w,a,t,c,h], # page 3[b,a,s,i,c], # page 4[e,n,j,o,y], # page 5[c,l,a,s,s], # page 6[e,m,b,e,d], # page 7[h,a,p,p,y], # page 8[p,l,a,t,e] # page 9]

我们假定这本字典叫embeding(10,5), 这里的10和5即上面介绍的含义,10个单词,每个单词5个字母;

现在我要查看第2页和第3页(从0开始),那么我会得到 [s,m,a,l,l], [w,a,t,c,h] 内容。

假定我们约定一个暗号,你告诉我页数,我就返回对应页数的单词。

如,你发给我暗号 [ [2,3], [1,0], [8,6] ] (即 shape为(3,2)的LongTensor)

我通过查询字典,告诉你

[[ [s,m,a,l,l], [w,a,t,c,h] ],[ [g,r,e,e,n], [a,p,p,l,e] ],[ [h,a,p,p,y], [c,l,a,s,s] ]]

这里的字典就是embeding table,而暗号就是查询这个table的索引值。

2. 为什么需要embeding?【pytorch】有关nn.EMBEDDING的简单介绍(pytorch nn.parameters)

有的时候我们直观看到的不一定就是事物的本质,我们需要透过现象看到“本质特征”或“隐藏特征”。 那么怎么透过呢? 或者说什么是“隐藏特征”呢?

embeding就是做这个事情,它将一句话,或者一段音通过查询“embeding table”来获取到“隐藏特征”。

embeding table一般是一组浮点型数值,它跟CNN,LSTM网络中一样,属于网络可学习的参数。 所以它的值不是人为定义的,人也定义不了这样的“字典”,它是通过深度学习网络中逐渐学习到的。

3. 回到pytoch

pytorch中的nn.Embeding提供了这样的实现;

下面是一个例子

import torch# 如同上面例子中的page索引a = torch.LongTensor([[1,2], [5,2]]) # 一个10个单词,每个单词5个字母的字典emb = torch.nn.Embedding(10,5)print(emb.weight, emb.weight.shape)# 同过索引查询embeding内容y = emb(a)print(y, y.shape)

可以看到“字典”不再是单词,而是一些浮点数,这些浮点数表示的就是隐藏特征。

4. 官方API

embedding

4.1参数介绍4.1.1 num_embedding和embedding_dim

num_embedding, embedding_dim就是上文中介绍 “单词”和“每个单词字母个数”,它表示了字典中embedding个数,以及每个embedding的维度。

4.1.2 padding_idx

padding_idx,是不更新梯度的“单词”的index;可以在字典中指定一个不被训练的embedding。 看下面的例子:

import torcha = torch.LongTensor([[1,2], [5,2]])emb = torch.nn.Embedding(10,5, padding_idx=0)print(emb.weight, emb.weight.shape)y = emb(a)print(y, y.shape)

这里的padding_index=0,它表示该index下的embedding不会学习更新,初始化的时候默认也是0.

4.1.3 max_norm和norm_type

max_norm,norm_type是获取到embedding后做正则化; norm_type 的可取值为1,2. 分别表示范式1和范式2,默认是2.

max_norm是定义范式中的最大值,如果embeding中的值大于这个阈值,则会重新做一下norm

本文链接地址:https://www.jiuchutong.com/zhishi/300724.html 转载请保留说明!

上一篇:Nginx跨域解决方案(nginx跨域配置详解)

下一篇:YOLO V7源码解析(yolov5源码解读)

  • 荣耀手机电量百分比怎么设置(荣耀手机电池电量)

  • 微信群聊删除聊天记录后怎么找到这个群(微信群聊删除聊天框怎么找)

  • 苹果6与8外形的区别(苹果6和苹果8外形一样吗)

  • 用网名能查到微信号(知道微信网名能不能查到微信号)

  • 酷狗mv为什么不能投屏(酷狗mv为什么不播放)

  • 把计算机分为巨型机大中型机按照什么分的(把计算机分为巨型机、大中型机)

  • iwatch上的i标志在哪(applewatch的i标志)

  • windowsimagebackup是什么文件夹(windowsimagebackup是什么文件夹怎么删除)

  • 快手图片怎么保存到相册(快手图片怎么保存成视频)

  • qq如何发送jpg命名照片(qq怎么发送jpg格式)

  • iphone11怎么显示电量(iPhone11怎么显示网速)

  • ipada1567是ipad几代(ipad型号a1567是多少寸)

  • 华为手机怎样召唤语音助手(华为手机怎样召唤小易)

  • 华为充电器充苹果行吗(华为充电器充苹果ipad)

  • 华为mate30pro有没有128g的(华为mate30pro有没有红外线遥控功能)

  • ipad可以做手写笔记吗(ipad 可以手写)

  • 截图在哪里(我的截图在哪里)

  • oppo手机怎么截屏 截图(oppo手机怎么截长图)

  • ios12怎么清除缓存(ios12.4怎么清理缓存)

  • 苹果11怎么设置消息闪光灯(苹果11怎么设置来电闪光灯)

  • 微信已过期的文件怎么恢复(微信已过期的文档怎么找)

  • iphonexr支持几瓦快充(iphonexr支持多大功率快充)

  • 小米9怎么关闭指纹解锁(小米9怎么关闭风险应用安装授权)

  • 华为p30怎样反向充电(p30手机反向充电的操作)

  • ios拼音字体怎么设置(iphone拼音字体app)

  • Win10组策略阻止了这个程序怎么办(组策略阻止了这个程序0x800704ec)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络