tensorflow - TensorFlow 的 tf.nn.dynamic_rnn 运算符的输入张量是如何构造的?

标签 tensorflow recurrent-neural-network

我正在尝试使用 tf.nn.dynamic_rnn 在 TensorFlow 0.9.0 中使用词嵌入和递归神经网络编写语言模型。图操作,但我不明白input是怎么回事张量是结构化的。

假设我有一个包含 n 个单词的语料库。我将每个单词嵌入到一个长度为 e 的向量中,并且我希望我的 RNN 展开到 t 时间步长。假设我使用默认值 time_major = False参数,我的 input 会是什么形状张量 [batch_size, max_time, input_size]有?

也许一个具体的小例子会使这个问题更清楚。假设我有一个由 n=8 个单词组成的语料库,看起来像这样。

1, 2, 3, 3, 2, 1, 1, 2

假设我将它嵌入到大小为 e=3 的向量中,嵌入量为 1 -> [10, 10, 10], 2 -> [20, 20, 20] 和 3 -> [30, 30, 30],什么我的 input张量长什么样?

我已阅读 TensorFlow Recurrent Neural Network tutorial ,但这不使用 tf.nn.dynamic_rnn .我还阅读了 tf.nn.dynamic_rnn 的文档,但觉得很困惑。特别是我不确定这里的“max_time”和“input_size”是什么意思。

谁能给出input的形状用 n、t 和 e 表示的张量,和/或用我描述的小型语料库中的数据初始化该张量的示例?

TensorFlow 0.9.0、Python 3.5.1、OS X 10.11.5

最佳答案

在你的情况下,它看起来像 batch_size = 1 ,因为您正在查看一个示例。所以max_timen=8input_size是输入深度,在你的情况下 e=3 .所以你想构造一个 input张量形状 [1, 8, 3] .它是batch_major,所以第一个维度(批量维度)是1 .例如,如果您同时有另一个输入,则使用 n=6词,然后您可以通过将第二个示例填充到 8 来组合两者词(通过为最后 2 个词嵌入填充零),您将获得 inputs [2, 8, 3]的尺寸.

关于tensorflow - TensorFlow 的 tf.nn.dynamic_rnn 运算符的输入张量是如何构造的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38111170/

相关文章:

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

machine-learning - Tensorflow RNN 示例仅限于固定批量大小?

Tensorflow lstm 用于情感分析而不是学习。更新

python - char-rnn(多层循环神经网络)实现出现 IndexError

python - 使用 tf.gather 基于另一个张量逐行提取张量(第一维)

python - 更新升级后,现在得到tensorflow ImportError : libcublas. so.8.0 cannot

python - tensorflow Keras : Can `Conv2d` layers now accept multispectral images meaning bands greater than 3

python - 用于文本分类的 Tensorflow 模型未按预期进行预测?

neural-network - 我如何实际执行保存的 TensorFlow 模型?

python - 关于如何在 Tensorflow 中使用 tf.contrib.rnn.NASCell 的示例代码