CNTK alternatives and similar packages
Based on the "Machine learning" category.
Alternatively, view CNTK alternatives based on common mentions on social networks and blogs.
Do you think we are missing an alternative of CNTK or a related project?
Bindings for CNTK library
Simple low level bindings for CNTK library from Microsoft.
Currently exploring ways how to interact with C++ API nicely from Rust. Expect a lot of breaking changes.
Build scripts are not ready yet, might not work outside of 64bit linux.
- Ability to train all reasonable architectures
- No memory leaks
- Reasonable ease of use
- Idiomatic Rust everywhere
- Super good ergonomics
- Avoiding all unnecessary copies
Building and installing
You need to have CNTK-2.3 installed and paths to includes and library files in relevant enviroment variables (cntk activate scripts does this well). You also need g++-4.8 installed (because CNTK uses it to compile things).
See examples folder.
Only works with single precision (f32 in Rust, float in C++) types. Only works with dense representations of vectors/matrices/tensors. Only works with ASCII strings for variable names and filenames.
- Passing data in and out of computation.
- Training fully connected feedforward, convolutional and recurrent network.
- Saving and loading the model.
- Code for most operations. - Almost all, except couple of helpers.
- Demo of seq2seq model training.
- Turning c++ exception into rust panics (most of the time).
- Interop with NDArray library.
Planned in future
- Better docs.
- Finish all operations.
- Better build scripts.
- Figure out whether we want NDArrayView or go directly from Rust data to Value and back.
- Builder pattern where appropriate (Variable?).