0
テンソルフローでrnnを使用してテキストを生成しようとしています。私はdynamic_rnnにstatic_rnnから切り替えしかし、一度、私はこのエラーを得た:Tensorflow 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
の形状は、次のとおりです。(
hidden_state_placeholder
の形状は(バッチサイズ、隠し状態サイズ)は(5,100)ですが、エラーは持続します私は初期状態を提供していません。
テンソルフローバージョンは、役立つ場合は1.3です。
洞察力があれば幸いです!
私はちょうどこれを試してみてください - これは問題を解決しなかった - 私は同じエラーメッセージを持っています。 ** **私のコードで正当なバグだった**、それをキャッチするために感謝! – frankie
'inputs_series = self.input_layer()'私はこのステートメントをテストできませんでした。そのため、固定サイズの変数(その他の未知のパラメータ)で置き換えました。 'inputs_series'のサイズを出力してください(例えば' print(inputs_series.get_shape()) ')。私はいくつかの問題があるかもしれないと思う。 –
私はプリントをして、それを理解しました。テンソルを10テンソルのリストに変換した 'self.input_layer()'に 'tf.unstack()'操作を続けました。どうやら、それは動的なrnn APIでうまくいきません。一度アンスタック操作を削除すると、すべてが期待どおりに機能しました。すべての提案をありがとう! – frankie