TorchFit 是 PyTorch 的简单、易用和简约的训练助手
项目描述
TorchFit
TorchFit是 PyTorch 的一个简单、简约的训练助手,它以fastai和Keras的风格公开了一种易于使用的方法。fit
TorchFit旨在实现微创,占用空间小,尽可能减少臃肿。它非常适合那些不熟悉 PyTorch 训练模型的人。
用法
# normal PyTorch stuff
train_loader = create_your_training_data_loader()
val_loader = create_your_validation_data_loader()
test_loader = create_your_test_data_loader()
model = create_your_pytorch_model()
# wrap model and data in Learner
import torchfit
learner = torchfit.Learner(model, train_loader, val_loader=val_loader)
# estimate LR using Learning Rate Finder
learner.find_lr()
# train using 1cycle learning rate policy
learner.fit_onecycle(1e-4, 3)
# plot training vs. validation loss
learner.plot('loss')
# make predictions as easy as in Keras
y_pred = learner.predict(test_loader)
# save model and reload later
learner.save('/tmp/mymodel')
learer.load('/tmp/mymodel')
TorchFit训练循环
教程和示例
- MNIST快速入门: 快速入门笔记本让您启动并运行
- 教程笔记本:使用与PyTorch 文本分类教程 中使用的相同模型和数据的教程笔记本
特征
学习率查找器
learner.find_lr()
一种fit训练方法
# Examples
learner.fit(lr, epochs)
learner.fit_onecycle(lr, epochs)
learner.fit(lr, epochs, schedulers=[scheduler])
易于执行的测试和预测
# Examples
outputs = learner.predict(test_loader)
outputs, targets = learner.predict(test_loader, return_targets=True)
text = 'Shares of IBM rose today.'
predicted_label = learner.predict_example(text, preproc_fn=preprocess, labels=labels)
梯度累积
learner.fit_onecycle(lr, 1, accumulation_steps=8)
渐变剪裁
learner.fit_onecycle(lr, 1, gradient_clip_val=1)
混合精度训练
torchfit.Learner(model, train_loader, val_loader=val_loader, use_amp=True, amp_level='O2')
多 GPU 训练和 GPU 选择
在前两个 GPU(0 和 1)上训练:
learner = torchfit.Learner(model, train_loader, val_loader=test_loader, gpus=[0,1])
要仅在第二个 GPU 上进行训练,可以执行以下任一操作:
learner = torchfit.Learner(model, train_loader, val_loader=test_loader, gpus=[1])
或这个...
learner = torchfit.Learner(model, train_loader, val_loader=test_loader, device='cuda:1')
重置模型的权重
learner.reset_weights()
保存/加载模型
learner.save('/tmp/mymodel')
learner.load('/tmp/mymodel')
安装
确保安装 PyTorch后,安装TorchFit:
pip3 install torchfit