【问题标题】:Implement BidirectionalGridLSTM实现双向GridLSTM
【发布时间】:2017-02-01 07:57:10
【问题描述】:

我正在使用 Tensorflow 的 seq2seq 模型[1] 实现一个聊天机器人,并为其提供来自 Ubuntu 对话语料库的数据。我想将使用标准 LSTM 单元的 RNN 与 Kalchbrenner 等人 [2] 中描述的 Grid LSTM 单元进行比较。

我正在尝试在第 4.4 [2] 节中描述的翻译模型中实现 Grid LSTM 单元,但我正在努力处理双向部分。

我尝试过使用 BidirectionalGridLSTMCell,但我不确定 num_frequency_block 是什么意思。他们在论文中没有提到这一点。有谁知道 num_frequency_block 是什么意思?在 api 文档中它说: num_frequecy_blocks:[必需] 覆盖start_freqindex_listend_freqindex_list 定义的整个输入特征拆分所需的频率块列表。

此外,我尝试创建自己的单元格。首先我对输入进行正向处理,然后我反转输入,然后进行反向处理。但是当我连接这些结果时,形状会发生变化。例如。当我尝试以 32 的批处理大小运行网络时,我收到此错误: ValueError:尺寸必须相等,但分别为 64 和 32 如何在不改变形状的情况下连接结果?这可能吗?

关于如何实现双向网格 LSTM,是否有人有任何其他提示?

[1]https://www.tensorflow.org/tutorials/seq2seq/ [2]https://arxiv.org/abs/1507.01526

【问题讨论】:

  • 你有没有计算出 num_frequency_blocks ?我遇到了同样的问题,我在网上的任何地方都找不到明确的答案。
  • 不,抱歉,我还没弄明白..

标签: grid tensorflow lstm chatbot bidirectional


【解决方案1】:

-tensorflow 内置双向 LSTM:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/bidirectional_rnn.ipynb

您缺少第二个 [2] 参考链接。

这是一个有用的基线,即使他们不提供网格? 请问你是用来做什么的?

【讨论】:

  • 我们尝试使用 static_bidirectional_rnn/dynamic_bidirectional_rnn,但我们的输入是 2D,它们需要 3D。我们不知道如何处理......我们最终修改了 MultiRnnCell 并将输入反转到第二层:reversed_inputs = array_ops.reverse(current_input, [True, False])。我正在尝试使用来自this 论文的翻译模型来实现一个聊天机器人,其中他们在双向网络中有 Grid LSTM 单元。
  • 聊天机器人是端到端的神经网络吗?还是您将其用于更具体的事情,例如意图匹配
猜你喜欢
  • 2021-11-18
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 2018-03-14
  • 1970-01-01
  • 2012-05-10
  • 2016-01-09
相关资源
最近更新 更多