问题标签 [seq2seq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
51 浏览

machine-learning - 如何使用 seq2seq 解码连接的字符串

我正在尝试解码连接的字符串,如下所示...

我正在寻找一种更智能的方法而不是硬编码规则,因为输入会有变化(字符和数字的数量),我遇到了SEQ2SEQ模型,我想知道是否可以在这样的问题中使用它我已经遵循了一些教程试一试,但结果甚至还不够接近,根据本教程,似乎有两种方法字符级别和单词级别

人物等级:

我仍在尝试实现单词级别,但我想知道是否可以使用这种方法解决问题(seq2seq)

0 投票
2 回答
199 浏览

tensorflow - 在 seq2seq 模型实施中需要建议

我正在使用 tensorflow 实现 seq2seq 模型以进行文本汇总。对于编码器,我使用的是双向 RNN 层。编码层:

对于解码器,我使用注意机制。解码层:

现在,BasicDecoder 函数的初始状态需要 shape = (batch_size, rnn_size) 的状态。我的编码器输出 shape= (batch_size, rnn_size) 的两种状态(向前和向后)。

为了使它工作,我只使用一种编码器状态(前向状态)。所以,我想知道同时使用编码层的后向编码和前向编码的可能方法。我应该同时添加前向和后向状态吗?

PS - 解码器不使用双向层。

0 投票
1 回答
1442 浏览

keras - Bleu Score in Model Evaluation Metric

In many seq2seq implementations, I saw that they use accuracy metric in compiling the model and Bleu score only in predictions.

Why they don't use Bleu score in training to be more efficient? if I understand correctly!

0 投票
0 回答
305 浏览

tensorflow - 如何将多层双向 LSTM 编码器连接到解码器?

我正在制作一个 seq2seq 模型,它使用 Bi-LSTM 作为编码器和解码器中的注意力机制。对于单层 LSTM 模型工作正常。我的编码器看起来像这样。

编码器:

解码器:

通过上述单层 Bi-LSTM 的配置,我的模型运行良好。但是,现在我想使用多层 Bi-LSTM 编码器和解码器。因此,在编码器和解码器中,如果我将单元格更改为:

更改单元格后,我收到此错误:

AttributeError:“元组”对象没有属性“c”

这里, num_layers = 2

rnn_size = 128

嵌入大小= 50

state所以,我想知道在第二种情况下究竟返回了什么。以及如何将该状态传递给解码器。

完整代码:https ://github.com/sainimohit23/Text-Summarization

0 投票
1 回答
534 浏览

python - Keras 中的 Seq2Seq 用于预测向量序列的下一个元素

打扰一下。我是神经网络的初学者。我必须在 Keras 中使用 seq2seq 模型来预测向量序列x[0], x[1], ..., x[N-1]的下一个元素x[N ] 。

这个向量序列是可变长度的,即N不是固定数。序列的元素(向量)具有固定长度m。也就是说,我的数据x[0], x[1], ..., x[N-1]具有以下形式

[x[0,0], x[0,1], ..., x[0,m-1]], [x[1,0], x[1,1], ..., x[ 1,m-1]], ..., [x[N-1,0], x[N-1,1], ..., x[N-1,m-1]]

我必须预测下一个向量x[N]=[x[N,0], x[N,1], ..., x[N,m-1]]

我是否正确理解我需要的模型是在 Keras 中用这样的代码段描述的?

非常感谢您!

0 投票
1 回答
130 浏览

python - 如何为语言翻译重新训练序列到序列神经网络模型?

我已经训练了一个 seq2seq tensorflow 模型,用于将句子从英语翻译成西班牙语。我为 615 700 步训练了一个模型,并成功保存了模型检查点。我的英语和西班牙语句子的训练数据量是 200 000。我想重新训练这个模型,从 615 700 步中得到 10K 新数据句子。为此,我正在使用序列到序列 tensoflow 模型。如何从最后一个检查点开始重新训练模型?是我用于翻译的链接。

我的火车文件夹中有 3 种类型的文件:

我的新训练数据集文件分别是europarl_train.es-en.eneuroparl_train.es-en.es用于英语和西班牙语句子。

我编写了一个代码来加载我的模型 .meta 文件和权重

我怎样才能开始保留这个数据集?

0 投票
2 回答
358 浏览

image-processing - 自然语言生成模型中如何控制作者的观点?

我是自然语言生成的新手,目前正处于实验阶段。激励用例是为图像生成单句标题,但我的问题/问题并不是我当前的 NLG 用例所独有的。

我尝试的第一个模型使用了 CNN 和 RNN 的组合。除了生成的图像标题句子有时以第一人称,有时以第二人称,有时以第三人称之外,一切都或多或少地按预期工作。

对于我的图像字幕用例,我希望我的所有照片字幕都以第二人称的声音书写。我用我能想到的每个关键字组合搜索了 google、google 学者、stack exchange、GitHub 等,但我没有想出关于这个主题的任何内容。

他们是否有任何 NLG 技术可以让我在生成的输出中控制作者的观点?

如果没有,我能想到的唯一途径是建立一个训练语料库,其中只包含以第二人称视角写的句子;但似乎很难建立一个足够大的语料库。

0 投票
0 回答
101 浏览

python - 错误模型/att_seq2seq/Minimum:0 既被馈送又被获取

我已经使用以下代码成功导出了SavedModel格式的seq2seq模型

saved_model_cli 显示导出文件中存在以下 SignatureDef

我用 Tensorflow Serving 连接了模型并发送了以下请求,

但是,它返回结果为,

{ "error": "model/att_seq2seq/Minimum:0 既被输入又被提取。" }

在提到错误后,我可以看到问题可能会出现,因为相同的张量正在被馈送和获取

分析 SignatureDef 显示,model/att_seq2seq/Minimum:0属于inputs['source_len']outputs['features.source_len']

我该如何解决这个问题?有可能不获取outputs['features.source_len']吗?

如何手动将SignatureDefs分配给此 repo 中使用的 Experiment API?

0 投票
1 回答
299 浏览

python-3.x - Keras RNN 编码器-解码器架构输出的维度

我一直无法弄清楚 RNN 编码器-解码器架构的尺寸。我了解 LSTM 的工作原理,但我正在努力在 Keras 中实现这个。在查看文档并阅读问答后,看起来网络输出的维度必须与整个目标集的维度相匹配(而不是特定目标——这没有意义)。我确定我读错了,它需要仅适合给定 xi 的目标尺寸(暂时搁置批次问题)。经过几个小时的摆弄,我更加困惑。我认为我将输入嵌入到 RNN 而不是嵌入输出这一事实可能与此有关,并且我可能需要在此过程中将网络展平。

这是设置:

  • 数据集是大量的问答对。我正在使用 1440 对样本来构建基础设施。
    • xi:“美国的首都是哪里?”
    • 易:“我认为首都是华盛顿”
  • 在 NLP 之后,有两个 numpy 数组——一个用于 X,一个用于 Y。每一行对应于原始数据集中的一行,例如:
    • 已处理 xi: [253, 8, 25, 208, 28, 1]
    • 处理后的 yi: [827, 10, 25, 208, 8, 198]
  • 输入序列有一个嵌入层(使用手套算法),但我认为输出序列没有必要。

这是代码:

这是网络摘要:

这是错误:

其他详情:

  • maxlen:输入和输出序列的最大长度为 95
  • embed_size:词嵌入的维数为100
  • 词汇大小:词汇的大小是4046
0 投票
1 回答
354 浏览

tensorflow - 在哪里放置seq2seq 翻译中的标签?

我浏览了许多教程,其中我的问题的答案不同。

所以,对于 seq2seq 模型(英语到法语翻译),我有encoder_input_data没有<start><stop>标签的英语短语。我对decoder_input_dataand感到困惑decoder_target_data

目前,我的数据以一种没有任何结果的方式组织。

  • decoder_input_data:包含同时具有<start><stop>标记的法语短语。
  • decoder_target_data:包含只有<stop>标签的法语短语。

谷歌的教训说英语和法语短语都必须在开头和结尾都有标签。另外,我没有得到任何结果。

我应该在解码器的输入中添加<start><stop>标记吗?或者,我应该只<start>在解码器的输入中包含,而在<stop>解码器的目标中只包含标签吗?为 NMT 放置这些标签的正确方法是什么?