当前位置: 首页 > news >正文

源码交易平台网站源码西安企业网站开发哪家好

源码交易平台网站源码,西安企业网站开发哪家好,五大类型网站,长沙房产信息网官网学习SAM模型的时候#xff0c;第一次看见了nn.Embedding函数#xff0c;以前接触CV比较多#xff0c;很少学习词嵌入方面的#xff0c;找了一些资料一开始也不是很理解#xff0c;多看了两遍后#xff0c;突然顿悟#xff0c;特此记录。 SAM中PromptEncoder中运用nn.Emb…  学习SAM模型的时候第一次看见了nn.Embedding函数以前接触CV比较多很少学习词嵌入方面的找了一些资料一开始也不是很理解多看了两遍后突然顿悟特此记录。 SAM中PromptEncoder中运用nn.Embedding point_embeddings [nn.Embedding(1, embed_dim) for i in range(self.num_point_embeddings)]torch.nn.Embedding官方页面 1. torch.nn.Embedding介绍 1词嵌入简介 关于词嵌入这篇文章讲的挺清楚的相比于One-hot编码Embedding方式更方便计算例如在“就在江湖之上”整个词典中要编码“江湖”两个字One-hot编码需要 [ l e n g t h , w o r d _ c o u n t ] {[length, word\_count]} [length,word_count] 大小的张量其中 w o r d _ c o u n t {word\_count} word_count 为词典中所有词的总数而Embedding方式的嵌入维度 e m b e d d i n g _ d i m {embedding\_dim} embedding_dim 可远远小于 w o r d _ c o u n t {word\_count} word_count 。在运用Embedding方式编码的词典时只需要词的索引下图例子中 “江湖”——[2, 3] 2重要参数介绍 nn.embedding就相当于一个词典嵌入表 torch.nn.Embedding(num_embeddings, embedding_dim, padding_idxNone, max_normNone, norm_type2.0, scale_grad_by_freqFalse, sparseFalse, _weightNone, _freezeFalse, deviceNone, dtypeNone)常用参数   ① num_embeddings (int) 词典中词的总数 ② embedding_dim (int) 词典中每个词的嵌入维度 ③ padding_idx (int, optional) 填充索引在padding_idx处的嵌入向量在训练过程中没有更新即它是一个固定的“pad”。对于新构造的Embedding在padding_idx处的嵌入向量将默认为全零但可以更新为另一个值以用作填充向量。 输入 I n p u t ( ∗ ) {Input(∗)} Input(∗): IntTensor 或者 LongTensor为任意size的张量包含要提取的所有词索引。 输出 O u t p u t ( ∗ , H ) {Output(∗, H)} Output(∗,H): ∗ {∗} ∗ 为输入张量的size H {H} H embedding_dim 2. torch.nn.Embedding用法 1基本用法 官方例子如下 import torch import torch.nn as nnembedding nn.Embedding(10, 3) x torch.LongTensor([[1, 2, 4, 5], [4, 3, 2, 9]])y embedding(x)print(权重:\n, embedding.weight) print(输出:) print(y)查看权重与输出打印如下 权重:Parameter containing: tensor([[ 1.4212, 0.6127, -1.1126],[ 0.4294, -1.0121, -1.8348],[-0.0315, -1.2234, -0.4589],[ 0.6131, -0.4381, 0.1253],[-1.0621, -0.1466, 1.7412],[ 1.0708, -0.7888, -0.0177],[-0.5979, 0.6465, 0.6508],[-0.5608, -0.3802, -0.4206],[ 1.1516, 0.4091, 1.2477],[-0.5753, 0.1394, 2.3447]], requires_gradTrue) 输出: tensor([[[ 0.4294, -1.0121, -1.8348],[-0.0315, -1.2234, -0.4589],[-1.0621, -0.1466, 1.7412],[ 1.0708, -0.7888, -0.0177]],[[-1.0621, -0.1466, 1.7412],[ 0.6131, -0.4381, 0.1253],[-0.0315, -1.2234, -0.4589],[-0.5753, 0.1394, 2.3447]]], grad_fnEmbeddingBackward0)家人们发现了什么输入 x {x} x 的 s i z e {size} size 大小为 [ 2 , 4 ] {[2, 4]} [2,4] 输出 y {y} y 的 s i z e {size} size 大小为 [ 2 , 4 , 3 ] {[2, 4, 3]} [2,4,3] 下图清晰的展示出nn.Embedding干了个什么事儿 nn.Embedding相当于是一本词典本例中词典中一共有10个词 X 0 {X_0} X0​~ X 9 {X_9} X9​每个词的嵌入维度为3输入 x {x} x 中记录词在词典中的索引输出 y {y} y 为输入 x {x} x 经词典编码后的映射。 注意此时存在一个问题词索引是不能超出词典的最大容量的即本例中输入 x {x} x 中的数值取值范围为 [ 0 , 9 ] {[0, 9]} [0,9]。 2自定义词典权重 如上所示在未定义时nn.Embedding的自动初始化权重满足 N ( 0 , 1 ) {N(0,1)} N(0,1) 分布此外nn.Embedding的权重也可以通过from_pretrained来自定义 import torch import torch.nn as nnweight torch.FloatTensor([[1, 2.3, 3], [4, 5.1, 6.3]]) embedding nn.Embedding.from_pretrained(weight) x torch.LongTensor([1, 0, 0]) y embedding(x) print(y)输出为 tensor([[4.0000, 5.1000, 6.3000],[1.0000, 2.3000, 3.0000],[1.0000, 2.3000, 3.0000]])3padding_idx用法 padding_idx可用于指定词典中哪一个索引的词填充为0。 import torch import torch.nn as nnembedding nn.Embedding(10, 3, padding_idx5) x torch.LongTensor([[5, 2, 0, 5]]) y embedding(x) print(权重:\n, embedding.weight) print(输出:) print(y)输出为 权重:Parameter containing: tensor([[ 0.1831, -0.0200, 0.7023],[ 0.2751, -0.1189, -0.3325],[-0.5242, -0.2230, -1.1677],[-0.4078, -1.2141, 1.3185],[ 0.8973, -0.9650, 0.5420],[ 0.0000, 0.0000, 0.0000],[ 0.0597, 0.6810, -0.2595],[ 0.6543, -0.6242, 0.2337],[-0.0780, -0.9607, -0.0618],[ 0.2801, -0.6041, -1.4143]], requires_gradTrue) 输出: tensor([[[ 0.0000, 0.0000, 0.0000],[-0.5242, -0.2230, -1.1677],[ 0.1831, -0.0200, 0.7023],[ 0.0000, 0.0000, 0.0000]]], grad_fnEmbeddingBackward0)词典中被padding_idx标定后的词嵌入向量可被重新定义 import torch import torch.nn as nnpadding_idx2 embedding nn.Embedding(3, 3, padding_idxpadding_idx) print(权重:\n, embedding.weight)with torch.no_grad():embedding.weight[padding_idx] torch.tensor([1.1, 2.2, 3.3]) print(权重:\n, embedding.weight)输出为 权重:Parameter containing: tensor([[ 0.7247, 0.7553, -1.8226],[-1.3304, -0.5025, 0.5237],[ 0.0000, 0.0000, 0.0000]], requires_gradTrue) 权重:Parameter containing: tensor([[ 0.7247, 0.7553, -1.8226],[-1.3304, -0.5025, 0.5237],[ 1.1000, 2.2000, 3.3000]], requires_gradTrue)
http://www.w-s-a.com/news/106448/

