Deep neural networks without the learning cliff! A wrapper library compatible with scikit-learn.
Project description
- orphan:
scikit-neuralnetwork
Deep neural network implementation without the learning cliff! This library implements multi-layer perceptrons as a wrapper for the powerful Lasagne library that’s compatible with scikit-learn for a more user-friendly and Pythonic interface.
NOTE: This project is possible thanks to the nucl.ai Conference on July 18-20. Join us in Vienna!
Features
Thanks to the underlying Lasagne implementation, this library supports the following neural network features, which are exposed in an intuitive and well documented API:
- Activation Functions —
Nonlinear: Sigmoid, Tanh, Rectifier.
Linear: Linear, Gaussian, Softmax.
Layer Types — Convolution (greyscale and color, 2D), Dense (standard, 1D).
Learning Rules — sgd, momentum, nesterov, adadelta, adagrad, rmsprop.
Regularization — L1, L2 and dropout.
Dataset Formats — numpy.ndarray, scipy.sparse, coming soon: iterators.
If a feature you need is missing, consider opening a GitHub Issue with a detailed explanation about the use case and we’ll see what we can do.
Installation
To download and setup the latest official release, you can do so from PYPI directly:
> pip install scikit-neuralnetwork
This will install a copy of Lasagne too as a dependency. We recommend you use a virtual environment for Python.
Then, you can run the tests using nosetests -v sknn, and other samples or benchmarks are available in the examples/ folder.
Getting Started
The library supports both regressors (to estimate continuous outputs from inputs) and classifiers (to predict labels from features). This is the sklearn-compatible API:
from sknn.mlp import Classifier, Layer
nn = Classifier(
layers=[
Layer("Rectifier", units=100),
Layer("Linear")],
learning_rate=0.02,
n_iter=10)
nn.fit(X_train, y_train)
y_valid = nn.predict(X_valid)
score = nn.score(X_test, y_test)
The generated documentation as a standalone page where you can find more information about parameters, as well as examples in the User Guide.