mmd_hook
MMCV 自定义
假设想要添加MyOptimizer
的新优化器,有a
,b
,c
三个参数,需要创建一个新的路径
mmdet/core/optimizer
。然后在config文件中应用一个新的优化器
mmdet/core/optimizer/my_optimizer.py
:
from .registry import OPTIMIZERS
from torch.optim import Optimizer
@OPTIMIZERS.register_module()
class MyOptimizer(Optimizer):
def __init__(self, a, b, c)
1.2.2 将新的优化器添加到注册器中
上边定义完成的模块想要在config文件中使用,就必须import到一个明明空间中,两种方法,实现这个工作:
直接在
__init__.py
文件中,导入,在mmdet/core/optimizer/__init__.py
中from .my_optimizer import MyOptimizer
在config文件中实现
= dict(imports=['mmdet.core.optimizer.my_optimizer'], allow_failed_imports=False) custom_imports
该模块mmdet.core.optimizer.my_optimizer
将在程序开始时导入,然后自动注册MyOptimizer
这个类。请注意,仅应该导入包含MyOptimizer
的包。
mmdet.core.optimizer.my_optimizer.MyOptimizer
无法直接导入。
实际上,使用这种导入的方式,使用者可以直接使用不同的文件路径结构,只要模块的路径在PYTHONPATH
中可以找到即可。
1.2.3 在config文件中指定优化器
在config文件中的optimizer
字段中使用MyOptimizer
:
# 原始的优化器使用方法
= dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001)
optimizer # 自定义优化器使用方法
= dict(type='MyOptimizer', a=a_value, b=b_value, c=c_value) optimizer
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.