Shortcuts

性能更优的优化器

本文档提供了一些 MMEngine 支持的第三方优化器,它们可能会带来更快的收敛速度或者更高的性能。

D-Adaptation

D-Adaptation 提供了 DAdaptAdaGradDAdaptAdamDAdaptSGD 优化器。

备注

如使用 D-Adaptation 提供的优化器,需将 mmengine 升级至 0.6.0

  • 安装

pip install dadaptation
  • 使用

以使用 DAdaptAdaGrad 为例。

runner = Runner(
    model=ResNet18(),
    work_dir='./work_dir',
    train_dataloader=train_dataloader_cfg,
    # 如需查看 DAdaptAdaGrad 的输入参数,可查看
    # https://github.com/facebookresearch/dadaptation/blob/main/dadaptation/dadapt_adagrad.py
    optim_wrapper=dict(optimizer=dict(type='DAdaptAdaGrad', lr=0.001, momentum=0.9)),
    train_cfg=dict(by_epoch=True, max_epochs=3),
)
runner.train()

Lion

lion-pytorch 提供了 Lion 优化器。

备注

如使用 Lion 提供的优化器,需将 mmengine 升级至 0.6.0

  • 安装

pip install lion-pytorch
  • 使用

runner = Runner(
    model=ResNet18(),
    work_dir='./work_dir',
    train_dataloader=train_dataloader_cfg,
    # 如需查看 Lion 的输入参数,可查看
    # https://github.com/lucidrains/lion-pytorch/blob/main/lion_pytorch/lion_pytorch.py
    optim_wrapper=dict(optimizer=dict(type='Lion', lr=1e-4, weight_decay=1e-2)),
    train_cfg=dict(by_epoch=True, max_epochs=3),
)
runner.train()

Sophia

Sophia 提供了 SophiaSophiaGDecoupledSophiaSophia2 优化器。

备注

如使用 Sophia 提供的优化器,需将 mmengine 升级至 0.7.4

  • 安装

pip install Sophia-Optimizer
  • 使用

runner = Runner(
    model=ResNet18(),
    work_dir='./work_dir',
    train_dataloader=train_dataloader_cfg,
    # 如需查看 SophiaG 的输入参数,可查看
    # https://github.com/kyegomez/Sophia/blob/main/Sophia/Sophia.py
    optim_wrapper=dict(optimizer=dict(type='SophiaG', lr=2e-4, betas=(0.965, 0.99), rho = 0.01, weight_decay=1e-1)),
    train_cfg=dict(by_epoch=True, max_epochs=3),
)
runner.train()

bitsandbytes

bitsandbytes 提供了 AdamW8bitAdam8bitAdagrad8bitPagedAdam8bitPagedAdamW8bitLAMB8bitLARS8bitRMSprop8bitLion8bitPagedLion8bitSGD8bit 优化器。

备注

如使用 D-Adaptation 提供的优化器,需将 mmengine 升级至 0.9.0

  • 安装

pip install bitsandbytes
  • 使用

AdamW8bit 为例。

runner = Runner(
    model=ResNet18(),
    work_dir='./work_dir',
    train_dataloader=train_dataloader_cfg,
    # 如需查看 AdamW8bit 的输入参数,可查看
    # https://github.com/TimDettmers/bitsandbytes/blob/main/bitsandbytes/optim/adamw.py
    optim_wrapper=dict(optimizer=dict(type='AdamW8bit', lr=1e-4, weight_decay=1e-2)),
    train_cfg=dict(by_epoch=True, max_epochs=3),
)
runner.train()
Read the Docs v: latest
Versions
latest
stable
v0.10.3
v0.10.2
v0.10.1
v0.10.0
v0.9.1
v0.9.0
v0.8.5
v0.8.4
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.7.4
v0.7.3
v0.7.2
v0.7.1
v0.7.0
v0.6.0
v0.5.0
v0.4.0
v0.3.0
v0.2.0
Downloads
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.