使用GreedyEmb时dynamic_decode的输出是什么形状?

时间:2019-07-18 14:39:22

标签: tensorflow seq2seq

使用dynamic_decodeGreedyEmbeddingHelper的输出究竟是什么形状?我已经设置了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)

我尝试像这样运行predsY_cutmax_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

出什么问题了?

0 个答案:

没有答案