pytorch复习笔记--nn.Embedding()的用法

这篇具有很好参考价值的文章主要介绍了pytorch复习笔记--nn.Embedding()的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1--nn.Embedding()的用法

2--实例展示:

3--注意的问题


1--nn.Embedding()的用法

import torch.nn as nn

embedding = nn.Embedding(num_embeddings = 10, embedding_dim = 256)

nn.Embedding()产生一个权重矩阵weight,其shape为(num_embeddings, embedding_dim),表示生成num_embeddings个具有embedding_dim大小的嵌入向量;

输入input的形状shape为(batch_size, Seq_len),batch_size表示样本数(NLP句子数),Seq_len表示序列的长度(每个句子单词个数);

nn.Embedding(input)的输出output具有(batch_size,Seq_len,embedding_dim)的形状大小;

2--实例展示:

① 代码:

import torch
import torch.nn as nn

if __name__ == "__main__":
    input = torch.randint(low = 0, high = 5, size = (2, 9))
    input = torch.LongTensor(input)
    embedding = nn.Embedding(num_embeddings=6, embedding_dim = 3)
    output = embedding(input)
    print("input.shape:", input.shape) # (2, 9) 2个句子,9个单词
    print("embedding.shape:", embedding.weight.shape) # (6, 3) 
    print("output.shape", output.shape) # (2, 9, 3) 2个句子,9个单词,每个单词用一个3维的向量表示

    print("input:", input) 
    print("embedding:", embedding.weight) 
    print("output:", output)


    print("All Done !")

nn.embedding(),Pytorch学习笔记,pytorch,深度学习,人工智能

② 分析:

output = embedding(input) 的作用是将每个单词用一个 embedding_dim 大小的向量进行表示,所以对于一个(batch_size,Seq_len)的输入input来说,其输出 output 是一个(batch_size,Seq_len,embedding_dim)大小的 tensor。

在选择 embedding_dim 大小的向量进行表示时,是根据每个单词的数据进行选择;例如在下图中,第一个句子中两个单词的数据表示均为 3(红框表示),则对应的index均为 4,都要选择embedding.weight 中 index 为 4(绿框表示)的嵌入向量进行表示,所以在最终的 output 中两个单词的嵌入向量是相同的(黄框表示)。

nn.embedding(),Pytorch学习笔记,pytorch,深度学习,人工智能

3--注意的问题

① nn.Embedding() 的输入必须是 LongTensor 类型的张量;

② 在input输入中,数据大小(极差)不能超过 nn.Embedding() 初始化中 num_embeddings 的大小,即数据对应的 index 不能大于 num_embeddings;文章来源地址https://www.toymoban.com/news/detail-588110.html

