| 101 | |
| 102 | |
| 103 | class ReportMgr(ReportMgrBase): |
| 104 | def __init__(self, report_every, start_time=-1., tensorboard_writer=None): |
| 105 | """ |
| 106 | A report manager that writes statistics on standard output as well as |
| 107 | (optionally) TensorBoard |
| 108 | |
| 109 | Args: |
| 110 | report_every(int): Report status every this many sentences |
| 111 | tensorboard_writer(:obj:`tensorboard.SummaryWriter`): |
| 112 | The TensorBoard Summary writer to use or None |
| 113 | """ |
| 114 | super(ReportMgr, self).__init__(report_every, start_time) |
| 115 | self.tensorboard_writer = tensorboard_writer |
| 116 | |
| 117 | def maybe_log_tensorboard(self, stats, prefix, learning_rate, step): |
| 118 | if self.tensorboard_writer is not None: |
| 119 | stats.log_tensorboard( |
| 120 | prefix, self.tensorboard_writer, learning_rate, step) |
| 121 | |
| 122 | def _report_training(self, step, num_steps, learning_rate, |
| 123 | report_stats): |
| 124 | """ |
| 125 | See base class method `ReportMgrBase.report_training`. |
| 126 | """ |
| 127 | report_stats.output(step, num_steps, |
| 128 | learning_rate, self.start_time) |
| 129 | |
| 130 | # Log the progress using the number of batches on the x-axis. |
| 131 | self.maybe_log_tensorboard(report_stats, |
| 132 | "progress", |
| 133 | learning_rate, |
| 134 | self.progress_step) |
| 135 | report_stats = Statistics() |
| 136 | |
| 137 | return report_stats |
| 138 | |
| 139 | def _report_step(self, lr, step, train_stats=None, valid_stats=None): |
| 140 | """ |
| 141 | See base class method `ReportMgrBase.report_step`. |
| 142 | """ |
| 143 | if train_stats is not None: |
| 144 | self.log('Train xent: %g' % train_stats.xent()) |
| 145 | |
| 146 | self.maybe_log_tensorboard(train_stats, |
| 147 | "train", |
| 148 | lr, |
| 149 | step) |
| 150 | |
| 151 | if valid_stats is not None: |
| 152 | self.log('Validation xent: %g at step %d' % (valid_stats.xent(), step)) |
| 153 | |
| 154 | self.maybe_log_tensorboard(valid_stats, |
| 155 | "valid", |
| 156 | lr, |
| 157 | step) |
no outgoing calls
no test coverage detected