资源
文档:
https://skorch.readthedocs.io/en/latest/?badge=latest
源代码
https://github.com/dnouri/skorch/
示例
更详细的例子,请查看此链接:
https://github.com/dnouri/skorch/tree/master/notebooks/README.md
代码语言:javascript复制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:
代码语言:javascript复制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
代码语言:javascript复制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 安装
代码语言:javascript复制pip install -U skorch
建议使用虚拟环境。
源代码安装
如果你想使用 skorch 最新的案例或者开发帮助,请使用源代码安装
用 conda
如果你需要一个工作conda安装, 从这里为的的系统获取正确的 miniconda:
https://conda.io/miniconda.html
如果你只是使用 skorch:
代码语言:javascript复制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
如果你只想帮助开发,运行:
代码语言:javascript复制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:
代码语言:javascript复制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
如果你想使用帮助开发:
代码语言:javascript复制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