created_at2016-09-05 22:55:52.800297
updated_at2017-10-12 23:20:34.188442
descriptionA neural network implementation with a focus on cache-efficiency and sequential performance.
Robin Freyler (Robbepop)



PROPHET - Neural Network Library

Linux Windows Codecov Coveralls Docs
travis appveyor codecov coveralls docs

A simple neural net implementation written in Rust with a focus on cache-efficiency and sequential performance.

Currently only supports supervised learning with fully connected layers.

How to use

The preferred way to receive prophet is via cargo or github.

Compile prophet with

cargo build

Run the test suite with

cargo test --release

Note: It is recommended to use --release for testing since optimizations are insanely effective for prophet.

For additional information while running some long tests use

cargo test --release --verbose -- --nocapture

Run performance test with

cargo bench --features benches

Planned Features

  • Convolutional Layers: Foundations have been layed out already!
  • GPGPU Support by Vulkano
  • Even more flexible learning methods


Licensed under either of

at your option.

Dual licence: badge badge

Release Notes (YYYY/MM/DD)

0.4.2 (2017/10/13)

  • Relicensed the library under the dual license model where the user can choose between MIT or APACHE version 2.0.
  • Improved performance of learning algorithms by up to 27%*. (*Tested on my local machine.)
  • Updated ndarray from 0.10.10 to 0.10.11 and itertools from 0.6.5 to 0.7.0.
  • Relaxed dependency version constraints for rand, num, log and ndarray.
  • Usability: Added a HOW TO USE section to the README.
  • Dev
    • Added some unit tests for NeuralNet components for improved stability and maintainability.

0.4.1 (2017/08/27)

  • Fixed long-standing undeterministic bug.
  • Reverted ChaChaRng usage in NeuralLayer::random - it is much faster and ChaChaRng's safety is not needed.

0.4.0 (2017/08/09)

  • Updated ndarray dependency version from 0.9 to 0.10
  • Updated serde dependency version from 0.9 to 1.0
  • Enabled serde feature by default.
  • NeuralLayer::random now uses ChaChaRng internally instead of weak_rng
  • Devel:
    • travisCI now using new trusty environment
    • travisCI now uploads code coverage to coveralls and
    • travisCI no longer requires sudo
Commit count: 151

cargo fmt