#neural-network #deep-learning #classifier #machine-learning

prophet

A neural network implementation with a focus on cache-efficiency and sequential performance

11 releases (4 breaking)

Uses old Rust 2015

0.4.2 Oct 12, 2017
0.4.1 Aug 27, 2017
0.3.0 Apr 16, 2017
0.2.1 Mar 25, 2017
0.0.2 Sep 11, 2016

#364 in Machine learning

MIT/Apache

73KB
1.5K SLoC

PROPHET - Neural Network Library

Linux Windows Codecov Coveralls Docs Crates.io
travis appveyor codecov coveralls docs crates.io

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

License

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 codecov.io
    • travisCI no longer requires sudo

Dependencies

~3MB
~49K SLoC