from migrating_ignite import *
from fastai.vision.all import *
使用 fastai 点燃训练
逐步将 fastai 的优点添加到您的 Ignite 训练中
我们将使用 Ignite 示例目录中的 MNIST 训练代码(截至 2020 年 8 月),并将其转换为一个模块。
注意
如果您从 git 克隆了 fastai 仓库,migrating_ignite
的源脚本位于此文件夹的 examples
子目录中;如果您使用 Colab 等在线查看器,则可以从此处下载。
要在 fastai 中使用它,我们首先将模块中的 DataLoaders 提取到一个 DataLoaders
对象中。
= DataLoaders(*get_data_loaders(64, 128)).cuda() data
我们现在可以创建一个 Learner
并进行训练。
= partial(SGD, momentum=0.5)
opt_func = Learner(data, Net(), loss_func=nn.NLLLoss(), opt_func=opt_func, metrics=accuracy)
learn 1, 0.01) learn.fit_one_cycle(
周期 | 训练损失 | 验证损失 | 准确率 | 时间 |
---|---|---|---|---|
0 | 0.999266 | 0.597913 | 0.856200 | 00:22 |
如您所见,从 Ignite 迁移使我们将 52 行代码(在 run()
中)替换为仅 3 行,并且无需更改您现有的任何数据管道、优化器、损失函数、模型等。完成此更改后,您就可以受益于 fastai 丰富的回调、变换、可视化等功能。
请注意,fastai 与 Ignite 非常不同,它不仅仅是一个训练循环(尽管在此示例中我们只使用了训练循环),它是一个完整的框架,包括 GPU 加速的变换、端到端推理、集成的视觉、文本、表格和协同过滤应用等。您可以单独使用框架的任何部分,也可以将它们组合在一起,正如fastai 论文中所述。