ValueError:提供的 lr 调度程序“<torch.optim.lr_scheduler.MultiStepLR object at 0x0000021897D84160>”无效

问题描述 投票:0回答:1

我在尝试用GPU进行NERF时遇到了这个错误,这个错误发生在train.fit()中,其中训练器如下:

    from pytorch_lightning import LightningModule, Trainer
    trainer = Trainer(max_epochs=hparams.num_epochs,
                      callbacks=callbacks,
                      resume_from_checkpoint=hparams.ckpt_path,
                      logger=logger,
                      enable_model_summary=False,
                      accelerator='auto',
                      devices=hparams.num_gpus,
                      # gpus=-1,
                      num_sanity_val_steps=1,
                      benchmark=True,
                      profiler="simple" if hparams.num_gpus==1 else None,
                      strategy=DDPPlugin(find_unused_parameters=False) if hparams.num_gpus>1 else None)

    trainer.fit(system)

我不知道该怎么办,我真诚地需要你的帮助,非常感谢!

scheduler torch
1个回答
0
投票

看来MultiStepLR在LightningModule中无效。我遇到了同样的错误,并通过用ReduceLROnPlateau替换MultiStepLR来修复它。

optim_conf = model.configure_optimizers()
monitor = "val_loss"
a,b = optim_conf
scheduler0 = ReduceLROnPlateau(a[0])
b[0]=scheduler0

其中a是Adam优化器的列表,b也是一个列表,b[0]是MultiStepLR。 希望这能有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.