【Pytorch:nn.Embedding】简介以及使用方法:用于生成固定数量的具有指定维度的嵌入向量embedding vector

这篇具有很好参考价值的文章主要介绍了【Pytorch:nn.Embedding】简介以及使用方法:用于生成固定数量的具有指定维度的嵌入向量embedding vector。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、nn.Embedding

  • 首先我们讲解一下关于嵌入向量embedding vector的概念

1)在自然语言处理NLP领域,是将单词、短语或其他文本单位映射到一个固定长度的实数向量空间中。嵌入向量具有较低的维度,通常在几十到几百维之间,且每个维度都包含一定程度上的语义信息。这意味着在嵌入向量空间中,语义上相似的单词在向量空间中也更加接近。
2)在计算机视觉领域,是将图像或图像中的区域映射到一个固定长度的实数向量空间中。嵌入向量在计算机视觉任务中起到了表示和提取特征的作用。通过将图像映射到嵌入向量空间,可以捕捉到图像的语义信息、视觉特征以及图像之间的相似性。文章来源地址https://www.toymoban.com/news/detail-650147.html

  • 总之,嵌入向量是具有固定维度的,而不论是在NLP领域还是CV领域,都需要生成多个嵌入向量,因此也有固定数量。
  • 于是,我们就可以简单理解该类为:
CLASS 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, _freeze=False, device=None, dtype=None)
''
一个简单的查找表,用于存储固定词典和尺寸的embeddings:其实就是存储了固定数量的具有固定维度的嵌入向量
该模块需要使用索引检索嵌入向量:也就是说模块的输入是索引列表,输出是相应存储的嵌入向量。
1) num_embeddings: 嵌入向量的数量
2) embedding_dim: 嵌入向量的维度
注意:
1)它的成员变量weight:具有shape为 (num_embeddings, embedding_dim) 的可学习的参数
2)输入为:任意形状[*]的IntTensor或LongTensor,内部元素为索引值,即0到num_embeddings-1之间的值
   输出为:[*, H]的嵌入向量,H为embedding_dim
''
  • 例如:
from torch import nn
import torch


# 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]])
print(embedding(input))
print(embedding.weight)
''
输出为:
tensor([[[ 0.4125,  0.1478,  0.3764],
         [ 0.5272, -0.4960,  1.5926],
         [ 0.2231, -0.7653, -0.5333],
         [ 2.8278,  1.5299,  1.4080]],

        [[ 0.2231, -0.7653, -0.5333],
         [-0.3996,  0.3626, -0.3369],
         [ 0.5272, -0.4960,  1.5926],
         [ 0.6222,  1.3385,  0.6861]]], grad_fn=<EmbeddingBackward>)
Parameter containing:
tensor([[-0.1316, -0.2370, -0.8308],
        [ 0.4125,  0.1478,  0.3764],
        [ 0.5272, -0.4960,  1.5926],
        [-0.3996,  0.3626, -0.3369],
        [ 0.2231, -0.7653, -0.5333],
        [ 2.8278,  1.5299,  1.4080],
        [-0.4182,  0.4665,  1.5345],
        [-1.2107,  0.3569,  0.9719],
        [-0.6439, -0.4095,  0.6130],
        [ 0.6222,  1.3385,  0.6861]], requires_grad=True)
''

2、使用场景

  • transformer decoder输入的嵌入向量Output Embedding
    【Pytorch:nn.Embedding】简介以及使用方法:用于生成固定数量的具有指定维度的嵌入向量embedding vector,Pytorch,pytorch,embedding,深度学习,transformer,detr
  • DETR中的decoder的object queries
    【Pytorch:nn.Embedding】简介以及使用方法:用于生成固定数量的具有指定维度的嵌入向量embedding vector,Pytorch,pytorch,embedding,深度学习,transformer,detr

