pytorch embedding层详解(从原理到实战)
做nlp很多时候要用到嵌入层,pytorch中自带了这个层
什么是embedding层
这是一个写的比较好的
我用最通俗的语言给你讲
在nlp里,embedding层就是把单词表[‘你’,‘好’,‘吗’]
编码成
‘你’ --------------[0.2,0.1]‘好’ --------------[0.3,0.2]‘吗’ --------------[0.6,0.5]
的向量的办法
为什么要embedding
这是写的详细的
我还是用一句话概括:
因为one-hot编码表示太浪费内存了,我们都是穷人家的孩子。
pytorch里面怎么用
官方文档/英文
类定义
参数
这里说几个重要参数:
- num_embeddings: 嵌入层字典的大小(单词本里单词个数)
- embedding_dim: 每个产出向量的大小
说明
以下几点需要注意:
- 输入输出第一维度默认相同
实例
>>> # an Embedding module containing 10 tensors of size 3
>>> embedding = nn.Embedding(10, 3)
>>> # a batch of 2 samples of 4 indices each
>>> input = torch.LongTensor([[1,2,4,5],[4,3,2,9]])
>>> embedding(input)
tensor([[[-0.0251, -1.6902, 0.7172],[-0.6431, 0.0748, 0.6969],[ 1.4970, 1.3448, -0.9685],[-0.3677, -2.7265, -0.1685]],[[ 1.4970, 1.3448, -0.9685],[ 0.4362, -0.4004, 0.9400],[-0.6431, 0.0748, 0.6969],[ 0.9124, -2.3616, 1.1151]]])>>> # example with padding_idx
>>> embedding = nn.Embedding(10, 3, padding_idx=0)
>>> input = torch.LongTensor([[0,2,0,5]])
>>> embedding(input)
tensor([[[ 0.0000, 0.0000, 0.0000],[ 0.1535, -2.0309, 0.9315],[ 0.0000, 0.0000, 0.0000],[-0.1655, 0.9897, 0.0635]]])
自己的小例子更容易懂
a = torch.LongTensor([0])
embedding = torch.nn.Embedding(2, 5)
b = embedding(a)
b
Out[29]: tensor([[1.7931, 0.5004, 0.3444, 0.7140, 0.3001]], grad_fn=<EmbeddingBackward>)
pytorch embedding层详解(从原理到实战)相关推荐
- Batch Normalization详解(原理+实验分析)
Batch Normalization详解(原理+实验分析) 1. 计算过程 2. 前向传播过程 3. 反向传播过程 4. 实验分析 4.1 实验一:验证有没有BatchNorm下准确率的区别 4.2 ...
- P2P技术详解(一):NAT详解——详细原理、P2P简介(转)
这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层开发人员而言有很高的参考价值. <P2P技术详解>系列文章 ➊ 本 ...
- 015. P2P技术详解(一):NAT详解——详细原理、P2P简介
http://www.52im.net/thread-50-1-1.html 这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层 ...
- [4G5G专题-57]:L2 RLC层-详解RLC架构、数据封装、三种模式:透明TM、非确认模式UM、确认模式AM
目录 第1章 L2 RLC层的架构 1.1 RAN的架构 1.2 L2架构概述 1.3 RLC软件系统结构图 第2章 TCP/IP协议提供的三种传输服务 2.1 TCP 2.2 UDP 2.3 R ...
- caffe网络模型各层详解(中文版)
caffe网络模型各层详解(中文版) 参考网址:https://blog.csdn.net/qq_34220460/article/details/79872830 一.数据层及参数 要运行caffe ...
- torch.nn模块之池化层详解
torch中的池化层 1. torch.nn模块中的池化层简介 2. 池化的调用方式 3. 图像池化演示 3.1 最大值池化 3.2 平均值池化 3.3 自适应平均值池化 参考资料 1. torch. ...
- 最新ChatGPT GPT-4 相似匹配Embedding技术详解(附ipynb与python源码及视频讲解)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(一)
目录 前言 最新ChatGPT GPT-4 相似匹配Embedding技术详解 1. 何为Embedding 2. 相关API 2.1 LMAS Embedding API 2.2 ChatGPT S ...
- 自动驾驶算法-滤波器系列(一)——详解卡尔曼滤波原理
详解卡尔曼滤波原理 什么是卡尔曼滤波? 我们能用卡尔曼滤波做什么? 卡尔曼滤波是如何看到你的问题的 使用矩阵来描述问题 外部控制量 外部干扰 用测量量来修正估计值 融合高斯分布 将所有公式整合起来 总 ...
- Android 4.4 NotificationManagerService使用详解与原理分析(二)__原理分析
前置文章: <Android 4.4 KitKat NotificationManagerService使用详解与原理分析(一)__使用详解> 转载请务必注明出处:http://blog. ...
最新文章
- 【ZooKeeper】集群安装与配置
- maven中snapshot版本和正式版本的区别
- 第三章:3.栈和队列 -- 栈与递归的实现
- spring boot 异常汇总
- 20165310_获奖感想与Java阶段性学习总结
- Sharepoint学习笔记—ECM系列--2 管理元数据服务应用Metadata Service Application
- DotNet控件缩写
- IDEA设置光标所在行背景色
- MATLAB 求导、符号计算
- H.264码流分析器,雷霄骅版本人修改版
- 【维修】【硬件】【苹果】wifi芯片被加密
- linux虚拟摄像头 开源,(四) 虚拟摄像头vivi体验
- 读论文,第十五天:FingerPing: Recognizing Fine-grained Hand Poses using Active Acoustic On-body Sensing
- 名片 - 名片设计的比例
- 第1章 面向对象分析和设计
- c语言-求两个数的最小公倍数
- 国庆三亚自由行(Part 2 第二日之阳光沙滩美女烧烤)
- Linux系统基本知识(4)
- Servlet模板修改
- 聚类算法之层次聚类方法
热门文章
- 算法(普通算法+大数据)
- unity找隐藏游戏对象Gameobject
- 在电脑上体验了 16 款手机 App 后,我很失望
- 概率论-基础计算公式与函数
- MTK DTS 文件配置
- 【10位时间戳转换日期公式】
- 怎么用python处理word和excel_用python操作word excel
- cheer ,on the way to linux
- php微信公众号无限制群发,微信公众号无限群发 - viki_php的个人空间 - OSCHINA - 中文开源技术交流社区...
- Python爬虫实战----------豆瓣TOP250