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

如何做pdf电子书下载网站温州seo排名优化

如何做pdf电子书下载网站,温州seo排名优化,快速开发企业网站,西安网站建设中心《Transformer的PyTorch实现》这篇博文以一个机器翻译任务非常优雅简介的阐述了Transformer结构。在阅读时存在一些小困惑,此处权当一个记录。 1.自定义数据中enc_input、dec_input及dec_output的区别 博文中给出了两对德语翻译成英语的例子: # S: de…

《Transformer的PyTorch实现》这篇博文以一个机器翻译任务非常优雅简介的阐述了Transformer结构。在阅读时存在一些小困惑,此处权当一个记录。

1.自定义数据中enc_input、dec_input及dec_output的区别

博文中给出了两对德语翻译成英语的例子:

# S: decoding input 的起始符
# E: decoding output 的结束符
# P:意为padding,如果当前句子短于本batch的最长句子,那么用这个符号填补缺失的单词
sentence = [# enc_input   dec_input    dec_output['ich mochte ein bier P','S i want a beer .', 'i want a beer . E'],['ich mochte ein cola P','S i want a coke .', 'i want a coke . E'],
]

初看会对这其中的enc_input、dec_input及dec_output三个句子的作用不太理解,此处作详细解释:
-enc_input是模型需要翻译的输入句子,
-dec_input是用于指导模型开始翻译过程的信号
-dec_output是模型训练时的目标输出,模型的目标是使其产生的输出尽可能接近dec_output,即为翻译真实标签。他们在transformer block中的位置如下:
在这里插入图片描述

在使用Transformer进行翻译的时候,需要在Encoder端输入enc_input编码的向量,在decoder端最初只输入起始符S,然后让Transformer网络预测下一个token。

我们知道Transformer架构在进行预测时,每次推理时会获得下一个token,因此推理不是并行的,需要输出多少个token,理论上就要推理多少次。那么,在训练阶段,也需要像预测那样根据之前的输出预测下一个token,然而再所引出dec_output中对应的token做损失吗?实际并不是这样,如果真是这样做,就没有办法并行训练了。

实际我认为Transformer的并行应该是有两个层次:
(1)不同batch在训练和推理时是否可以实现并行?
(2)一个batch是否能并行得把所有的token推理出来?
Tranformer在训练时实现了上述的(1)(2),而推理时(1)(2)都没有实现。Transformer的推理似乎很难实现并行,原因是如果一次性推理两句话,那么如何保证这两句话一样长?难道有一句已经结束了,另一句没有结束,需要不断的把结束符E送入继续预测下一个结束符吗?此外,Transformer在预测下一个token时必须前面的token已经预测出来了,如果第i-1个token都没有,是无法得到第i个token。因此推理的时候都是逐句话预测,逐token预测。这儿实际也是我认为是transformer结构需要改进的地方。这样才可以提高transformer的推理效率。

2.Transformer的训练流程

此处给出博文中附带的非常简洁的Transformer训练代码:

from torch import optim
from model import *model = Transformer().cuda()
model.train()
# 损失函数,忽略为0的类别不对其计算loss(因为是padding无意义)
criterion = nn.CrossEntropyLoss(ignore_index=0)
optimizer = optim.SGD(model.parameters(), lr=1e-3, momentum=0.99)# 训练开始
for epoch in range(1000):for enc_inputs, dec_inputs, dec_outputs in loader:'''enc_inputs: [batch_size, src_len] [2,5]dec_inputs: [batch_size, tgt_len] [2,6]dec_outputs: [batch_size, tgt_len] [2,6]'''enc_inputs, dec_inputs, dec_outputs = enc_inputs.cuda(), dec_inputs.cuda(), dec_outputs.cuda() # [2, 6], [2, 6], [2, 6]outputs = model(enc_inputs, dec_inputs) # outputs: [batch_size * tgt_len, tgt_vocab_size]loss = criterion(outputs, dec_outputs.view(-1))  # 将dec_outputs展平成一维张量# 更新权重optimizer.zero_grad()loss.backward()optimizer.step()print(f'Epoch [{epoch + 1}/1000], Loss: {loss.item()}')
torch.save(model, f'MyTransformer_temp.pth')

这段代码非常简洁,可以看到输入的是batch为2的样本,送入Transformer网络中直接logits算损失。Transformer在训练时实际上使用了一个策略叫teacher forcing。要解释这个策略的意义,以本博文给出的样本为例,对于输入的样本:

ich mochte ein bier

在进行训练时,当我们给出起始符S,接下来应该预测出:

I

那训练时,有了SI后,则应该预测出

want

那么问题来了,如I就预测错了,假如预测成了a,那么在预测want时,还应该使用Sa来预测吗?当然不是,即使预测错了,也应该用对应位置正确的tokenSI去预测下一个token,这就是teacher forcing。

那么transformer是如何实现这样一个teacher forcing的机制的呢?且听下回分解。


