Skip to main content
https://readthedocs.org/projects/numpydl/badge/ https://img.shields.io/badge/license-MIT-blue.svg https://api.travis-ci.org/oujago/NumpyDL.svg https://coveralls.io/repos/github/oujago/NumpyDL/badge.svg https://badge.fury.io/py/npdl.svg https://img.shields.io/badge/python-3.5-blue.svg https://img.shields.io/badge/python-3.6-blue.svg https://codeclimate.com/github/oujago/NumpyDL/badges/issue_count.svg https://img.shields.io/github/issues/oujago/NumpyDL.svg https://zenodo.org/badge/83100910.svg

NumpyDL: Numpy Deep Learning Library

Descriptions

NumpyDL is:

  1. Based on Pure Numpy/Python

  2. For DL Education

  3. And for My Homework

Features

Its main features are:

  1. Pure in Numpy

  2. Native to Python

  3. Automatic differentiations are basically supported

  4. Commonly used models are provided: MLP, RNNs, LSTMs and CNNs

  5. API like Keras library

  6. Examples for several AI tasks

  7. Application for a toy chatbot

  8. Mobile friendly documents

Documentation

Available online documents:

  1. latest docs

  2. development docs

  3. stable docs

Available offline PDF:

  1. latest 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:

applications/chatbot/pics/chatbot.png

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

Changelog

0.4.0 (2017.-06-18)

Version 0.4.0.

  • Embedding backward

  • Momentum

  • NesterovMomentum

  • Adagrad

  • RMSprop

  • Adadelta

  • Adam

  • Adamax

0.3.0 (2017-06-15)

Version 0.3.0.

  • Add chatbot application.

  • Add more examples.

  • Support LSTM.

  • Support GRU.

0.2.5 (2017-05-30)

Version 0.2.5.

Add almost all test.

0.2 (2017-05-10)

Second release.

Support Layers:

  • Batch Normalization Layer

  • Embedding Layer

  • MeanPooling Layer

  • Flatten Layer

Support Activations:

  • SymmetricElliot

  • LReLU

  • SoftPlus

  • SoftSign

Support Initializations:

  • HeNormal

  • HeUniform

  • Orthogonal

Add more tutorials.

Add more API comments.

0.1 (2017-04-11)

First release.

Support layers:

  • Dense (perceptron) Layer

  • Softmax Layer

  • Dropout Layer

  • Convolution Layer

  • MaxPooling Layer

  • SimpleRNN Layer

Support Activations:

  • Sigmoid

  • Tanh

  • ReLU

  • Softmax

  • Elliot

Support Initializations:

  • Uniform

  • Normal

  • LecunUniform

  • GlorotUniform

  • GlorotNormal

Support Objectives:

  • MeanSquaredError

  • HellingerDistance

  • BinaryCrossEntropy

  • SoftmaxCategoricalCrossEntropy

Support Optimizers:

  • SGD

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

npdl-0.4.0.1.tar.gz (567.2 kB view details)

Uploaded Source

File details

Details for the file npdl-0.4.0.1.tar.gz.

File metadata

  • Download URL: npdl-0.4.0.1.tar.gz
  • Upload date:
  • Size: 567.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for npdl-0.4.0.1.tar.gz
Algorithm Hash digest
SHA256 48062c5e4c7e7156b520d6ffbf07d3877da4561022d771f7472a71a8999561e4
MD5 a6e011dc2c0f17c3bf6d0dab088d7a97
BLAKE2b-256 7e012fa5f83cf02891f29a3c077db15e002cd49d08cc986a6d6d8b87dfa56733

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.0.1 This release

1 file

0.3.0

1 file

0.1.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page