资源算法inferno-sklearn

inferno-sklearn

2019-10-09 | |  169 |   0 |   0


Build Status Test Coverage Documentation Status Powered by

A scikit-learn compatible neural network library that wraps PyTorch.

Resources

Examples

To see more elaborate examples, look here.

import numpy as npfrom sklearn.datasets import make_classificationfrom torch import nnimport torch.nn.functional as Ffrom skorch 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,    # Shuffle training data on each epoch
    iterator_train__shuffle=True,
)

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

In an sklearn Pipeline:

from sklearn.pipeline import Pipelinefrom 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_)

skorch also provides many convenient features, among others:

Installation

skorch requires Python 3.5 or higher.

pip installation

To install with pip, run:

pip install -U skorch

We recommend to use a virtual environment for this.

From source

If you would like to use the must recent additions to skorch or help development, you should install skorch from source:

git clone https://github.com/skorch-dev/skorch.gitcd skorch# install pytorch version for your system (see below)python setup.py install

Using conda

You need a working conda installation. Get the correct miniconda for your system from here.

You can also install skorch through the conda-forge channel. The instructions for doing so are available hereNote: The conda channel is _not_ managed by the skorch maintainers.

If you do not want to use conda-forge, you may install skorch using:

git clone https://github.com/skorch-dev/skorch.gitcd skorch
conda env createsource activate skorch# install pytorch version for your system (see below)python setup.py install

If you want to help developing, run:

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

py.test  # unit testspylint skorch  # static code checks

Using pip

If you just want to use skorch, use:

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

If you want to help developing, run:

git clone https://github.com/skorch-dev/skorch.gitcd skorch# create and activate a virtual environmentpip 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 testspylint skorch  # static code checks

PyTorch

PyTorch is not covered by the dependencies, since the PyTorch version you need is dependent on your system. For installation instructions for PyTorch, visit the PyTorch website. The current version of skorch assumes PyTorch >= 1.1.0.

In general, this should work (assuming CUDA 9):

# using conda:conda install pytorch cudatoolkit=9.0 -c pytorch# using pippip install torch

Communication

上一篇:pytorch-fitmodule

下一篇:pytorch-caffe-darknet-convert

用户评价
全部评价

热门资源

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • inferno-boilerplate

    This is a very basic boilerplate example for pe...