【问题标题】:Tensorflow dynamic_rnn input rank errorTensorflow dynamic_rnn 输入排名错误
【发布时间】:2017-10-08 09:57:23
【问题描述】:

所以,我尝试在 tensorflow 中使用 rnn 来生成文本。但是,一旦我从 static_rnn 切换到 dynamic_rnn,我得到了这个错误:

File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/tensor_shape.py", line 654, in with_rank_at_least
    raise ValueError("Shape %s must have rank at least %d" % (self, rank))
ValueError: Shape (100, 5) must have rank at least 3

这是产生错误的代码部分:

inputs_series = self.input_layer()
with tf.variable_scope(constants.HIDDEN):
    self.hidden_state_placeholder = tf.placeholder(
        dtype=tf.float32, 
        shape=[self.settings.train.batch_size, self.settings.rnn.hidden_size],
        name="hidden_state_placeholder")
    cell = tf.contrib.rnn.GRUCell(self.settings.rnn.hidden_size)
    states_series, self.current_state = tf.nn.dynamic_rnn(
        cell=cell, 
        inputs=inputs_series,
        initial_state=self.hidden_state_placeholder)

inputs_series的形状为:(10, 5, 100),对应(截断的文本长度,batch size,类数)

hidden_state_placeholder 的形状是 (5, 100) for (batch size, hidden state size),但即使我不提供初始状态,错误仍然存​​在。

tensorflow 版本是 1.3,如果有帮助的话。

任何见解将不胜感激!

【问题讨论】:

    标签: tensorflow recurrent-neural-network


    【解决方案1】:

    默认情况下,time_major == Falsetf.nn.dynamic_rnn 中,但您的inputs_seriestime_major == True。所以也许将最后一条语句更改为

    states_series, self.current_state = tf.nn.dynamic_rnn(
        cell=cell, 
        inputs=inputs_series,
        initial_state=self.hidden_state_placeholder,
        time_major=True)
    

    【讨论】:

    • 抱歉回复晚了 - 我只是想试试这个,但这并没有解决问题 - 我收到了同样的错误消息。然而,这我的代码中的一个合法错误,感谢您发现它!
    • inputs_series = self.input_layer() 我无法测试此语句,因此我将其替换为固定大小的变量(以及其他未知参数)。请打印inputs_series 的大小(例如print(inputs_series.get_shape()))。我想这可能有一些问题。
    • 我打印出来了,然后弄明白了。我在self.input_layer() 中进行了tf.unstack() 操作,它将张量转换为10 个张量的列表。显然,这不适用于动态 rnn API。一旦我删除了 unstack 操作,一切都按预期工作。谢谢大家的建议!
    猜你喜欢
    • 2018-06-22
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 2017-03-09
    • 2017-09-19
    相关资源
    最近更新 更多