到了这里,关于pytorch复习笔记--nn.Embedding()的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pytorch nn.ModuleList和nn.Sequential的用法笔记

    有部分内容转自: pytorch小记:nn.ModuleList和nn.Sequential的用法以及区别_慕思侣的博客-CSDN博客 但是有部分内容做了修改调整, 在构建网络的时候,pytorch有一些基础概念很重要,比如nn.Module,nn.ModuleList,nn.Sequential,这些类我们称为为容器(containers),可参考containers。本文中

    2024年02月13日
    浏览(27)
  • PyTorch 简单易懂的 Embedding 和 EmbeddingBag - 解析与实践

    目录 torch.nn子模块Sparse Layers详解 nn.Embedding 用途 主要参数 注意事项 使用示例 从预训练权重创建嵌入 nn.EmbeddingBag 功能和用途 主要参数 使用示例 从预训练权重创建 总结 torch.nn.Embedding 是 PyTorch 中一个重要的模块,用于创建一个简单的查找表,它存储固定字典和大小的嵌入

    2024年01月25日
    浏览(28)
  • PyTorch 稀疏函数解析:embedding 、one_hot详解

    目录 PyTorch子模块Sparse functions详解 embedding 参数 输出形状 示例 带有 padding_idx 的示例 embedding_bag 参数 输出形状 示例 使用 padding_idx 的示例 one_hot 参数 返回 示例 总结 torch.nn.functional.embedding 是 PyTorch 中的一个函数,用于从固定字典和大小的简单查找表中检索嵌入(embeddings)。这

    2024年01月18日
    浏览(35)
  • Pytorch transformers tokenizer 分词器词汇表添加新的词语和embedding

    在NLP领域,基于公开语料的预训练模型,在专业领域迁移时,会遇到专业领域词汇不在词汇表的问题,本文介绍如何添加专有名词到预训练模型。 例如,在bert预训练模型中,并不包含财经词汇,比如‘市盈率’等财务指标词汇,本文将介绍: 如何把专业名词添加到词汇表中

    2024年02月13日
    浏览(35)
  • Pytorch:torch.nn.Module.apply用法详解

    torch.nn.Module.apply 是 PyTorch 中用于递归地应用函数到模型的所有子模块的方法。它允许对模型中的每个子模块进行操作,比如初始化权重、改变参数类型等。 以下是关于 torch.nn.Module.apply 的示例: 1. 语法 Module:PyTorch 中的神经网络模块,例如 torch.nn.Module 的子类。 fn:要应用到

    2024年01月15日
    浏览(37)
  • 【Pytorch】三维卷积 nn.Conv3d 用法

    nn.Conv3d 是 PyTorch 中实现三维卷积操作的类。 其输入和输出的维度如下: 输入维度: 输入张量的维度应为 (N, C_in, D, H, W) ,其中: N : 批量大小 (batch size),即一批输入数据中包含的样本数量。 C_in : 输入通道数 (number of input channels),即输入数据的通道数量,例如彩色图像通常

    2024年02月05日
    浏览(33)
  • pytorch中 nn.Conv2d的简单用法

    参数介绍 : in_channels :卷积层输入通道数 out_channels :卷积层输出通道数 kernel_size :卷积层的卷积核大小 padding :填充长度 stride :卷积核移动的步长 dilation :是否采用空洞卷积 groups :是否采用分组卷积 bias :是否添加偏置参数 padding_mode : padding 的模式 如果输入大小为:

    2024年02月11日
    浏览(28)
  • PyTorch学习笔记:nn.LeakyReLU——LeakyReLU激活函数

    功能:逐元素对数据应用如下函数公式进行激活 LeakyReLU ( x ) = max ⁡ ( 0 , x ) + α ∗ min ⁡ ( 0 , x ) text{LeakyReLU}(x)=max(0,x)+alpha*min(0,x) LeakyReLU ( x ) = max ( 0 , x ) + α ∗ min ( 0 , x ) 或者 LeakyReLU ( x ) = { x , i f x ≥ 0 α × x , otherwise begin{aligned} text{LeakyReLU}(x)= left{ begin{matrix} x,quad

    2024年02月02日
    浏览(27)
  • PyTorch学习笔记:nn.Tanh——Tanh激活函数

    功能:逐元素应用Tanh函数(双曲正切)对数据进行激活, 将元素调整到区间(-1,1)内 函数方程: Tanh ( x ) = tanh ( x ) = e x − e − x e x + e − x text{Tanh}(x)=text{tanh}(x)=frac{e^x-e^{-x}}{e^x+e^{-x}} Tanh ( x ) = tanh ( x ) = e x + e − x e x − e − x ​ 注意: 输入可以是任意尺寸的数据,输出尺寸

    2024年01月17日
    浏览(28)
  • Pytorch学习笔记(5):torch.nn---网络层介绍(卷积层、池化层、线性层、激活函数层)

     一、卷积层—Convolution Layers  1.1 1d / 2d / 3d卷积 1.2 卷积—nn.Conv2d() nn.Conv2d 1.3 转置卷积—nn.ConvTranspose nn.ConvTranspose2d  二、池化层—Pooling Layer (1)nn.MaxPool2d (2)nn.AvgPool2d (3)nn.MaxUnpool2d  三、线性层—Linear Layer  nn.Linear  四、激活函数层—Activate Layer (1)nn.Sigmoid  (

    2024年01月20日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包