相关文章:

  • 网站建设与管理 市场分析上海网站建设公司排名
  • 怎么将公司网站设成首页网址关键词查询网站
  • 怎么用ps做网站ui邱县专业做网站
  • 国开行网站毕业申请怎么做大连旅顺口旅游攻略
  • 鲜花店网站源码成都专做婚介网站的公司
  • 合肥企业网站建设工哈尔滨公告
  • 华强北 做网站互联网服务平台入口
  • vi设计案例网站微信导航网站 dedecms
  • 青浦区做网站设计图片手绘图片
  • 做网站的基本功制作网站公司推荐
  • 阿里云快速建站教程个人网站 费用
  • 广东购物网站建设微信公众号制作模板免费
  • 阿里国际站韩语网站怎么做让移动网站
  • 北京外包做网站如何报价中国几大网络推广公司
  • 中国建设部网站关于资质wordpress 建app
  • 程序员找工作的网站哈尔滨建设信息网站
  • 公司 网站 方案高考写作网站
  • 网站后台如何登陆网站开发需求逻辑图
  • 市级档案网站建设情况分析server2008做DNS与网站
  • 公积金门户网站建设方案网站建设代理平台怎么做
  • 网站建设知识论文抖音开放平台是干什么的
  • 网站建设期末试卷大气简洁网站
  • 电子商务网站建设报告范文单位做网站怎么做
  • 优质的外国网站qq小程序在哪里打开
  • 商务网站建设与推广实训报告免费素材网站无水印
  • 外贸站seoapp开发公司历程概述
  • 沈阳网站推广¥做下拉去118cr陶瓷企业 瓷砖地板公司网站建设
  • 医院网站官方微信精神文明建设我做服装设计师的 求推荐资源网站
  • 微信网站建设需要那些资料昆明cms模板建站
  • 安庆网站建设兼职中企动力是500强吗