Coder Social home page Coder Social logo

jkthompson / nupic Goto Github PK

View Code? Open in Web Editor NEW

This project forked from numenta/nupic-legacy

0.0 1.0 0.0 189.69 MB

Numenta Platform for Intelligent Computing

Home Page: http://numenta.org/

License: GNU General Public License v3.0

Shell 0.01% Python 9.17% CSS 0.02% C++ 86.54% Perl 0.01% C 4.23% Objective-C 0.01% Scheme 0.01% OCaml 0.01% Ruby 0.01% C# 0.01%

nupic's Introduction

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 or any IDE supported by CMake (Visual Studio, Eclipse, XCode, KDevelop, etc)

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

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

Note: If you get a "permission denied" error when using pip, you may add the --user flag to install to a location in your home directory, which should resolve any permissions issues. Doing this, you may need to add this location to your PATH and PYTHONPATH. Alternatively, you can run pip with 'sudo'.

Build and test NuPIC:

Important notes:

  • $REPOSITORY is the current location of the repository that you downloaded from GitHub.
  • After CMake generation, two useful environment variables will be created:
    • $NUPIC, which is the same as $REPOSITORY
    • $NTA, which references $HOME/nta/eng (the directory with all executables and libraries generated from build process). If this variable is already set, the $REPOSITORY/release will not be created, and $NTA will be used as the release directory.

Using command line

Configure and generate build files:

cd $REPOSITORY/build_system
cmake $REPOSITORY

Build:

cd $REPOSITORY/build_system
make -j3

Note: -j3 option specify '3' as the maximum number of parallel jobs/threads that Make will use during the build in order to gain speed. However, you can increase this number depending your CPU.

Run the C++ tests:

cd $NTA/bin
htmtest
testeverything

Using graphical interface

Generate the IDE solution:

  • Open CMake executable.
  • Specify the source folder ($REPOSITORY).
  • Specify the build system folder ($REPOSITORY/build_system), ie where IDE solution will be created.
  • Click 'Generate'.
  • Choose the IDE that interest you (remember that IDE choice is limited to your OS, ie Visual Studio is available only on CMake for Windows).

Build:

  • Open 'Nupic.*proj' solution file generated on $REPOSITORY/build_system.
  • Run 'ALL_BUILD' project from your IDE.

Run the C++ tests:

  • Run 'HtmTest' and 'TestEverything' projects from your IDE (check 'output' panel to see the results).

Run the Python unit tests:

cd $NUPIC
$NUPIC/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.

nupic's People

Contributors

breznak avatar scottpurdy avatar rhyolight avatar chetan51 avatar subutai avatar oxtopus avatar csimons avatar keithcom avatar iandanforth avatar akamlani avatar gilsho avatar numenta-ci avatar lithix-src avatar macrintr avatar danstanton avatar gpierris avatar jefffohl avatar jordandm avatar dbrody avatar lscheinkman avatar memming avatar alexaltair avatar cultrarius avatar duta avatar jkthompson avatar rahul1 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.