Github 项目推荐 | 兼容 Scikit-Learn 的 PyTorch 神经网络库 —— skorch

2018 年 5 月 8 日 AI研习社 AI 研习君

Skorch 是一个兼容 Scikit-Learn 的 PyTorch 神经网络库。

  资源

文档:

https://skorch.readthedocs.io/en/latest/?badge=latest

  源代码

https://github.com/dnouri/skorch/

  示例

更详细的例子,请查看此链接:

https://github.com/dnouri/skorch/tree/master/notebooks/README.md

import numpy as np
from sklearn.datasets import make_classification
import torch
from torch import nn
import torch.nn.functional as F

from skorch.net import NeuralNetClassifier


X, y = make_classification(1000, 20, n_informative=10, random_state=0)
X = X.astype(np.float32)
y = y.astype(np.int64)

class MyModule(nn.Module):
   def __init__(self, num_units=10, nonlin=F.relu):
       super(MyModule, self).__init__()

       self.dense0 = nn.Linear(20, num_units)
       self.nonlin = nonlin
       self.dropout = nn.Dropout(0.5)
       self.dense1 = nn.Linear(num_units, 10)
       self.output = nn.Linear(10, 2)

   def forward(self, X, **kwargs):
       X = self.nonlin(self.dense0(X))
       X = self.dropout(X)
       X = F.relu(self.dense1(X))
       X = F.softmax(self.output(X), dim=-1)
       return X


net = NeuralNetClassifier(
   MyModule,
   max_epochs=10,
   lr=0.1,
)

net.fit(X, y)
y_proba = net.predict_proba(X)

In an sklearn Pipeline:

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler


pipe = Pipeline([
   ('scale', StandardScaler()),
   ('net', net),
])

pipe.fit(X, y)
y_proba = pipe.predict_proba(X)

With grid search

from sklearn.model_selection import GridSearchCV


params = {
   'lr': [0.01, 0.02],
   'max_epochs': [10, 20],
   'module__num_units': [10, 20],
}
gs = GridSearchCV(net, params, refit=False, cv=3, scoring='accuracy')

gs.fit(X, y)
print(gs.best_score_, gs.best_params_)

  安装

pip 安装

pip install -U skorch

建议使用虚拟环境。

源代码安装

如果你想使用 skorch 最新的案例或者开发帮助,请使用源代码安装

用 conda

如果你需要一个工作conda安装, 从这里为的的系统获取正确的 miniconda:

https://conda.io/miniconda.html

如果你只是使用 skorch:

git clone https://github.com/dnouri/skorch.git
cd skorch
conda env create
source activate skorch
# install pytorch version for your system (see below)
python setup.py install

如果你只想帮助开发,运行:

git clone https://github.com/dnouri/skorch.git
cd skorch
conda env create
source activate skorch
# install pytorch version for your system (see below)
conda install --file requirements-dev.txt
python setup.py develop

py.test  # unit tests
pylint skorch  # static code checks

用 pip

如果你只是使用 skorch:

git clone https://github.com/dnouri/skorch.git
cd skorch
# create and activate a virtual environment
pip install -r requirements.txt
# install pytorch version for your system (see below)
python setup.py install

如果你想使用帮助开发:

git clone https://github.com/dnouri/skorch.git
cd skorch
# create and activate a virtual environment
pip install -r requirements.txt
# install pytorch version for your system (see below)
pip install -r requirements-dev.txt
python setup.py develop

py.test  # unit tests
pylint skorch  # static code checks

从Python入门-如何成为AI工程师

BAT资深算法工程师独家研发课程

最贴近生活与工作的好玩实操项目

班级管理助学搭配专业的助教答疑

学以致用拿offer,学完即推荐就业


新人福利


关注 AI 研习社(okweiwu),回复  1  领取

【超过 1000G 神经网络 / AI / 大数据资料】


Scikit-learn(sklearn)官方文档中文版

登录查看更多
0

相关内容

Scikit-learn项目最早由数据科学家David Cournapeau 在2007 年发起,需要NumPy和SciPy等其他包的支持,是Python语言中专门针对机器学习应用而发展起来的一款开源框架。
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
258+阅读 · 2020年6月10日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
212+阅读 · 2020年2月21日
一网打尽!100+深度学习模型TensorFlow与Pytorch代码实现集合
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
机器学习入门的经验与建议
专知会员服务
90+阅读 · 2019年10月10日
Github项目推荐 | Pytorch TVM 扩展
AI研习社
11+阅读 · 2019年5月5日
Github项目推荐 | pikepdf - Python的PDF读写库
AI研习社
9+阅读 · 2019年3月29日
Github项目推荐 | RecQ - Python推荐系统框架
AI研习社
8+阅读 · 2019年1月23日
Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3
AI研习社
9+阅读 · 2018年8月11日
Github 项目推荐 | YOLOv3 的最小化 PyTorch 实现
AI研习社
25+阅读 · 2018年5月31日
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Arxiv
3+阅读 · 2018年6月19日
Arxiv
7+阅读 · 2018年6月1日
Arxiv
7+阅读 · 2018年3月22日
Arxiv
8+阅读 · 2018年1月25日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关资讯
Github项目推荐 | Pytorch TVM 扩展
AI研习社
11+阅读 · 2019年5月5日
Github项目推荐 | pikepdf - Python的PDF读写库
AI研习社
9+阅读 · 2019年3月29日
Github项目推荐 | RecQ - Python推荐系统框架
AI研习社
8+阅读 · 2019年1月23日
Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3
AI研习社
9+阅读 · 2018年8月11日
Github 项目推荐 | YOLOv3 的最小化 PyTorch 实现
AI研习社
25+阅读 · 2018年5月31日
相关论文
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Arxiv
3+阅读 · 2018年6月19日
Arxiv
7+阅读 · 2018年6月1日
Arxiv
7+阅读 · 2018年3月22日
Arxiv
8+阅读 · 2018年1月25日
Arxiv
5+阅读 · 2015年9月14日
Top
微信扫码咨询专知VIP会员