Pytorch-Lightning中的训练器—Trainer

参数名称含义默认值接受类型

添加回调函数或回调函数列表None(

默认值)Union[List[Callback], Callback, None]

是否使用callbacksTruebool

使用的gpu数量(int)或gpu节点列表(list或str)None(不使用GPU)Union[int, str, List[int], None]

指定训练精度32(

)Union[int, str]

模型保存和日志记录默认根路径None(

)Optional[str]

设置日志记录器(支持多个),若没设置logger的

,则使用

True(默认日志记录)Union[LightningLoggerBase, Iterable[LightningLoggerBase], bool]

最多训练轮数(指定为**-1

无限次**)None(1000)Optional[int]

最少训练轮数None(1)Optional[int]

最大网络权重更新次数-1(禁用)Optional[int]

最少网络权重更新次数None(禁用)Optional[int]

权重保存路径(优先级高于

未定义路径时将使用该路径None(

)Optional[str]

更新n次网络权重后记录一次日志50int

自动搜索最佳batch_size并保存到模型的

中FalseUnion[str, bool]

自动搜索最佳学习率并存储到

FalseUnion[str, bool]

每k次batches累计一次梯度NoneUnion[int, Dict[int, int], None]

每n个train epoch执行一次验证1int

开始训练前加载n个验证数据进行测试,k=-1时加载所有验证数据2int

  • 这里 max_steps/min_steps中的step就是指的是优化器的step,优化器每step一次就会更新一次网络权重
  • 梯度累加(Gradient Accumulation):受限于显存大小,一些训练任务只能使用较小的batch_size,但一般batch-size越大(一定范围内)模型收敛越稳定效果相对越好;梯度累加可以先累加多个batch的梯度再进行一次参数更新,相当于增大了batch_size。

Trainer.fit()

训练数据加载器None

验证数据加载器None

ckpt文件路径(从这里文件恢复训练)None

None

​ 使用该参数指定一个模型ckpt文件(需要保存整个模型,而不是仅仅保存模型权重),Trainer将从ckpt文件的下一个epoch继续训练。

net = MyNet(...)
trainer = pl.Trainer(...)

trainer.fit(net, train_iter, val_iter, ckpt_path='./ckpt/myresult.ckpt')
  • 请不要使用Trainer()中的resume_from_checkpoint参数,该参数未来将被丢弃,请使用Trainer.fit()的ckpt_path参数

Trainer.test()

None(使用fit()传递的模型)

是否打印测试结果True

测试数据加载器(可以使用

)None

ckpt文件路径(从这里文件恢复训练)None

None

Original: https://blog.csdn.net/qq_27135095/article/details/122635743
Author: 奈何桥边摆地摊
Title: Pytorch-Lightning中的训练器—Trainer

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/719378/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球