我正在比较基于Tensorflow Probability Variational Auto-encoder on MNIST的不同系统上的Tensorflow。标准是训练时间,训练损失和评估损失。我可以使用apply plugin: 'com.google.gms.google-services'
获得运行时间,并且评估数据集上的损失已经在代码中:
time.time()
由于训练失败,我尝试了this thread:
for _ in range(FLAGS.max_steps // FLAGS.viz_steps):
estimator.train(train_input_fn, steps=FLAGS.viz_steps)
eval_results = estimator.evaluate(eval_input_fn)
print("Evaluation_results:\n\t%s\n" % eval_results)
但是由于training_loss = float(tf.get_default_graph().get_collection(tf.GraphKeys.LOSSES)[0])
是一个空列表(即使它在提前停止的钩子内起作用),因此失败IndexError: list index out of range
。
我还可以构建一个输入函数来返回训练数据,但是由于训练数据被混洗,因此它不会与造成训练损失的数据完全相同:
tf.get_default_graph().get_collection(tf.GraphKeys.LOSSES)
每次分段训练后如何获得训练损失?