
暂时只支持单个优化器暂不支持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条)