keras - 以下编码器-解码器模型如何生成与输入不同大小的输出?
问题描述
我在 Keras 中实现了以下教程:
在介绍中,作者说该设置非常适合将随机变化大小的输入序列与随机变化大小的输出序列匹配。我很困惑,因为我看不到如何生成与输入句子长度不同的句子输出。
假设输入是英语句子,输出是法语句子,如教程中所示。
我目前的理解如下:
编码器输入是英文句子,作为要嵌入的整数序列。解码器输入是法语句子,作为延迟一个时间步长的整数序列,序列中的第一个整数表示空值。该层也是嵌入的。
目标是将法语句子作为一系列整数,而不是延迟。我似乎需要在末尾添加一个整数来表示字段的结尾,否则大小与解码器嵌入的输入不匹配,keras 会抛出错误。
在进行预测时,你究竟提供了什么?似乎不可能得到与输入不同长度的输出。是这样吗?
解决方案
据我了解这篇论文https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf这个想法是你的解码器预测状态(或单词)直到它看到(预测)一个特定的词(例如“EOS”,它是序列结尾的缩写)。这就是我理解输出长度不固定的原因。当然,您的训练数据必须是适当的,并使用特定的“EOS”标签进行注释。
推荐阅读
- android - 将 putExtra 放入新活动时 FirestoreRecyclerAdapter 出现问题
- python - Django网站上的重置密码链接不起作用
- ios - Xcode 跨方案共享测试计划导致每个目标构建
- c# - C# 序列化程序的正确装饰器
- node.js - 快速响应后弹性apm节点未注册跨度
- python - 将 Dtypes 从 int64 更改为 string 不起作用
- javascript - React Hooks useState 数组渲染两次
- material-ui - material-ui 使用异步自动完成
- python - Is there any way to replace/substitute an array data points in uint8 data
- javascript - 为什么我的 JSX 元素数组不会出现在我的 reactjs 渲染中?