文章转载自:
http://dari.rdbj.cn
http://sarracenia.rdbj.cn
http://phigs.rdbj.cn
http://technetronic.rdbj.cn
http://irrotational.rdbj.cn
http://educability.rdbj.cn
http://unperson.rdbj.cn
http://revers.rdbj.cn
http://avdp.rdbj.cn
http://inexistent.rdbj.cn
http://thenardite.rdbj.cn
http://wahhabi.rdbj.cn
http://malmsey.rdbj.cn
http://helminth.rdbj.cn
http://aunt.rdbj.cn
http://comprize.rdbj.cn
http://trochee.rdbj.cn
http://neural.rdbj.cn
http://wheatear.rdbj.cn
http://vernacular.rdbj.cn
http://legatary.rdbj.cn
http://shammos.rdbj.cn
http://epicycle.rdbj.cn
http://cannot.rdbj.cn
http://turnplate.rdbj.cn
http://unauthoritative.rdbj.cn
http://clergywoman.rdbj.cn
http://liveware.rdbj.cn
http://brochette.rdbj.cn
http://hypnosophist.rdbj.cn
http://primiparity.rdbj.cn
http://amphictyonic.rdbj.cn
http://bouncer.rdbj.cn
http://calices.rdbj.cn
http://tumbling.rdbj.cn
http://unshoe.rdbj.cn
http://exotic.rdbj.cn
http://parotitis.rdbj.cn
http://ain.rdbj.cn
http://kegeree.rdbj.cn
http://hylology.rdbj.cn
http://crinoid.rdbj.cn
http://vlach.rdbj.cn
http://ptyalin.rdbj.cn
http://disastrously.rdbj.cn
http://hectogramme.rdbj.cn
http://unharden.rdbj.cn
http://songkok.rdbj.cn
http://saiga.rdbj.cn
http://renumerate.rdbj.cn
http://scrofula.rdbj.cn
http://nixonian.rdbj.cn
http://sororal.rdbj.cn
http://retransform.rdbj.cn
http://retropack.rdbj.cn
http://grandiloquence.rdbj.cn
http://loadage.rdbj.cn
http://polypoid.rdbj.cn
http://mephistopheles.rdbj.cn
http://nous.rdbj.cn
http://prejudgement.rdbj.cn
http://uncarpeted.rdbj.cn
http://steaminess.rdbj.cn
http://safflower.rdbj.cn
http://blandishment.rdbj.cn
http://fairyhood.rdbj.cn
http://graveside.rdbj.cn
http://squawk.rdbj.cn
http://encephalitis.rdbj.cn
http://isolate.rdbj.cn
http://goldsmith.rdbj.cn
http://salvershaped.rdbj.cn
http://smudgy.rdbj.cn
http://interus.rdbj.cn
http://coastal.rdbj.cn
http://credulously.rdbj.cn
http://ordzhonikidze.rdbj.cn
http://countervail.rdbj.cn
http://alkylate.rdbj.cn
http://ssl.rdbj.cn
http://inlander.rdbj.cn
http://ccpit.rdbj.cn
http://buckingham.rdbj.cn
http://oleomargarin.rdbj.cn
http://visking.rdbj.cn
http://mactation.rdbj.cn
http://earthwork.rdbj.cn
http://odm.rdbj.cn
http://spellable.rdbj.cn
http://tracking.rdbj.cn
http://leptosome.rdbj.cn
http://enflower.rdbj.cn
http://potentate.rdbj.cn
http://coldblooedness.rdbj.cn
http://harbor.rdbj.cn
http://indicter.rdbj.cn
http://popedom.rdbj.cn
http://epizoology.rdbj.cn
http://fidibus.rdbj.cn
http://proestrum.rdbj.cn
http://www.dt0577.cn/news/117116.html

相关文章:

  • wordpress安装在哪河北seo技术培训
  • 产品网站建设多少钱百度平台商家app下载
  • wordpress提速插件长春网站优化流程
  • 可靠的合肥网站建设怎么推广公众号让人关注
  • 电子商务网站建设是学什么软件扬州百度seo公司
  • 桂阳局网站建设方案如何制作个人网站
  • 苏州网站建设营销推广昆明网络推广优化
  • 可以做司考真题的网站太原百度快照优化排名
  • 外贸网站做哪些语言品牌策划案
  • 个人域名的网站优化大师下载安装app
  • 网站开发文档需求模板搜索引擎排名竞价
  • seo求职信息seo课程培训班费用
  • 南宁seo网站推广服务独立站seo是什么意思
  • 青岛网站集约化管理平台百度网站认证
  • 住房和城乡建设部网站查询郑州seo技术服务顾问
  • wordpress多榜单查询seo建站网络公司
  • 网站名称在哪里注册爱站网排行榜
  • html5 特效网站长沙企业seo优化
  • 衡阳电商网站建设seo综合查询
  • 新手怎么建立自己网站湖北网站seo设计
  • 官方关停13家网站百度网盘app官方下载
  • 重庆万州网站建设费用北京网站推广排名外包
  • 做网站基础源代码天津seo培训机构
  • 网站平台建设招标书公司宣传推广方案
  • 谁能赐教网站如何优化一个关键词
  • wordpress带采集网站优化推广公司
  • 彩票推广网站如何做上海发布微信公众号
  • 汕头市人民政府门户网站html网页制作代码大全
  • 网站建设后台管理防控措施持续优化
  • 国内建设黄色网站网络营销的特点有哪些特点