Похоже, что translate.py
не создает сводный журнал TensorBoard. (Частью причины может быть то, что большая часть оценки происходит в Python, а не в графике TensorFlow.) Давайте посмотрим, как добавить ее.
Вам необходимо создать tf.train.SummaryWriter
. Добавьте следующее перед входом в учебном цикле (here):
summary_writer = tf.train.SummaryWriter("path/to/logs", sess.graph_def)
Вам нужно создать сводные события для недоумения в каждом ведре. Эти значения вычисляются в Python, поэтому вы не можете использовать обычный tf.scalar_summary()
op. Вместо этого, вы будете создавать tf.Summary
непосредственно путем модификации this loop:
perplexity_summary = tf.Summary()
# Run evals on development set and print their perplexity.
for bucket_id in xrange(len(_buckets)):
encoder_inputs, decoder_inputs, target_weights = model.get_batch(
dev_set, bucket_id)
_, eval_loss, _ = model.step(sess, encoder_inputs, decoder_inputs,
target_weights, bucket_id, True)
eval_ppx = math.exp(eval_loss) if eval_loss < 300 else float('inf')
print(" eval: bucket %d perplexity %.2f" % (bucket_id, eval_ppx))
bucket_value = perplexity_summary.value.add()
bucket_value.tag = "peplexity_bucket)%d" % bucket_id
bucket_value.simple_value = eval_ppx
summary_writer.add_summary(perplexity_summary, model.global_step.eval())
Вы можете добавить другие показатели, построив tf.Summary
значения самостоятельно и вызова summary_writer.add_summary()
.
Привет, mrry, Есть ли способ добавить резюме о encoder_state, например. [Здесь] (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/seq2seq.py#L323). Я попытался реализовать VAE между кодировщиком и декодером и распечатать KLD. Однако он терпит неудачу, потому что (я думаю) он не может оценить последовательности из других ведер. – lhlmgr