到了这里,关于【Pytorch:nn.Embedding】简介以及使用方法:用于生成固定数量的具有指定维度的嵌入向量embedding vector的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 深入理解PyTorch中的nn.Embedding

    太长不看版: NLP任务所依赖的语言数据称为语料库。 详细介绍版: 语料库(Corpus,复数是Corpora)是组织成数据集的真实文本或音频的集合。 此处的真实是指由该语言的母语者制作的文本或音频。 语料库可以由从报纸、小说、食谱、广播到电视节目、电影和推文的所有内容

    2024年02月09日
    浏览(44)
  • pytorch复习笔记--nn.Embedding()的用法

    目录 1--nn.Embedding()的用法 2--实例展示: 3--注意的问题 nn.Embedding()产生一个权重矩阵weight,其shape为(num_embeddings, embedding_dim),表示生成num_embeddings个具有embedding_dim大小的嵌入向量; 输入input的形状shape为(batch_size, Seq_len),batch_size表示样本数(NLP句子数),Seq_len表示序列

    2024年02月16日
    浏览(24)
  • PyTorch 之 简介、相关软件框架、基本使用方法、tensor 的几种形状和 autograd 机制

    本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052 PyTorch 是一个基于 Torch 的 Python 开源机器学习库,用于自然语言处理等应用程序。它主要由 Facebook 的人工智能小组开发,不仅能够实现强大的 GPU 加速,同时还支持动态神经网络,这一点是现在很多主流框架

    2024年01月18日
    浏览(41)
  • pytorch nn.Embedding 读取gensim训练好的词/字向量(有例子)

      *也许看了上面你依然会一脸懵(别着急,下面给你举个例子)

    2024年02月07日
    浏览(29)
  • NLP:palm-rlhf-pytorch(一种类ChatGPT的开源替代方案PaLM+RLHF)的简介、安装、使用方法之详细攻略

    NLP:palm-rlhf-pytorch(一种类ChatGPT的开源替代方案PaLM+RLHF)的简介、安装、使用方法之详细攻略 目录 palm-rlhf-pytorch(一种类ChatGPT的开源替代方案PaLM+RLHF)的简介 palm-rlhf-pytorc的安装 palm-rlhf-pytorc的使用方法 1、基础用法       palm-rlhf-pytorch是基于PaLM架构的RLHF(人类反馈强化学习)的实现

    2024年02月06日
    浏览(39)
  • Stable Diffusion——基础模型、VAE、LORA、Embedding各个模型的介绍与使用方法

    Stable Diffusion(稳定扩散)是一种生成模型,基于扩散过程来生成高质量的图像。它通过一个渐进过程,从一个简单的噪声开始,逐步转变成目标图像,生成高保真度的图像。这个模型的基础版本是基于扩散过程的,但也有一些改进版本,包括基于变分自动编码器(VAE)、局部

    2024年02月22日
    浏览(31)
  • AIGC:ChatGPT(一个里程碑式的对话聊天机器人)的简介(意义/功能/核心技术等)、使用方法(七类任务)、案例应用(提问基础性/事实性/逻辑性/创造性/开放性的问题以及编程相关)之详细攻略

    AIGC:ChatGPT(一个里程碑式的对话聊天机器人)的简介(意义/功能/核心技术等)、使用方法(七类任务)、案例应用(提问基础性/事实性/逻辑性/创造性/开放性的问题以及编程相关)之详细攻略 导读 :回拨到2020年5月,OpenAI提出了更强大的GPT-3模型,如今已经过去2年多了,当人们还在

    2024年02月03日
    浏览(37)
  • SASS简介及使用方法

    Sass(Syntactically Awesome Style Sheets)是一种CSS预处理器,它扩展了CSS语法,并提供了许多有用的功能,使得样式表的编写更加高效和灵活。下面是关于Sass的简介和使用方法: Sass允许你使用变量、嵌套规则、混合(Mixins)、导入等功能,使得CSS的编写更具可维护性和可重用性。

    2024年01月23日
    浏览(29)
  • Pytorch基本概念和使用方法

    目录 1 Adam及优化器optimizer(Adam、SGD等)是如何选用的? 1)Momentum 2)RMSProp 3)Adam 2 Pytorch的使用以及Pytorch在以后学习工作中的应用场景。 1)Pytorch的使用 2)应用场景 3 不同的数据、数据集加载方式以及加载后各部分的调用处理方式。如DataLoder的使用、datasets内置数据集的使

    2024年02月07日
    浏览(32)
  • Unity——DOTween插件使用方法简介

      缓动动画既是一种编程技术,也是一种动画的设计思路。从设计角度来看,可以有以下描述 事先设计很多基本的动画样式,如移动、缩放、旋转、变色和弹跳等。但这些动画都以抽象方式表示,一般封装为程序函数 动画的参数可以在使用时指定,如移动的起点和终点、旋

    2024年02月05日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包