Pytorch如何优雅地训练模型(二):自定义性能评估、梯度操作、损失函数

上一期我们讲了使用model.fit()优雅地训练Pytorch模型的基本操作,本期解锁model.fit()的高级操作,包括自定义性能评估、最优迭代次数、梯度操作、自定义损失函数等,让复杂的训练任务依然能够优雅的完成。

scient

scient一个用python实现科学计算相关算法的包,包括自然语言、图像、神经网络、优化算法、机器学习、图计算等模块。

scient源码和编译安装包可以在Python package index获取。

The source code and binary installers for the latest released version are available at the [Python package index].

https://pypi.org/project/scient

可以用pip安装scient

You can install scient like this:

pip install scient

也可以用setup.py安装。

Or in the scient directory, execute:

python setup.py install

scient.neuralnet

神经网络相关算法模块,包括attention、transformer、bert、lstm、resnet、crf、dataset、fit等。

scient.neuralnet.fit

神经网络训练模块,将torch构建的神经网络模型的训练方式简化为model.fit(),使torch神经网络模型训练更简捷,更优雅。

使用步骤:

(1)基于torch构建模型model,采用torch.utils.data.DataLoader加载训练数据集train_loader、验证数据集eval_loader(可选);

(2)采用fit.set()设置模型训练参数,参数详情:

  • optimizer=None: 优化器,可以用类似torch.optim模块内的优化器来定义;
  • scheduler=None: 优化器的调度器,可以用类似torch.optim.lr_scheduler模块内的调度器来定义;
  • loss_func=None: 损失函数,可以用类似torch.nn.CrossEntropyLoss()来定义;
  • grad_func=None: 梯度操作函数,可进行如梯度裁剪的操作;
  • perform_func=None: 模型性能函数,模型传入预测值和实际值,用以评估模型性能;
  • n_iter=10: 模型在数据集上迭代训练的次数;
    • 如果n_iter为int,表示模型在数据集上迭代训练n_iter后停止;
    • 如果n_iter为(int,int),表示模型在数据集上迭代训练的最小min_iter和最大max_iter次数, 如果迭代次数超过min_iter且eval的perform_func比上一个iter小,结束训练。n_iter为(int,int)时,必须提供eval_loader,且perform_func必须是一个数值,且值越大模型性能越好;
  • device=None: 模型训练的设备,如device = torch.device(‘cuda’ if torch.cuda.is_availabl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值