为什么scikit-learn中训练模型就一句model.fit(),而pytorch中训练模型却要写一个for循环,并在循环内完成计算损失、误差反向传播、梯度更新等过程?
从现在开始,你可以将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: 模型在数据集上迭代