PytorchLightning 教程
这是Lightning库 - 与Lightning相关的笔记本集合,作为子模块被拉回主仓库并在主文档中呈现。 主要特点/亮点:
- 我们保持仓库轻量级 - 笔记本以富文本脚本格式存储
- 所有脚本/笔记本都经过测试,确保完全可执行
- 通过保存运行时环境详情,实现完全可复现
更多详情请阅读我们的博文 - 发布PyTorch Lightning教程笔记本的最佳实践
添加/编辑笔记本
此仓库的主分支只包含带有markdown扩展的Python脚本,笔记本在特定的发布分支中生成,因此不接受原始笔记本的PR。 另一方面,我们强烈建议创建笔记本并使用jupytext将其转换为脚本,如下所示:
jupytext --set-formats ipynb,py:percent my-notebook.ipynb
贡献结构
添加内容需要以新文件夹的形式提交:
- 文件夹名用于未来的笔记本
- 单个Python脚本或转换为
.py
文件的笔记本(名称不重要) - 名为
.meta.yaml
的元数据文件,包含以下信息:title: 示例笔记本 author: [用户](联系方式) created: YYYY-MM-DD updated: YYYY-MM-DD license: CC BY-SA # 多行 description: | 本笔记本将指导您完成... # 定义支持的加速器 - CPU|GPU|TPU accelerator: - CPU
- [可选] 在特定文件夹中的
requirements.txt
中列出所需的依赖(如果需要父文件夹中未列出的其他包)
使用数据集
在示例中使用公共或比赛数据集是很常见的。 我们通过在元文件中定义数据源来实现这一点。 有两种基本选项,从网络下载文件或拉取Kaggle数据集_[实验性]_:
datasets:
web:
- https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
kaggle:
- titanic # 这需要是公开数据集
在这两种情况下,下载的存档(Kaggle数据集最初以zip文件形式下载)会被解压到默认数据集文件夹下,子文件夹名与下载文件名相同。
要获取此数据集文件夹的路径,请使用环境变量PATH_DATASETS
,所以在您的脚本中使用:
import os
data_path = os.environ.get("PATH_DATASETS", "_datasets")
path_titanic = os.path.join(data_path, "titanic")
警告: 某些Kaggle数据集可能相当大,处理过程包括下载和解压,这意味着特定运行程序需要双倍的可用空间。因此,CPU运行程序限制为3GB数据集。
建议与限制
- 在文本单元格中插入图片时使用Markdown格式,这样我们可以直接将内联图片插入到笔记本中,并减少对互联网连接的依赖 -> 生成的笔记本可以更好地离线共享
- 如果您的图片需要特定尺寸,请使用
![标题](https://raw.githubusercontent.com/Lightning-AI/tutorials/main/my-image.png){height="60px" width="240px"}
- 如果您的笔记本需要大量计算或其他资源(CPU/RAM),请在元配置中仅使用GPU加速器选项
- 由于凭证问题,Kaggle数据集可能会出现中断...
开发技巧
实用笔记
在发布工作流程的后台,您基本上可以找到以下三个步骤
# 1) 将脚本转换为笔记本
jupytext --set-formats ipynb,py:percent notebook.py
# 2) [可选] 测试创建的笔记本
pytest -v notebook.ipynb --nbval
# 3) 生成笔记本输出
papermill in-notebook.ipynb out-notebook.ipynb
本地文档构建
您可能想要在本地构建文档,而无需执行所有笔记本。 在这种情况下,您可以将所有脚本转换为IPython笔记本作为预演...
# 设置跳过笔记本执行,仅进行转换
export DRY_RUN=1
# 从脚本生成笔记本
make ipynb
# 构建文档
make docs