def save_stats(self, epoch): # Save logger if epoch is not None: # add log self.logger_stats.write( '----------------- Epoch scores summary ------------------------- \n' ) self.logger_stats.write( '[epoch %d], [val loss %.5f], [acc %.2f], [mean_IoU %.2f] \n' % (epoch, self.stats.val.loss, 100 * self.stats.val.acc, 100 * self.stats.val.mIoU)) self.logger_stats.write( '---------------------------------------------------------------- \n' ) # add scores to tensorboard self.writer.add_scalar('losses/epoch', self.stats.val.loss, epoch) self.writer.add_scalar('metrics/accuracy', 100. * self.stats.val.acc, epoch) self.writer.add_scalar('metrics/mIoU', 100. * self.stats.val.mIoU, epoch) conf_mat_img = confm_metrics2image( self.stats.val.get_confm_norm(), self.cf.labels) #self.writer.add_image('metrics/conf_matrix', conf_mat_img, epoch) else: self.logger_stats.write( '----------------- Scores summary -------------------- \n') self.logger_stats.write( '[val loss %.5f], [acc %.2f], [mean_IoU %.2f]\n' % (self.stats.val.loss, 100 * self.stats.val.acc, 100 * self.stats.val.mIoU)) self.logger_stats.write( '---------------------------------------------------------------- \n' )
def save_stats(self, epoch, mode): # Save logger if epoch is not None: # add scores to log self.logger_stats.write('Classification validation scores:\n') self.logger_stats.write( '[epoch %d], [val loss %.5f], [acc %.2f], [precision %.2f], [recall %.2f], [f1score %.2f]\n' % ( epoch, self.stats.val.loss, 100 * self.stats.val.acc, 100 * self.stats.val.precision, 100 * self.stats.val.recall, 100 * self.stats.val.f1score)) # add scores to tensorboard self.writer.add_scalar('losses/epoch', self.stats.val.loss, epoch) # self.writer.add_scalar('metrics/accuracy', 100. * self.stats.val.acc, epoch) self.writer.add_scalar('metrics/precision', 100. * self.stats.val.precision, epoch) # self.writer.add_scalar('metrics/recall', 100. * self.stats.val.recall, epoch) # self.writer.add_scalar('metrics/f1score', 100. * self.stats.val.f1score, epoch) conf_mat_img = confm_metrics2image(self.stats.val.get_confm_norm(), self.cf.labels) self.writer.add_image('metrics/conf_matrix', conf_mat_img, epoch, dataformats='HWC') else: self.logger_stats.write('----------------- Scores summary --------------------\n') self.logger_stats.write( '[%s loss %.5f], [acc %.2f], [precision %.2f], [recall %.2f], [f1score %.2f]\n' % ( mode, self.stats.val.loss, 100 * self.stats.val.acc, 100 * self.stats.val.precision, 100 * self.stats.val.recall, 100 * self.stats.val.f1score)) self.logger_stats.write('---------------------------------------------------------------- \n')
def save_stats_epoch(self, epoch): # Save logger if epoch is not None: # Epoch loss tensorboard self.writer.add_scalar('losses/epoch', self.stats.train.loss, epoch) self.writer.add_scalar('metrics/accuracy', 100.*self.stats.train.acc, epoch) self.writer.add_scalar('metrics/mIoU', 100.*self.stats.train.mIoU, epoch) conf_mat_img = confm_metrics2image(self.stats.train.get_confm_norm(), self.cf.labels)
def save_stats_epoch(self, epoch): # Save logger if epoch is not None: # Epoch loss tensorboard self.writer.add_scalar('losses/epoch', self.stats.train.loss, epoch) # self.writer.add_scalar('metrics/accuracy', 100. * self.stats.train.acc, epoch) self.writer.add_scalar('metrics/precision', 100. * self.stats.train.precision, epoch) # self.writer.add_scalar('metrics/recall', 100. * self.stats.train.recall, epoch) # self.writer.add_scalar('metrics/f1score', 100. * self.stats.train.f1score, epoch) conf_mat_img = confm_metrics2image(self.stats.train.get_confm_norm(), self.cf.labels) self.writer.add_image('metrics/conf_matrix', conf_mat_img, epoch, dataformats='HWC') # Save learning rate # self.logger_stats.write(str(self.model.scheduler.get_lr())) # Step, MultiStep for param_group in self.model.optimizer.param_groups: self.writer.add_scalar('lr/lr', param_group['lr'], epoch) # ReduceLROnPlateau
def save_stats_epoch(self, epoch): # Save logger if epoch is not None: # Epoch loss tensorboard self.writer.add_scalar('losses/epoch', self.stats.train.loss, epoch) self.writer.add_scalar('metrics/accuracy', 100. * self.stats.train.acc, epoch) self.writer.add_scalar('metrics/mIoU', 100. * self.stats.train.mIoU, epoch) conf_mat_img = confm_metrics2image( self.stats.train.get_confm_norm(), self.cf.labels) self.writer.add_image('metrics/conf_matrix', conf_mat_img, epoch, dataformats='HWC') for param_group in self.model.optimizer.param_groups: self.writer.add_scalar('lr/lr', param_group['lr'], epoch)
def save_stats_epoch(self, epoch): # Save logger if epoch is not None: # Epoch loss tensorboard self.writer.add_scalar('losses/epoch', self.stats.train.loss, epoch) self.writer.add_scalar('metrics/accuracy', 100. * self.stats.train.acc, epoch) self.writer.add_scalar('metrics/precision', 100. * self.stats.train.precision, epoch) self.writer.add_scalar('metrics/recall', 100. * self.stats.train.recall, epoch) self.writer.add_scalar('metrics/f1score', 100. * self.stats.train.f1score, epoch) conf_mat_img = confm_metrics2image( self.stats.train.get_confm_norm(), self.cf.labels) self.writer.add_image('metrics/conf_matrix', conf_mat_img, epoch)