我无法理解tensorflow的输入参数dynamic_rnn.如果我能理解如何将static_rnn输入转换为输入,那将会有很大帮助dynamic_rnn.
对于a static_rnn,输入应该是T张量的长度列表,其形状是[batch_size, input_size],T序列长度在哪里.这对我来说很有意义.
对于a dynamic_rnn,输入应该是Tensor of shape [batch_size, max_time, ...].我不明白如何融入input_size这里.更一般地说,我不知道你还可以在省略号中添加什么.
例如,假设我的数据由50个字符长的句子组成,那么input_size字母表中的字母数就是这样.对于a static_rnn,我将制作长度为50的形状为张量的张量[batch_size, input_size].如何将此张量列表转换为单个张量,以便我可以将它转换为dynamic_rnn?
你的dynamic_rnn输入应该是好的[batch_size, sequence_length, input_size].
基本上张量表示batch_size长度的示例,sequence_length省略号中剩下的是单个序列元素的形状.
问题是,dynamic_rnn事先你不需要知道sequence_length,所以你的输入占位符可能看起来像
x = tf.placeholder(tf.int32, shape=(batch_size, None, input_size))
Run Code Online (Sandbox Code Playgroud)
这非常方便.此外,单个批处理中的示例可以具有不同的长度(但必须填充到相同的长度),但您必须传递sequence_length参数,dynamic_rnn以便知道何时停止每个示例的计算.
| 归档时间: |
|
| 查看次数: |
1785 次 |
| 最近记录: |