问题标签 [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 投票
1 回答
1990 浏览

keras - Keras seq2seq 填充

我正在开发 seq2seq 聊天机器人。我会问你,如何在 val_acc 计数时忽略聊天机器人响应中的 PAD 符号。

例如,我的模型生成响应:[I, am, reading, a, book, PAD, PAD, PAD, PAD, PAD]

但是,正确的反应应该是:[My, brother, is, playing, fotball,PAD, PAD, PAD, PAD, PAD].

在这种情况下,聊天机器人的反应完全错误,但由于填充符号,val_acc 为 50%。

我使用 Keras,编码器-解码器模型(https://blog.keras.io/a-ten-minute-introduction-to-sequence-to-sequence-learning-in-keras.html)和教师强制

我的代码在这里:

编码器输入是句子,其中每个单词都是整数,0 是填充:[1,2,5,4,3,0,0,0] -> 用户问题解码器输入也是句子,其中每个单词都是整数,0 是填充和100 是符号 GO:[100,8,4,2,0,0,0,0,0]] -> 聊天机器人响应移位了一个时间戳解码器输出是句子,其中单词是整数,这些整数是一个热编码的: [8,4,2,0,0,0,0,0, 0]] -> 聊天机器人响应(整数是一种热编码。)

问题是,val_acc 太高了,模型预测的句子也完全错误。我认为这是由于填充引起的。我的模型有问题吗?我应该在我的解码器中添加一些其他掩码吗?

这是我的图表: 在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
129 浏览

python - NMT,张量流,NotFoundError 错误

我正在使用 tensorflow 来实现 nmt

https://www.tensorflow.org/versions/master/tutorials/seq2seq#sequence-to-sequence-models

我将为韩语和英语创建 NMT。我创建的数据类似于 Tensorflow 提供的数据。分别对应于训练、开发和测试数据。

但是,以下错误继续出现。我不知道怎么了。

目录

命令如下。

我的问题是,我不确定 None.ko 是否存在并且 NotFoundError 是否显示。

0 投票
0 回答
1207 浏览

python - tensorflow 1.8 版中 tf.contrib.seq2seq.prepare_attention() 的替代方案

AttributeError:模块“tensorflow.contrib.seq2seq”没有属性“prepare_attention”

我知道 prepare_attention() 已被弃用。有什么替代方案?并且还请指定语法。

我正在使用的函数是:defdecode_layer_train(encoder_state,dec_cell,dec_embed_input,sequence_length,decode_scope,output_fn,keep_prob,batch_size):'''解码训练数据'''

0 投票
0 回答
218 浏览

nlp - 如何获取 word2vec.bin 文件

我想使用 python 和深度学习方法构建一个聊天机器人。我指的是下面的链接 聊天机器人代码 但是我在 word2vec.bin 文件中遇到了问题,正如代码中描述的那样。我应该在哪里获得 bin 文件?

0 投票
1 回答
1183 浏览

tensorflow - 了解 tf.contrib.seq2seq.dynamic_docode 的 final_outputs

当我在这里阅读 seq2seq 教程时,我无法理解函数的输出tf.contrib.seq2seq.dynamic_docode

本教程使用sample_id = outputs.sample_idlogits = self.output_layer(outputs.rnn_output)在推理中访问解码器在训​​练中使用的输出,logits = outputs.rnn_output以及sample_id = outputs.sample_idlogits和在这里代表什么sample_idfinal_outputsof 函数的内容是什么tf.contrib.seq2seq.dynamic_docode

0 投票
1 回答
599 浏览

tensorflow - `tf.contrib.seq2seq.BeamSearchDecoder` 的输出中的 predict_ids 的形状

中内容的形状是outputs什么tf.contrib.seq2seq.BeamSearchDecoder。我知道它是 的一个实例,但是和class BeamSearchDecoderOutput(scores, predicted_ids, parent_ids)的形状是什么?scorespredicted_idsparent_ids

0 投票
2 回答
627 浏览

python - 在 google colaboratory 上安装 seq2seq

我已经seq2seq在 google colab 上安装了,但是当我想导入它时,我得到了错误:

当我运行时:

如何在这种环境下正确导入 seq2seq?

0 投票
1 回答
6148 浏览

pytorch - 在 PyTorch 中实现 Luong Attention

我正在尝试实现Luong 等人中描述的注意力。2015年我自己在 PyTorch 中,但我无法让它工作。下面是我的代码,我现在只对“一般”注意案例感兴趣。我想知道我是否遗漏了任何明显的错误。它运行,但似乎没有学习。

我研究了在

https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html

https://github.com/spro/practical-pytorch/blob/master/seq2seq-translation/seq2seq-translation.ipynb

  • 第一个不是我正在寻找的确切注意力机制。一个主要的缺点是它的注意力取决于序列长度(self.attn = nn.Linear(self.hidden_size * 2, self.max_length)),这对于长序列来说可能是昂贵的。
  • 第二个与论文中描述的更相似,但与没有tanh. 此外,将其更新到最新版本的 pytorch ( ref )后确实很慢。另外我不知道为什么它需要最后一个上下文(ref)。
0 投票
1 回答
1355 浏览

python - Tensorflow seq2seq 聊天机器人总是给出相同的输出

我正在尝试使用 Tensorflow 制作一个 seq2seq 聊天机器人,但尽管输入不同,但它似乎收敛到相同的输出。该模型在第一次初始化时给出不同的输出,但在几个 epoch 后很快收敛到相同的输出。即使经过了很多时代和低成本,这仍然是一个问题。然而,这些模型在使用较小的数据集(比如 20 个)进行训练时似乎表现良好,但在使用较大的数据集时却失败了。

我正在使用 100 维和 50000 个词汇的手套预训练嵌入来训练康奈尔电影对话语料库。

当给定完全不同的输入时,编码器似乎具有非常接近的最终状态(在 0.01 左右的范围内)。我尝试过使用简单的 LSTM/GRU、双向 LSTM/GRU、多层/堆叠 LSTM/GRU 和多层双向 LSTM/GRU。rnn 节点已经用 16 到 2048 个隐藏单元进行了测试。唯一的区别是,当隐藏单元较少时,模型倾向于只输出开始和结束标记(GO 和 EOS)。

对于多层 GRU,这是我的代码:

完整代码请参见github。(如果你想测试它,运行 train.py)

至于超参数,我尝试了从 0.1 一直到 0.0001 的学习率和从 1 到 32 的批量大小。除了常规和预期效果之外,它们对解决问题没有帮助。

0 投票
1 回答
180 浏览

machine-learning - 编码器为每个输入 Keras seq2seq 返回相同的状态

我在 Keras 中使用编码器解码器 seq2seq 架构,我正在传递一个单热的形状数组(num_samples、max_sentence_length、max_words)进行训练,并使用教师强制。

对于推理模型:

我尝试打印出 encoder_model 状态,但它总是为任何输入返回相同的状态。任何帮助,将不胜感激!