def iter_step_callback_func(self, *args): """ Check the elapsed wall time for the optimisation run so far. Terminate if this has exceeded the maximum allowed time """ if self.log_level <= logging.DEBUG: logger.debug("Iteration callback {}".format(self.num_iter)) wall_time = timeit.default_timer() - self.wall_time_optimize_start if self._iter_fpath is not None: # write out: iter wall_time fid_err grad_norm fid_comp = self.dynamics.fid_computer fh = open(self._iter_fpath, 'a') fh.write("{:<10n}{:14.6g}{:14.6g}{:14.6g}\n".format( self.num_iter, wall_time, fid_comp.fid_err, fid_comp.grad_norm)) fh.close() tc = self.termination_conditions if wall_time > tc.max_wall_time: raise errors.MaxWallTimeTerminate() self.num_iter += 1 # *** update stats *** if self.stats is not None: self.stats.num_iter = self.num_iter
def iter_step_callback_func(self, *args): """ Check the elapsed wall time for the optimisation run so far. Terminate if this has exceeded the maximum allowed time """ self.num_iter += 1 if self.log_level <= logging.DEBUG: logger.debug("Iteration callback {}".format(self.num_iter)) wall_time = timeit.default_timer() - self.wall_time_optimize_start if self.iter_summary: self.iter_summary.iter_num = self.num_iter self.iter_summary.wall_time = wall_time if self.dump and self.dump.dump_summary: self.dump.add_iter_summary() tc = self.termination_conditions if wall_time > tc.max_wall_time: raise errors.MaxWallTimeTerminate() # *** update stats *** if self.stats is not None: self.stats.num_iter = self.num_iter