Python frameworks for Artificial Intelligence

Author: Jérémie DECOCK
Contact: jd.jdhp@gmail.com
Revision: 1
Date: January 4, 2017
License:Creative Commons 4.0 (CC BY-SA 4.0)

Table of Contents

Warning

Please note that at this time, this document is a work in progress that is not intended to be read by anyone other than its authors.

1   Machine Learning frameworks

1.1   Tensorflow

The opensource Google Brain library for Deeplearning.

1.4   Pylearn2

1.4.1   Quick and dirty bootstrap

Install dependencies:

conda install theano
conda install nose-parameterized
mkdir ~/pylearn2_data

Set PYLEARN2_DATA_PATH in ~/.bash_profile (MacOS):

export PYLEARN2_DATA_PATH="/Users/jdecock/pylearn2_data"
export PYLEARN2_VIEWER_COMMAND="open -Wn"

Then run:

source ~/.bash_profile

Install pylearn2 (see http://deeplearning.net/software/pylearn2/index.html#download-and-installation):

mkdir -p ~/bin/
cd ~/bin/
git clone git://github.com/lisa-lab/pylearn2.git
cd pylearn2
python setup.py develop --user

Run the first tutorial (see ~/bin/pylearn2/pylearn2/scripts/tutorials/grbm_smd/README):

# Download the CIFAR10 dataset
cd ~/bin/pylearn2/pylearn2/scripts/datasets
./download_cifar10.sh

# Make the dataset
cd ~/bin/pylearn2/pylearn2/scripts/tutorials/grbm_smd
python make_dataset.py

# Train the model
~/bin/pylearn2/pylearn2/scripts/train.py cifar_grbm_smd.yaml

# Show results
~/bin/pylearn2/pylearn2/scripts/show_weights.py cifar_grbm_smd.pkl
~/bin/pylearn2/pylearn2/scripts/plot_monitor.py cifar_grbm_smd.pkl

1.8   MILK

Features:

  • LASSO
  • Random forests
  • Self organising maps
  • SVMs (using the libsvm solver with a pythonesque wrapper around it)
  • Stepwise Discriminant Analysis for feature selection
  • Non-negative matrix factorisation
  • K-means using as little memory as possible
  • Affinity propagation

2   Machine Learning Benchmarks and Datasets

Reference datasets:

3   Mathematical optimization

3.2   CVXOPT

  • Mathematical programming

4   Computer vision

5   Maths and useful tools

5.6   Theano

Theano a low level fast computation library between numpy and sympy that is often used by ML libraries (Pylearn2, Blocks, Keras, ...). It makes some linear algebra operation very quickly using GPU, dynamic C code generation, parallelization, ...

It's not a ML library but it's useful to mention it here as it's very often referred by ML libraries.

5.7   MPI4PY

  • To use MPI with Python

6   License

CC BY-SA 4.0 image

This document is provided under the terms and conditions of the Creative Commons 4.0 (CC BY-SA 4.0) license.