许多时候我们会有一些对模型结构进行修改的需求,这个时候如何进行模型改进就成了我们的问题,接下来我的流程中将会介绍如何替换YOLOv8的优化器。
1. 首先准备代码
比如我要将YOLOv8中的优化器替换为Lion,则需要准备Lion的pytorch代码,具体的地址为https://github.com/google/automl/tree/master/lion,其中有一个lion_pytorch.py
,即我们所需要的代码文件。
2. 导入优化器
将lion_pytorch.py
文件放置在yolov8项目中,比如我用conda安装的yolov8,则将其放置在miniconda3/envs/yolo8/lib/python3.8/site-packages/ultralytics/engine
文件夹中,同时,在训练器的文件trainer.py
中进行导入,首先,添加图1中的代码,代码前面的是文件中的行数。
再在代码中添加图2中的代码
至此,即完成了优化器的导入。
3. 替换优化器
有两种方法,分别是在miniconda3/envs/yolo8/lib/python3.8/site-packages/ultralytics/cfg/default.yaml
中替换和在训练时直接指定optimizer为Lion,如果要在default.yaml中进行替换,则是在如图3所示的地方进行替换,将auto替换为Lion
另一种方法则是在train.py指定优化器,如图4所示。
如此,便实现了优化器的替换。