1 修改basicsr模型训练时的loss打印输出形式,从科学计数修改为小数点形式

找到basicsr的basicsr/utils/logger.py文件,如果是以包的方式安装的basicsr,就在你的conda环境中找到basicsr的包所在位置,然后再找到basicsr/utils/logger.py文件。

一般在conda虚拟环境中,basicsr包的安装路径为:

  • Ubuntu上如下:你的conda目录/envs/你的虚拟环境名称/lib/你的python版本/site-packages/basicsr/utils/logger.py
  • Windows上如下:你的conda目录\envs\Real-ESRGAN\Lib\site-packages\basicsr\utils\logger.py

修改basicsr/utils/logger.py文件中的MessageLogger类的call函数,将该文件的

        # other items, especially losses
        for k, v in log_vars.items():
            message += f'{k}: {v:.4e} '
            # tensorboard logger
            if self.use_tb_logger and 'debug' not in self.exp_name:
                if k.startswith('l_'):
                    self.tb_logger.add_scalar(f'losses/{k}', v, current_iter)
                else:
                    self.tb_logger.add_scalar(k, v, current_iter)
        self.logger.info(message)

修改为

        # other items, especially losses
        for k, v in log_vars.items():
            message += f'{k}: {v:.6f} ' # 保留6位小数点
            # tensorboard logger
            if self.use_tb_logger and 'debug' not in self.exp_name:
                if k.startswith('l_'):
                    self.tb_logger.add_scalar(f'losses/{k}', v, current_iter)
                else:
                    self.tb_logger.add_scalar(k, v, current_iter)
        self.logger.info(message)

即可。
这样在模型训练时,各个loss项的输出就不是科学计数形式,而是小数点的形式。