def __call__(self, nn, train_history): current_valid = train_history[-1][self.loss] \ * (-1.0 if self.greater_is_better else 1.0) current_epoch = train_history[-1]['epoch'] if current_valid < self.best_valid: self.best_valid = current_valid self.best_valid_epoch = current_epoch self.best_weights = [w.get_value() for w in nn.get_all_params()] nn.save_params_to(self.weights_file)
def __call__(self, nn, train_history): epoch = train_history[-1]['epoch'] if epoch in self.schedule: new_value = self.schedule[epoch] if new_value == 'stop': if self.weights_file is not None: nn.save_params_to(self.weights_file) raise StopIteration getattr(nn, self.name).set_value(util.float32(new_value))