热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

动手学深度学习|序列到序列学习(seq2seq)|62

目录Seq2Seq代码QASeq2Seqseq2seq,从一个句子翻译到另外一个句子。封面是一个基因转录,这个也是一个seq2seq的过程。seq2seq最早是来做机器翻译的,不过

目录



  • Seq2Seq

  • 代码

  • QA


Seq2Seq

seq2seq,从一个句子翻译到另外一个句子。

封面是一个基因转录,这个也是一个seq2seq的过程。

seq2seq最早是来做机器翻译的,不过现在基本都使用bert。(听说google的翻译和搜索都使用了bert)

seq2seq是一个encoder-decoder的架构。



  • encoder是一个RNN,读取输入句子(可以是双向的)

encoder就是给一个句子,比如"hello world",然后需要翻译成法语的句子。

把最后时刻的隐藏状态传递给解码器,可以认为最后时刻的隐藏状态包含了整个句子的信息。

encoder的RNN可以是双向的,双向的RNN可以做encoder,但是不能做decoder。encoder是不需要预测的,所以可以看到完整的句子,可以正着看,反着看,encoder经常会使用双向RNN。



  • decoder使用另外一个RNN来输出

隐藏状态一过来,先给一个说明句子开始了,然后把上一个时刻的翻译做为下一个时刻的输入,当然隐藏状态也是向下传递。这样对长度是可以变化的,知道输出才结束预测,这样就不管源句子有多长,target句子有多长,不用关系如何让二者的长度一样,就按照时刻往前走,走到停为止。

encoder最后一层的最后时刻的输出,将放到和decoder的input一起输入。

训练:

decoder在训练的时候是知道真正的目标句子的,就是正常的进行RNN的训练。(这里是没有利用上一时间刻的预测结果的

推理:

因为没有正确的答案,所以只能不断利用上一时刻预测的结果作为下一个时刻的输入,不断地向前预测。

BLEU完美是1,然后越小越差。

如果label很短,但是pred很长,这样会命中很多,所以要进行惩罚\(min(0,1-\frac{len_{label}}{len_{pred}} )\)


代码




QA



  1. encoder输出和decoder输入,concat和按位相加起来有什么区别吗?

它们可能长度不一样,所以是不能相加的,这里只要保证他们的隐藏单元数量相同(列宽相同),就可以进行拼接操作。



  1. embedding层是word2vec吗?

不是的,而且现在也不打算将word2vec,因为现在也用的很少,现在基本都是用bert。

而且演示代码中也没有使用预训练的embedding,这里是是随机初始化,然后重头开始训练的。



  1. vaild_length是怎么选择的?

vaild_len不是选择,就是实际的法语句子有多长,要把vaild_len存下来,后面计算loss的时候,valid_len后面的padding的mask都是不要计算的。



  1. 现在seq2seq好像都用transformer实现了,RNN,LSTM还有什么使用场景吗?

现在是潮流,说用transformer不用RNN了,但是可能过几个月大家又说RNN好。

深度学习就是一波又一波...



  1. 实际句子的长度超过了设定的句子长度,是直接截掉不用了还是放到下一个句子?

是直接截掉不用,不能放到下一个句子。

所以要选一个差不多的长度,不要截取掉太多。



推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文整理了Java中org.apache.solr.common.SolrDocument.setField()方法的一些代码示例,展示了SolrDocum ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
author-avatar
人鱼同体
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有