My work log

1. 面试了两位同学. 我喜欢的面试方式是努力创造机会让同学尽量展示自己最好的部分. 我会对他做过的东西(最有感觉的)问得非常详细,主要是了解他思路是否清晰, 遇到问题时的态度. 当然作为技术面试官, 我更欣赏能够在描述自己项目的时候,善于发现问题,并能够解决问题.

2. 自己还是太容易激动, 遇到问题的时候, 不能冷静对待. 当你想要发火的时候, 一定要是自己冷静下来, 从另外的层次上思考问题.

3. 同样的事情,同样的解决方案, 往往因为表达方式的不同, 效果也不一样.

4. 人的亲和力非常重要.

### 配置和使用 MMDetection 自定义 Log 功能 在 MMDetection 框架中,日志记录功能主要依赖于 Python 的标准库 `logging` 模块以及 MMCV 提供的相关工具。为了实现自定义的日志记录功能,可以通过修改配置文件中的日志设置来完成。 #### 修改配置文件以支持自定义日志 MMDetection 使用配置文件(通常是 `.py` 或 `.yaml` 文件)来管理训练过程的各种参数,其中包括日志记录的设置。以下是具体的步骤: 1. **调整日志级别** 在配置文件中找到 `log_level` 参数,并将其更改为所需的日志级别(如 DEBUG、INFO、WARNING 等)。默认情况下,该值通常为 `INFO`。如果希望记录更多调试信息,则可以将其更改为 `DEBUG`[^1]。 ```python log_level = 'DEBUG' ``` 2. **指定日志保存路径** 如果需要将日志写入文件而不是仅打印到控制台,可以在配置文件中添加或修改 `work_dir` 参数。此目录不仅会存储模型权重和其他中间结果,还会自动保存日志文件。 ```python work_dir = './logs/my_custom_log_experiment/' ``` 3. **定制化日志格式** 默认的日志格式可能无法满足特定需求。要更改日志消息的显示样式,可通过覆盖 MMCV 的内部函数来自定义日志处理器。例如,在脚本开头导入并重新初始化 `logger` 对象: ```python import logging from mmcv.utils import get_logger logger = get_logger(name='mmdet', log_file='./logs/custom.log', log_level=logging.DEBUG, file_mode='w') # 设置日志格式 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler = logging.FileHandler('./logs/custom.log') handler.setFormatter(formatter) logger.addHandler(handler) ``` 4. **集成 TensorBoard 日志** 若想进一步增强可视化效果,还可以启用 TensorBoard 来监控训练进度。只需确保配置文件中有如下选项即可开启 TensorBoard 支持: ```python evaluation = dict(interval=1, metric='bbox') # 定义评估间隔 checkpoint_config = dict(interval=1) # 定义检查点保存频率 log_config = dict( interval=50, hooks=[ dict(type='TextLoggerHook'), dict(type='TensorboardLoggerHook') # 添加 TensorBoard Hook ]) ``` 以上方法能够灵活地调整 MMDetection 的日志行为,从而更好地适应开发者的实际需求[^2]。 --- ### 示例代码片段 下面是一个完整的配置示例,展示了如何结合上述技巧创建带有自定义日志功能的实验环境: ```python _base_ = '../retinanet/retinanet_r50_fpn_1x_coco.py' # 工作目录 work_dir = './logs/retinanet_with_custom_logs/' # 记录等级设为 DEBUG log_level = 'DEBUG' # 日志配置 log_config = dict( interval=10, hooks=[ dict(type='TextLoggerHook'), # 控制台输出日志 dict(type='TensorboardLoggerHook') # 同步至 TensorBoard ]) # 初始化自定义 Logger import os.path as osp import logging from mmcv.utils import get_logger custom_log_path = osp.join(work_dir, 'training.log') logger = get_logger(name='mmdet', log_file=custom_log_path, log_level=logging.DEBUG, file_mode='w') formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler = logging.FileHandler(custom_log_path) handler.setFormatter(formatter) logger.addHandler(handler) # 数据集与优化器保持不变... ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值