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

python - 子函数变量未保存在张量流中

我有一个解码器函数,其中包含一个子函数,该函数在输入 2D 张量和 2xn 形变量上运行迭代求和。此求和函数在训练期间正常工作,但是函数中使用的变量 - 2xn 形变量和可能的偏差项 - 没有保存在任何模型检查点中。因此,当我加载一个模型进行解码时,函数失败,因为变量不在检查点中。我尝试将函数移出并将其用作普通函数,但仍然没有看到检查点中的变量。

我怀疑这可能是 saver.save() 中的默认保存范围有问题

0 投票
1 回答
618 浏览

python - 在 seq2seq 模型中添加更多层

在 fchollet 给出的示例seq2seq代码中,如何向编码器和解码器添加更多的 LSTM 层?我在形状上遇到了一些麻烦,总的来说有点困惑。谢谢。

0 投票
1 回答
799 浏览

tensorflow - 在张量流图中使用 if else 条件是否有效?

我最近一直在研究 tensorflow。我正在编码 seq2seq 模型。我正在编写一个条件来选择 API 提供的帮助程序。

当我使用以下代码时,我面临错误。

我得到错误助手必须是可调用的,所以我将代码更改为

现在它正在抛出错误,

所以,最后我选择了旧的 if-else 并且它应该像它一样工作。我只需要使用以下代码是否有效。

可能的错误是由于硬编码,我无法在运行时更改为其他助手。有人可以建议一种替代方法吗?

0 投票
1 回答
842 浏览

nlp - Seq2seq LSTM 无法生成合理的摘要

我正在 keras 中训练编码器-解码器 LSTM 用于文本摘要和具有以下架构的 CNN 数据集

双向编码器-解码器LSTM的图片

  1. 我正在使用 skip-gram 预训练词嵌入(大小为 256)和

  2. 然后我用零填充输入序列,这样所有文章的长度都相等

  3. 我在每个摘要中放了一个 1 的向量作为“开始”标记

  4. 稍后在解码器输出中使用 MSE、RMSProp、tanh 激活

  5. 训练:20 epochs,batch_size=100,clip_norm=1,dropout=0.3,hidden_​​units=256,LR=0.001,训练样例=10000,validation_split=0.2

  6. 网络训练、训练和验证 MSE 下降到 0.005,但是在推理过程中,解码器不断重复产生一些没有意义的单词,并且与真正的摘要相去甚远。

我的问题是,我的训练方法、填充、损失函数、数据大小、训练时间是否存在根本性错误,导致网络无法泛化?

0 投票
1 回答
113 浏览

python - 如何使用张量流函数 tf.contrib.legacy_seq2seq.sequence_loss_by_example 的“权重”参数?

编码:

结果是:

我不明白为什么无论参数average_across_timesteps设置为“真”还是“假”,结果都是一样的。

0 投票
1 回答
625 浏览

tensorflow - multiRNNCell 中哪种正则化使用 L2 正则化或 dropout?

我一直在从事与用于时间序列预测的序列到序列自动编码器相关的项目。所以,我tf.contrib.rnn.MultiRNNCell在编码器和解码器中使用过。我很困惑使用哪种策略来规范我的 seq2seq 模型。我应该在损失中使用 L2 正则化还是tf.contrib.rnn.DropoutWrapper在 multiRNNCell 中使用 DropOutWrapper ()?或者我可以同时使用这两种策略...... L2 用于权重和偏差(投影层)以及 multiRNNCell 中的单元格之间的 DropOutWrapper 吗?提前致谢 :)

0 投票
1 回答
304 浏览

python - Tensoflow seq2seq 解码器不起作用

我正在尝试遵循https://www.tensorflow.org/tutorials/seq2seq中的 seq2seq 示例,但不同之处在于我的输入和输出是真实的连续值,而不是示例中的单词。
我有两个张量 X 和 Y,它们是输入和输出占位符的基本示例。这是我现在拥有的代码:

但我在最后一行收到以下错误:

如您所见,存在尺寸问题,我无法弄清楚。我究竟做错了什么?

另外,我不能真正理解帮助类的目的(这可能是我在这里犯的错误)。任何解释表示赞赏。

0 投票
0 回答
565 浏览

nlp - Pytorch seq2seq 学习——使用word2vec

我在这里关注 seq2seq 教程。

我想使用预训练的向量。我已经编辑了代码以获取单词的向量而不是索引。以下是代码:

现在,我不知道应该如何更改我的编码器以合并向量而不是索引。这是我现在的编码器:

我得到这个错误

我也尝试使用 VEC_SIZE 而不是 input_size,但无济于事。

以下是跟踪:

如何编写编码器和解码器来占用 word2vec 嵌入?涉及到几件事,比如我的编码器输出gru是否必须是一个大小的向量VEC_SIZE,在解码器中 - 我的损失必须使用一些相似性度量来计算。我想我会选择余弦相似度,但在此之前我必须确保解码器获取编码器的输出并生成一个大小为 的向量VEC_SIZE

如果有人已经在教程中完成了这项作业并且有现成的代码,我将不胜感激?

0 投票
0 回答
67 浏览

python - 在神经网络训练之前,我是否应该有两组词向量(word2vec),一组用于 questionSet,一组用于 answerSet?

在为有关汽车的封闭领域主题构建机器学习聊天机器人时,我感到困惑。

我有很多关于不同车型的文本格式信息,并使用这些数据进行 Word2Vec 处理并保存了 Word2Vec.model。

然后通过在 word2vec.model 中查找将问题集和答案集转换为向量。最后,将它们放到 seq2seq 模型中进行网络训练。

————

我的问题:

  1. 我应该构建两个 word2vec.model 而不是一个吗?例如 word2vec_question.model 和 word2vec_answer.model?并输入问题集并根据 word2vec_question.model 转换为向量,而答案集根据 word2vec_answer.model ?

  2. 为什么有些聊天机器人示例不使用词嵌入,而只是将这些问题集和答案集标记化并直接进行 seq2seq 训练?这是因为对话集足够大,可以在没有矢量化的情况下训练 S2S 网络吗?我们是否应该说如果数据足够大,只需标记化就足够了,不需要进行 word2vec 建模?

  3. 回到我的汽车专家系统,请给我一些建议,什么是准备数据并提供给问答示例的正确方法。我的最终愿望是,每周,我向 word2vec 模型提供来自汽车杂志的信息(不是对话形式,而只是关于新车的段落),然后聊天机器人也可以回答有关该新模型的问题。

提前致谢。

0 投票
0 回答
95 浏览

python - 使用 tensorflow seq2seq API 对单个序列进行预测

我已经使用 tensorflow 训练了一个序列到序列模型。但是,我无法使用 The Greedy Embedding Helper 对单个序列进行预测。

这是图表的一部分供参考:

使用任何批量大小的训练都可以正常工作。在推理过程中出现问题,我保存了我的模型并尝试对出现以下错误的序列进行预测。

如果我使用任何其他批量大小,它工作得很好,但显然在进行推理时,我希望能够对单个序列进行预测,而不是一次喂一个批次。有人可以告诉我这是 tensorflow 实现中的错误还是我做错了什么?如果有人可以建议一种方法使这项工作适用于单个序列,那也会很有帮助。