暂时只支持单个优化器暂不支持DDP 用法
使用self.learing_rate或self.lr作为学习率参数
class LitModel(LightningModule): def __init__(self, learning_rate): self.learning_rate = learning_rate def configure_optimizers(self): return Adam(self.parameters(), lr=(self.lr or self.learning_rate)) model = LitModel() # 开启 auto_lr_find标志 trainer = Trainer(auto_lr_find=True) # 寻找合适的学习率 trainer.tune(model)
使用其他的学习率变量名称
model = LitModel() # 设置为自己的学习率超参数名称 my_value trainer = Trainer(auto_lr_find="my_value") trainer.tune(model)
使用lr_find()查看自动搜索学习率的结果
model = MyModelClass(hparams) trainer = Trainer() # 运行学习率搜索 lr_finder = trainer.tuner.lr_find(model) # 查看搜索结果 lr_finder.results # 绘制学习率搜索图,suggest参数指定是否显示建议的学习率点 fig = lr_finder.plot(suggest=True) fig.show() # 获取最佳学习率或建议的学习率 new_lr = lr_finder.suggestion() # 更新模型的学习率 model.hparams.lr = new_lr # 训练模型 trainer.fit(model)scale_batch_size() 参数详解
Returns:搜索结果
将在如下地方寻找batch_arg_name
modelmodel.hparamstrainer.datamodule (如果datamodule传递给了tune()) 使用注意
暂时不支持DDP模式
由于需要使用模型的batch_arg_name属性,因此不能直接将dataloader直接传递给trainer.fit(),否则此功能将失效,需要在模型中加载数据
原来模型中的batch_arg_name属性将被覆盖
train_dataloader()应该依赖于batch_arg_name属性
def train_dataloader(self): return DataLoader(train_dataset, batch_size=self.batch_size | self.hparams.batch_size)用法 使用Trainer中的auto_scale_batch_size属性
# 默认不执行缩放 trainer = Trainer(auto_scale_batch_size=None) # 设置搜索策略 trainer = Trainer(auto_scale_batch_size=None | "power" | "binsearch") # 寻找最佳batch_szie,并自动设置到模型的batch_size属性中 trainer.tune(model)使用scale_batch_size()
# 返回搜索结果 new_batch_size = tuner.scale_batch_size(model, *extra_parameters_here) # 覆盖原来的属性(这个过程是自动的) model.hparams.batch_size = new_batch_size
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)