我正在尝试使用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递归神经网络教程,但是没有使用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_time
是n=8
和input_size
是输入深度,你的情况e=3
。因此,您将需要构造一个input
定形的张量[1, 8, 3]
。它是batch_major,因此第一个维度(批处理维度)是1
。例如,如果您同时有另一个带有n=6
单词的输入,则可以通过将第二个示例填充到8
单词上(通过在最后两个单词嵌入中填充零)来组合两者,并且inputs
大小为[2, 8, 3]
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句