TensorFlow 的 tf.nn.dynamic_rnn 运算符的输入张量是如何构造的?
How is the input tensor for TensorFlow's tf.nn.dynamic_rnn operator structured?
我正在尝试使用 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" 在这里是什么意思。
任何人都可以根据 n、t 和 [=36= 给出 input
张量的形状]e,and/or 用我描述的小型语料库中的数据初始化张量的例子?
TensorFlow 0.9.0,Python 3.5.1,OS X 10.11.5
在您的例子中,它看起来像 batch_size = 1
,因为您正在查看一个示例。所以 max_time
是 n=8
而 input_size
是输入深度,在你的例子中是 e=3
。所以你会想构造一个 input
张量,它的形状是 [1, 8, 3]
。它是 batch_major,所以第一个维度(批次维度)是 1
。比方说,如果你同时有另一个输入,有 n=6
个词,那么你可以通过将第二个示例填充到 8
个词来组合这两个输入(通过为最后 2 个词嵌入填充零)并且您的 inputs
大小为 [2, 8, 3]
。
我正在尝试使用 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" 在这里是什么意思。
任何人都可以根据 n、t 和 [=36= 给出 input
张量的形状]e,and/or 用我描述的小型语料库中的数据初始化张量的例子?
TensorFlow 0.9.0,Python 3.5.1,OS X 10.11.5
在您的例子中,它看起来像 batch_size = 1
,因为您正在查看一个示例。所以 max_time
是 n=8
而 input_size
是输入深度,在你的例子中是 e=3
。所以你会想构造一个 input
张量,它的形状是 [1, 8, 3]
。它是 batch_major,所以第一个维度(批次维度)是 1
。比方说,如果你同时有另一个输入,有 n=6
个词,那么你可以通过将第二个示例填充到 8
个词来组合这两个输入(通过为最后 2 个词嵌入填充零)并且您的 inputs
大小为 [2, 8, 3]
。