def optimize(self, data, with_metrics=False, with_trace=False):
""" Optimize a single batch """
run_metadata = tf.RunMetadata() if with_trace else None
trace = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE) if with_trace else None
_, metrics = self.run(
self.training_operation, data,
run_options=trace, run_metadata=run_metadata)
if with_metrics:
self.timer_update()
steps, elapsed = self.elapsed()
num_devices = len(self.towers)
examples = steps * self.batch_size * num_devices
print('Step {}, examples/sec {:.3f}, ms/batch {:.1f}'.format(
self.global_step, examples / elapsed, 1000 * elapsed / num_devices))
self.output_metrics(data, metrics)
self.write_summaries(data)
if with_trace:
step = '{}/step{}'.format(self.name, self.global_step)
self.summary_writer.add_run_metadata(run_metadata, step, global_step=self.global_step)
评论列表
文章目录