问题标签 [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 回答
278 浏览

python - tf.gather 在使用自定义 softmax_loss 函数时超出范围,即使它不应该

我在内部使用一个小的自定义函数tf.contrib.seq2seq.sequence_loss(softmax_loss_function=[...])作为自定义 sofmax_loss_function:

但即使标签和 logits 应该具有相同的维度,执行后它会返回 and InvalidArgumentError

indices[1500,1] = 2158 is not in [0, 1600)由于我的随机种子,数字会有所不同。

tf.gather有没有我可以使用的其他功能?或者返回的值是假的?

如果我通过通常的 Tensorflow 函数,一切正常。

提前致谢!

0 投票
0 回答
334 浏览

java - Seq2Seq 模型 (DL4J) 做出荒谬的预测

我正在尝试在 DL4J 中实现 Seq2Seq 预测器模型。我最终想要的是使用数据点的时间序列来使用这种类型的模型INPUT_SIZE来预测以下数据点的时间序列。OUTPUT_SIZE每个数据点都有numFeatures特征。现在,DL4J 有一些示例代码来解释如何实现一个非常基本的 Seq2Seq 模型。我在将他们的例子扩展到我自己的需要方面取得了一些进展;下面的模型可以编译,但它所做的预测是荒谬的。

我构建输入/标记数据的方式是将输入数据拆分为第一个INPUT_SIZE - 1时间序列观察(对应in_data于 ComputationGraph 中的输入)和最后一个时间序列观察(对应于lastIn输入)。标签是未来的一个时间步长;为了做出预测,我只需调用net.output() OUTPUT_SIZE时间来获得我想要的所有预测。为了更好地看到这一点,这就是我初始化输入/标签的方式:

我相信我的错误来自我的计算图架构中的错误,而不是我如何准备数据/进行预测/其他东西,因为我已经完成了其他具有更简单架构的小型项目并且没有任何问题。

我的数据被归一化为均值 0 和标准值。偏差为 1。因此,大多数条目应该在 0 左右,但是,我得到的大多数预测都是绝对值远大于零的值(大约 10s-100s)。这显然是不正确的。我已经为此工作了一段时间,但一直无法找到问题;任何有关如何解决此问题的建议将不胜感激。

我使用的其他资源:示例 Seq2Seq 模型可以在这里找到,从第 88 行开始。计算图文档可以在这里找到;我已经广泛阅读了这篇文章,看看我是否能找到一个无济于事的错误。

0 投票
1 回答
530 浏览

python - keras lstm-seq2seq-聊天机器人。训练不起作用并预测出一些错误。无论我输入什么,我都会得到相同的答复

我已经构建了一个基于聊天机器人的 seq2seq。我使用的 coupus 是来自https://github.com/Conchylicultor/DeepQA/tree/master/data/cornell的电影对话 我用来训练我的模型的大约 20000 个语料库。在 300 个 epoch 之后,损失约为 0.02。但最后当我输入一个随机问题时,比如“你要去哪里?” 或“你叫什么名字”或其他什么,我得到了相同的答案“它”。如您所见,无论我输入什么,我总是得到一个单词“It”。我发现当我使用 np.argmax 计算预测的概率分布时,每次我得到相同的索引“4”,这意味着接下来的单词' 指数。

我还发现来自 encoder_model 预测的 state_h 和 state_c 有一些非正规数据。例如。来自状态 c 的最大概率 > 16。

我的输入:你叫什么名字?['什么','是','你的','名字','?'] [[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 85 20 206 22]]

我得到了什么:它

0 投票
0 回答
151 浏览

recurrent-neural-network - 在 Seq2Seq 任务中,双向 RNN(LSTM, GRU) 可以作为解码器吗?

在 Seq2seq 的解码器部分,它就像一个语言建模,被赋予一个输入词和隐藏状态,以预测下一个词。在这种机制中如何使用双向信息?另外,我们是否还必须在双向 RNN 解码器中逐个生成句子单词?谢谢你。

0 投票
1 回答
268 浏览

python-3.x - TensorFlow seq2seq 回归模型

我有用于预测股票价格的简单 seq2seq 模型。我创建了一个 lstm 单元的编码器和解码器,它将预测接下来的 5 个时间步值。但它会引发错误:

数据样本

代码

欢迎任何帮助。

0 投票
1 回答
145 浏览

machine-learning - 如何使用我自己的输入来使用 Pytorch 的“带有 seq2seq 的转换”?

我在这里按照指南

目前这是模型:

我正在尝试做的事情与指南之间的区别在于我正在尝试将我的输入语言作为字符串列表插入,而不是从文件中读取它们:

但是当我尝试计算字符串中的单词数时,我似乎input_lang.n_words总是得到 2。

我在上课时有什么遗漏Lang吗?

更新:
我跑了

这给了我虽然字数,pairs
但并没有给我input_langoutput_lang就像指南一样:

0 投票
1 回答
1827 浏览

python - 如何将检查点转换为 .pb 模型以进行模型部署?

我已经在 tensorflow 上训练了一个 seq2seq 语言翻译模型,并以检查点的形式保存在我的 train 文件夹中的以下文件。

  • translate.ckpt-157450.data-00000-of-00001
  • translate.ckpt-157450.index
  • translate.ckpt-157450.meta 和
  • 检查点文件

现在,我想将其转换为 protobuf 文件 (.pb) 以进行部署。这是我正在使用的一些代码:

我在我的火车文件夹中运行此代码。它向我显示了一个错误: ValueError: Can't load save_path when it is None.

我也尝试了 freeze_graph.py 脚本,但无法获取模型。

0 投票
1 回答
205 浏览

tensorflow - 提供 Tensorflow Seq2Seq 输出作为下一步的输入(推理)

我想创建一个 Seq2Seq 模型来预测时间序列数据。我正在使用 InferenceHelper,但我正在为sample_fn参数苦苦挣扎。我想通过密集层传递每个单元的解码器输出,以便在每个时间步生成单个输出。所以我提供了一个对sample_fn参数执行此操作的函数。

稍后我想将 rnn 单元输出与其他非时间序列特征连接起来,并在其上构建更密集的层。

网络在训练时表现良好,但在推理期间表现不佳。我认为这是因为我在训练和推理时间之间没有共享相同的密集层。

我尝试设置重用参数并使用with tf.variable_scope()环境。但是,sample_fn已经在特定范围内调用了dynamic_decode,因此我无法使用与培训期间相同的范围。

我的代码的相关部分如下所示:

占位符:

编码器:

解码器(训练)

解码器(推理)。不正确的部分:

有一个类似的问题:How to use tensorflow seq2seq without embeddings?

作者使用sample_fn=lambda outputs: outputs. 但是在我的情况下这会返回一个 ValueError ,因为尺寸不匹配。他们怎么可能拥有多个细胞?sample_fn应该返回一个值。

0 投票
1 回答
506 浏览

machine-translation - 如何使用 BLEU 分数将您的模型与现有模型进行比较?

所以我使用 BLEU 分数指标来比较我的 NMT 模型与现有模型的性能。但是,我想知道我必须与其他模型匹配多少设置。

我认为开发集、测试集和超参数等设置是可行的。但是,我使用的预处理步骤与现有模型不同,所以我想知道我的模型的 BLEU 分数是否可以与其他模型进行比较。现有模型也有可能具有未报告的隐藏参数。

https://arxiv.org/pdf/1804.08771.pdf解决了报告 BLEU 和调用切换到 SacreBLEU 的问题。但是许多现有模型都使用 BLEU,所以我认为我不能在我的模型上使用 SacreBLEU 得分指标。

0 投票
1 回答
39 浏览

machine-translation - 可以在使用稍微修改的标准测试集的同时比较 NMT 模型之间的 Test BLEU 分数吗?

我正在使用此处找到的 tst2013.en作为我的测试集来获取测试BLEU分数以与其他以前的模型进行比较。但是,我必须过滤掉一些超过 100 个单词的句子,否则我将没有资源来运行模型。

但是对于稍微修改的测试集,将测试BLEU分数与使用未修改测试集的其他模型进行比较是否可以接受?