做nlp很多时候要用到嵌入层,pytorch中自带了这个层

什么是embedding层

这是一个写的比较好的

我用最通俗的语言给你讲
在nlp里,embedding层就是把单词表[‘你’,‘好’,‘吗’]
编码成

 ‘你’ --------------[0.2,0.1]‘好’ --------------[0.3,0.2]‘吗’ --------------[0.6,0.5]

的向量的办法

为什么要embedding

这是写的详细的

我还是用一句话概括:
因为one-hot编码表示太浪费内存了,我们都是穷人家的孩子。

pytorch里面怎么用

官方文档/英文

类定义

参数

这里说几个重要参数:

  1. num_embeddings: 嵌入层字典的大小(单词本里单词个数)
  2. embedding_dim: 每个产出向量的大小

说明

以下几点需要注意:

  1. 输入输出第一维度默认相同

实例

>>> # 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层详解(从原理到实战)相关推荐

  1. Batch Normalization详解(原理+实验分析)

    Batch Normalization详解(原理+实验分析) 1. 计算过程 2. 前向传播过程 3. 反向传播过程 4. 实验分析 4.1 实验一:验证有没有BatchNorm下准确率的区别 4.2 ...

  2. P2P技术详解(一):NAT详解——详细原理、P2P简介(转)

    这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层开发人员而言有很高的参考价值. <P2P技术详解>系列文章 ➊ 本 ...

  3. 015. P2P技术详解(一):NAT详解——详细原理、P2P简介

    http://www.52im.net/thread-50-1-1.html 这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层 ...

  4. [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 ...

  5. caffe网络模型各层详解(中文版)

    caffe网络模型各层详解(中文版) 参考网址:https://blog.csdn.net/qq_34220460/article/details/79872830 一.数据层及参数 要运行caffe ...

  6. torch.nn模块之池化层详解

    torch中的池化层 1. torch.nn模块中的池化层简介 2. 池化的调用方式 3. 图像池化演示 3.1 最大值池化 3.2 平均值池化 3.3 自适应平均值池化 参考资料 1. torch. ...

  7. 最新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 ...

  8. 自动驾驶算法-滤波器系列(一)——详解卡尔曼滤波原理

    详解卡尔曼滤波原理 什么是卡尔曼滤波? 我们能用卡尔曼滤波做什么? 卡尔曼滤波是如何看到你的问题的 使用矩阵来描述问题 外部控制量 外部干扰 用测量量来修正估计值 融合高斯分布 将所有公式整合起来 总 ...

  9. Android 4.4 NotificationManagerService使用详解与原理分析(二)__原理分析

    前置文章: <Android 4.4 KitKat NotificationManagerService使用详解与原理分析(一)__使用详解> 转载请务必注明出处:http://blog. ...

最新文章

  1. 【ZooKeeper】集群安装与配置
  2. maven中snapshot版本和正式版本的区别
  3. 第三章:3.栈和队列 -- 栈与递归的实现
  4. spring boot 异常汇总
  5. 20165310_获奖感想与Java阶段性学习总结
  6. Sharepoint学习笔记—ECM系列--2 管理元数据服务应用Metadata Service Application
  7. DotNet控件缩写
  8. IDEA设置光标所在行背景色
  9. MATLAB 求导、符号计算
  10. H.264码流分析器,雷霄骅版本人修改版
  11. 【维修】【硬件】【苹果】wifi芯片被加密
  12. linux虚拟摄像头 开源,(四) 虚拟摄像头vivi体验
  13. 读论文,第十五天:FingerPing: Recognizing Fine-grained Hand Poses using Active Acoustic On-body Sensing
  14. 名片 - 名片设计的比例
  15. 第1章 面向对象分析和设计
  16. c语言-求两个数的最小公倍数
  17. 国庆三亚自由行(Part 2 第二日之阳光沙滩美女烧烤)
  18. Linux系统基本知识(4)
  19. Servlet模板修改
  20. 聚类算法之层次聚类方法

热门文章

  1. 算法(普通算法+大数据)
  2. unity找隐藏游戏对象Gameobject
  3. 在电脑上体验了 16 款手机 App 后,我很失望
  4. 概率论-基础计算公式与函数
  5. MTK DTS 文件配置
  6. 【10位时间戳转换日期公式】
  7. 怎么用python处理word和excel_用python操作word excel
  8. cheer ,on the way to linux
  9. php微信公众号无限制群发,微信公众号无限群发 - viki_php的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. Python爬虫实战----------豆瓣TOP250