skorch-dev/skorch

A scikit-learn compatible neural network library that wraps PyTorch

解决的问题

它弥合了 PyTorch 与 scikit-learn 之间的差距,使用户可以像使用 scikit-learn 估计器一样使用 PyTorch 神经网络。这消除了编写重复训练循环样板代码的需要,并允许 PyTorch 模型直接集成到 scikit-learn 的预处理、管道构建和超参数调优工具生态系统中。

工作原理

Skorch 将 PyTorch 模块包装为 scikit-learn 兼容的接口。通过提供 NeuralNetClassifier 等类,使标准 scikit-learn 方法(如 .fit() 和 .predict())得以使用。该包装器使 PyTorch 模型能够无缝集成到 sklearn.pipeline.Pipeline 和 sklearn.model_selection.GridSearchCV 中,实现自动模型选择和优化。

适用人群

使用 PyTorch 构建神经网络,但更倾向于使用 scikit-learn API 进行模型管理、评估和管道编排的机器学习工程师和数据科学家。

主要亮点

  • scikit-learn 兼容性:与 scikit-learn 管道和网格搜索完全集成,用于超参数优化。
  • 训练工具:内置支持早停、检查点保存以及学习率调度器(包括循环学习率和热重启)。
  • 模型管理:支持参数冻结/解冻,以及 CLI 和 Jupyter Notebook 的进度条。
  • 广泛集成:与 Hugging Face 和 GPyTorch(高斯过程)兼容。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目