JT5D / nupic

Numenta Platform for Intelligent Computing: a brain-inspired machine intelligence platform, and biologically accurate neural network based on cortical learning algorithms.

Home Page:http://numenta.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Numenta Platform for Intelligent Computing (NuPIC)

Build Status

NuPIC is a library that provides the building blocks for online prediction systems. The library contains the Cortical Learning Algorithm (CLA), but also the Online Prediction Framework (OPF) that allows clients to build prediction systems out of encoders, models, and metrics.

For more information, see numenta.org or the Github wiki.

Issue tracker at issues.numenta.org.

OPF Basics

For more detailed documentation, see the OPF wiki page.

Encoders turn raw values into sparse distributed representations (SDRs). A good encoder will capture the semantics of the data type in the SDR using overlapping bits for semantically similar values.

Models take sequences of SDRs and make predictions. The CLA is implemented as an OPF model.

Metrics take input values and predictions and output scalar representations of the quality of the predictions. Different metrics are suitable for different problems.

Clients take input data and feed it through encoders, models, and metrics and store or report the resulting predictions or metric results.

Installation

For all installation options, see the Getting Started wiki page.

Currently supported platforms:

  • Linux (32/64bit)
  • Mac OSX
  • Raspberry Pi (ARMv6)
  • Chromebook (Ubuntu ARM, Crouton) (ARMv7)
  • VM images

Dependencies:

  • Python (2.6-2.7) (with development headers)
  • GCC (4.6-4.8), or Clang
  • Make

The dependencies are included in platform-specific repositories for convenience:

Add the following to your .bashrc file. Change the paths as needed.

# Installation path
export NTA=$HOME/nta/eng
# Target source/repo path. Defaults to $PWD
export NUPIC=/path/to/repo
# Convenience variable for temporary build files
export BUILDDIR=/tmp/ntabuild
# Number of jobs to run in parallel (optional)
export MK_JOBS=3

# Set up the rest of the necessary env variables. Must be done after
# setting $NTA.
source $NUPIC/env.sh

Complete set of python requirements are documented in requirements.txt, compatible with pip:

pip install -r external/common/requirements.txt

Note: If using pip 1.5 or later:

pip install --allow-all-external --allow-unverified PIL --allow-unverified psutil -r external/common/requirements.txt

Build and install NuPIC:

$NUPIC/build.sh

NuPIC should now be installed in $NTA!

Try it out!

Tests

Run the C++ tests:

$NTA/bin/htmtest
$NTA/bin/testeverything

Run the Python unit tests:

cd $NTA
./bin/run_tests.sh

Examples

You can run the examples using the OpfRunExperiment OPF client:

python $NUPIC/examples/opf/bin/OpfRunExperiment.py $NUPIC/examples/opf/experiments/multistep/hotgym/

There are also some sample OPF clients. You can modify these to run your own data sets. One example is the hotgym prediction client:

python $NUPIC/examples/opf/clients/hotgym/hotgym.py

Also check out other uses of the CLA on the Getting Started wiki page.

About

Numenta Platform for Intelligent Computing: a brain-inspired machine intelligence platform, and biologically accurate neural network based on cortical learning algorithms.

http://numenta.org/

License:GNU General Public License v3.0