docs.rs failed to build ffsvm-0.5.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
ffsvm-0.9.1
In One Sentence
You trained a non-sparse RBF-C-SVM using libSVM, now you want the highest possible performance during (real-time) classification, like games or VR.
Highlights
- can load trained libSVM models (currently RBF-CSVM without sparse attributes)
- optimized for SIMD and can be mixed seamlessly with Rayon.
- allocation-free during classification
- written in 100% Rust, but can be loaded from any language (via FFI)
- 2.5x - 14x faster than libSVM
- Free of
unsafe
code ;)
Principal Usage
Train with libSVM (e.g., using the tool svm-train
), then classify with ffsvm-rust
.
From Rust:
// Load model file / SVM.
let model_str: &str = include_str!;
let model = try_from?;
let csvm = try_from?;
// Produce problem we want to classify.
let mut problem = from;
// Set features
problem.features_mut.clone_from_slice;
// Can be trivially parallelized (e.g., with Rayon) ...
csvm.predict_value;
// Results should match libSVM
assert_eq!;
From C / FFI:
Please see FFSVM-FFI
Status
- Aug 5, 2018: Still in alpha, but finally on crates.io.
- May 27, 2018: We're in alpha. Successfully used internally on Windows, Mac, Android and Linux on various machines and devices. Once SIMD stabilizes and we can cross-compile to WASM we'll move to beta.
- December 16, 2017: We're in pre-alpha. It will probably not even work on your machine.
Performance
Classification time vs. libSVM.
Performance milestones during development.