NumpyDL: Numpy Deep Learning Library
Descriptions
NumpyDL
is:
- Based on Pure Numpy/Python
- For DL Education
- And for My Homework
Features
Its main features are:
- Pure in Numpy
- Native to Python
- Automatic differentiations are basically supported
- Commonly used models are provided: MLP, RNNs, LSTMs and CNNs
- API like
Keras
library - Examples for several AI tasks
- Application for a toy chatbot
Documentation
Available online documents:
Available offline PDF:
Installation
Install NumpyDL using pip:
$> pip install npdl
Install from source code:
$> python setup.py install
Examples
NumpyDL
provides several examples of AI tasks:
- sentence classification
- LSTM in examples/lstm_sentence_classification.py
- CNN in examples/cnn_sentence_classification.py
- mnist handwritten recognition
- MLP in examples/mlp-mnist.py
- MLP in examples/mlp-digits.py
- CNN in examples/cnn-minist.py
- language modeling
- RNN in examples/rnn-character-lm.py
- LSTM in examples/lstm-character-lm.py
One concrete code example in examples/mlp-digits.py:
import numpy as np
from sklearn.datasets import load_digits
import npdl
# prepare
npdl.utils.random.set_seed(1234)
# data
digits = load_digits()
X_train = digits.data
X_train /= np.max(X_train)
Y_train = digits.target
n_classes = np.unique(Y_train).size
# model
model = npdl.model.Model()
model.add(npdl.layers.Dense(n_out=500, n_in=64, activation=npdl.activation.ReLU()))
model.add(npdl.layers.Dense(n_out=n_classes, activation=npdl.activation.Softmax()))
model.compile(loss=npdl.objectives.SCCE(), optimizer=npdl.optimizers.SGD(lr=0.005))
# train
model.fit(X_train, npdl.utils.data.one_hot(Y_train), max_iter=150, validation_split=0.1)
Applications
NumpyDL
provides one toy application:
- Chatbot
- seq2seq in applications/chatbot/model.py
And its final result:
Supports
NumpyDL
supports following deep learning techniques:
- Layers
- Linear
- Dense
- Softmax
- Dropout
- Convolution
- Embedding
- BatchNormal
- MeanPooling
- MaxPooling
- SimpleRNN
- GRU
- LSTM
- Flatten
- DimShuffle
- Optimizers
- SGD
- Momentum
- NesterovMomentum
- Adagrad
- RMSprop
- Adadelta
- Adam
- Adamax
- Objectives
- MeanSquaredError
- HellingerDistance
- BinaryCrossEntropy
- SoftmaxCategoricalCrossEntropy
- Initializations
- Zero
- One
- Uniform
- Normal
- LecunUniform
- GlorotUniform
- GlorotNormal
- HeNormal
- HeUniform
- Orthogonal
- Activations
- Sigmoid
- Tanh
- ReLU
- Linear
- Softmax
- Elliot
- SymmetricElliot
- SoftPlus
- SoftSign