Pytorch-lightning的使用
Pytorch-lightning介绍
这里介绍Pytorch_lighting框架.
Pytorch-lightning与Pytorch的区别
Pytorch-lightning可以简单的看作是Pytorch的再封装. 大家都知道开发一个深度学习模型实际上主要就分为4个组件:
(1) 定义模型/网络 (Model class);
(2) 实现Data_loader;
(3) 定义优化器Optimizer;
(4) 实现训练&验证代码逻辑;
当然除了这些还有一些其他辅助步骤, 比如: 写日志, 打印模型网络结构,结果统计分析, 以及各种训练技巧,比如分布式训练,混合精度训练,等等;
这样一来代码结构就显得很乱, 而Pytorch-lightning本质上就是对上面4个组件的再封装,保持了代码的整洁.
Pytorch-lightning框架的优势
1.相比于Pytorch, 代码非常简洁, 主要原因在于:
(1)不需要写大量逻辑部分代码 (Pytorch-lightning的trainer已经替你做了)
(2) Pytorch-lightning将上述4个组件再次封装为了一个系统类pl.LightningModule,
- 非常方便支持定制各种训练行为, 比如自动优化/手动指定优化, 分布式训练, 混合精度训练, 方便预调试各个模块等等.
Pytorch-lightning框架
实际上就3个核心概念:
(1)pl.LightningModule:
主要用以定义一个学习系统的主要组件
(2)pl.LightningDataModule
对data_loader的封装,
当然你也可以直接使用原始的data_loader;
(3) pl.Trainer
训练器,功能比较强大, 继承了各种技巧
重要资源
1.Pytorch-lightning的官网技术描述https://lightning.ai/docs/pytorch/latest/common/lightning_module.html#hooks
特点: 详细, 但是比较散乱;
2.某个大佬关于Pytorch-lightning的介绍https://zhuanlan.zhihu.com/p/459701671
特点;系统性/原理性/全局性比较强, 值得一看;