函数:torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=None, norm_type=2.0, scale_grad_by_freq=False, sparse=False, _weight=None)

函数大概解释:相当于随机生成了一个tensor,可以把它看作一个查询表,其size为[embeddings_num,embeddingsdim] 。其中nembeddings_num是查询表的大小,embedding_dim是每个查询向量的维度,这里看起来很抽象,可以看下面的示例来进行理解。

参数解释:

  1. embeddings_nums:查询表的大小
  2. embeddings_dim:每个查询向量的维度
  3. 其它参数其实很少用到,如果想了解,可以查看其他大佬的解释

具体实例:

实例一:创建查询矩阵并使用它做Embedding

embedding = nn.Embedding(5, 3)  # 定义一个具有5个单词,维度为3的查询矩阵
print(embedding.weight)  # 展示该矩阵的具体内容
test = torch.LongTensor([[0, 2, 0, 1],[1, 3, 4, 4]])  # 该test矩阵用于被embed,其size为[2, 4]
# 其中的第一行为[0, 2, 0, 1],表示获取查询矩阵中ID为0, 2, 0, 1的查询向量
# 可以在之后的test输出中与embed的输出进行比较
test = embedding(test)
print(test.size())  # 输出embed后test的size,为[2, 4, 3],增加
# 的3,是因为查询向量的维度为3
print(test)  # 输出embed后的test的内容——————————————————————————————————————
输出:
Parameter containing:
tensor([[-1.8056,  0.1836, -1.4376],[ 0.8409,  0.1034, -1.3735],[-1.3317,  0.8350, -1.7235],[ 1.5251, -0.2363, -0.6729],[ 0.4148, -0.0923,  0.2459]], requires_grad=True)
torch.Size([2, 4, 3])
tensor([[[-1.8056,  0.1836, -1.4376],[-1.3317,  0.8350, -1.7235],[-1.8056,  0.1836, -1.4376],[ 0.8409,  0.1034, -1.3735]],[[ 0.8409,  0.1034, -1.3735],[ 1.5251, -0.2363, -0.6729],[ 0.4148, -0.0923,  0.2459],[ 0.4148, -0.0923,  0.2459]]], grad_fn=<EmbeddingBackward>)

可以看出创建了一个具有5个ID(可以理解为拥有5个词的词典)的查询矩阵,每个查询向量的维度是3维,然后用一个自己需要Embedding的矩阵与之计算,其中的内容就是需要匹配的ID号,注意!如果需要Embedding的矩阵中的查询向量不为1,2这种整数,而是1.1这种浮点数,就不能与查询向量成功匹配,会报错,且如果矩阵中的值大于了查询矩阵的范围,比如这里是5,也会报错。

实例二:寻找查询矩阵中特定ID(词)的查询向量(词向量)

# 访问某个ID,即第N个词的查询向量(词向量)
print(embedding(torch.LongTensor([3])))  # 这里表示查询第3个词的词向量————————————————————————————————————————
输出:
tensor([[-1.6016, -0.8350, -0.7878]], grad_fn=<EmbeddingBackward>)

pytorch中的gather函数_Pytorch中Emdedding函数的解释及使用方法相关推荐

  1. python数据处理常用函数_pytorch中的自定义数据处理详解

    pytorch在数据中采用Dataset的数据保存方式,需要继承data.Dataset类,如果需要自己处理数据的话,需要实现两个基本方法. :.getitem:返回一条数据或者一个样本,obj[in ...

  2. python中如何反解函数_PyTorch中反卷积的用法详解

    pytorch中的 2D 卷积层 和 2D 反卷积层 函数分别如下: class torch.nn.Conv2d(in_channels, out_channels, kernel_size, str ...

  3. torch的拼接函数_Pytorch中的torch.cat()函数

    cat( )的用法 按维数0拼接(竖着拼) C = torch.cat( (A,B),0 ) 按维数1拼接(横着拼) C = torch.cat( (A,B),1 ) 按维数0拼接 A=torch.o ...

  4. pytorch指定用多张显卡训练_Pytorch中多GPU训练指北

    前言 在数据越来越多的时代,随着模型规模参数的增多,以及数据量的不断提升,使用多GPU去训练是不可避免的事情.Pytorch在0.4.0及以后的版本中已经提供了多GPU训练的方式,本文简单讲解下使用P ...

  5. PyTorch的hook及其在Grad-CAM中的应用

    文章目录 hook简介 PyTorch的四个hook 1. torch.Tensor.register_hook(hook) 2. torch.nn.Module.register_forward_h ...

  6. python中forward的作用_Pytorch学习笔记07----nn.Module类与前向传播函数forward的理解

    1.nn.Module类理解 pytorch里面一切自定义操作基本上都是继承nn.Module类来实现的 方法预览: classModule(object):def __init__(self):de ...

  7. python中random模块中包含了随机数相关的功能函数_Python中random模块生成随机数详解...

    print random.randint(12, 20) #生成的随机数n: 12 <= n <= 20 print random.randint(20, 20) #结果永远是20 #pr ...

  8. python dump函数_python中实现php的var_dump函数功能

    最近在做python的web开发(原谅我的多变,好东西总想都学着...node.js也是),不过过程中总遇到些问题,不管是web.py还是django,开发起来确实没用php方便,毕竟存在的时间比较短 ...

  9. python local函数_python中的函数

    函数 一.函数的定义 def是可执行的代码.def创建了一个对象并将其赋值给某一变量名.def语句是实时执行的,即:def在运行时才进行评估,而在def之中的代码在函数调用后才会评估.函数本身就是一个 ...

最新文章

  1. windows平台HTTP代理server搭建(CCproxy)
  2. Scala的异常处理
  3. linux动态库替换,不要使用 cp 替换正在使用中的Linux 动态库
  4. 前端优秀博客网站收集
  5. 安装已停止,原因是 ProjectType 值的目录不存在。对于您所安装的 Visual St...
  6. (转)iOS 6的Rotation--详细版本
  7. 关于数据契约(DataContract)待续
  8. NOIP2011 铺地毯
  9. 【LeetCode笔记】142. 环形链表 II(Java、快慢指针)
  10. 如何识别新加的计算机硬盘,图文解说win10系统无法识别新加的机械硬盘的具体技巧...
  11. jdk说明文档_给JDK报了一个P4的Bug,结果居然……
  12. 微信小程序 --- 动态获取input的value
  13. React native 分享 友盟分享SDK
  14. CISP 考试教材《第 3 章 知识域:信息安全管理》知识整理
  15. 怎么查看linux系统防火墙,如何查看linux系统中防火墙的状态
  16. 一个老程序员的计算机视觉蹒跚学习之路
  17. 计算机时代汉字书写有了新的方式,网络时代的汉字书写
  18. 计算机导论黄国兴百度云,计算机导论黄国兴
  19. 没有计算器的日子怎么过——手动时期的计算工具
  20. java包含不区分大小写_Java不区分大小写。

热门文章

  1. mysql 实例复制_MySQL 复制详解及简单实例
  2. nio的优势_BIO、NIO、AIO 介绍和适用场景分析
  3. python docx 复制_python制作单词抽测题(word版)(一)
  4. 用Python算24点
  5. Linux 目录栈及目录切换
  6. position:sticky布局
  7. 没有找到MSVCP71.dll,迅雷5无法进行离线下载,P2P Seacher无法连入emule网络
  8. Entity Framework 4 in Action读书笔记——第四章:使用LINQ to Entities查询:使用函数...
  9. SQL Servr 2008空间数据应用系列一:空间信息基础
  10. PHP_TP5框架开发后端接口(代码编写思路)