使用dynamic_decode
时GreedyEmbeddingHelper
的输出究竟是什么形状?我已经设置了maximum_iterations
,但是它抛出了InvalidArgumentError
:
InvalidArgumentError: 2 root error(s) found.
(0) Invalid argument: Incompatible shapes: [64,46] vs. [64,11]
[[{{node Eval/Equal}}]]
[[Eval/truediv/_431]]
关于acc的代码:
preds = tf.cond(is_training,
lambda: output_dec_train.sample_id,
lambda: output_dec_pred.sample_id)
Y_cut = tf.slice(Y, [0, 0], [-1, max_seq_len])
acc = tf.reduce_sum(tf.to_float(tf.equal(preds, Y_cut)) * masks) / \
tf.reduce_sum(masks)
我尝试像这样运行preds
,Y_cut
和max_seq_len
:
pred_batch, y_batch, max_len = sess.run([preds, Y_cut, max_seq_len],
feed_dict={X: test_batch_data,
Y: test_batch_labels,
seq_len_X: seq_len_x,
seq_len_Y: seq_len_y,
is_training: False})
然后打印其形状:
print(pred_batch.shape,y_batch.shape,max_len) # (64, 11) (64, 46) 46
出什么问题了?