with tf.variable_scope('forward'):
cell_img_fwd = tf.nn.rnn_cell.GRUCell(hidden_state_size, hidden_state_size)
img_init_state_fwd = rnn_img_mapped[:, 0, :]
img_init_state_fwd = tf.multiply(
img_init_state_fwd,
tf.zeros([batch_size, hidden_state_size]))
rnn_outputs2, final_state2 = tf.nn.dynamic_rnn(
cell_img_fwd,
rnn_img_mapped,
initial_state=img_init_state_fwd,
dtype=tf.float32)
これは、ディメンション100x196x50の入力用のGRUの私のコードです。2番目のディメンション(つまり196)に沿って展開する必要があります。 hidden_state_size
は50、batch_size
は100です。ただし、次のエラーが発生します。
ValueError: The two structures don't have the same number of elements.
First structure: Tensor("backward/Tile:0", shape=(100, 50), dtype=float32),
second structure:
(<tf.Tensor 'backward/bwd_states/while/GRUCell/add:0' shape=(100, 50) dtype=float32>,
<tf.Tensor 'backward/bwd_states/while/GRUCell/add:0' shape=(100, 50) dtype=float32>).
これを解決する手がかりはありますか?
こんにちは私は同じ問題がありました、私はこれをやろうとしました:
highest = tf.map_fn(lambda x : (-x, x), indices)
これは私に同様のエラーメッセージを与えました:
ValueError: The two structures don't have the same number of elements.
First structure (1 elements): <dtype: 'int32'>
Second structure (2 elements): (<tf.Tensor 'map/while/Neg:0' shape=() dtype=int32>, <tf.Tensor 'map/while/TensorArrayReadV3:0' shape=() dtype=int32>)
私はdtypesを明示的にすることでこれを解決しました:
highest = tf.map_fn(lambda x : (-x, x), indices, dtype=(tf.int32, tf.int32))