python-3.x - tensorflow 中批处理中每个项目的 LSTM 初始状态

标签 python-3.x machine-learning tensorflow lstm recurrent-neural-network

我正在使用tf.nn.dynamic_rnn在 tensorflow 中运行 LSTM。我有一个由 N 个初始状态向量组成的张量和一个由 M = N * n 个输入组成的张量。每个系列由n个输入项组成,我想用第i个初始状态向量来评估第i组输入向量,如下所示:

inputs[0:n], initial_states[0]
inputs[n:2*n], initial_states[1]
...

有没有办法直接通过一次调用tf.nn.dynamic_rnn和上述张量来做到这一点,或者我是否必须对每个初始状态向量及其相应的输入诉诸循环(导致 len(initial_states) 调用 tf.nn.dynamic_rnn)?

最佳答案

(从问题评论中添加一些细节)

这种批处理得到了很好的支持,并且通常是获得良好性能所必需的。您的initial_state批处理维度将超过 N,并且 RNN 将在这些批处理上运行 n 个步骤。您只需将输入 reshape 为 [N, n, ...](使用默认值 time_major=False)。

当您有需要批量处理的可变长度输入时,事情会变得更加棘手。类似于 SequenceQueueingStateSaver可以提供帮助。

关于python-3.x - tensorflow 中批处理中每个项目的 LSTM 初始状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46024957/

相关文章:

c - 如何将 Python 字符串列表转换为 C 语言 wchar_t 数组?

python - 如何在 Tensorflow 运行时查看或保存一个张量?

python - sklearn : Naive Bayes classifier gives low accuracy

python - 无效参数错误 : required broadcastable shapes at loc(unknown)

python - 用于高流量应用程序实时预测的生产环境中的 TensorFlow - 如何使用?

python-3.x - 将 HSV 掩模分割为多个矩形

python - 如何获得轮廓内最大的矩形?

python - 使用 urllib 请求更改或创建超时

python - 如何在日期序列上训练 LSTM?

javascript - 将 jest 与 tensorflow.js 一起使用会产生错误