Crates.io | ffsvm |
lib.rs | ffsvm |
version | 0.12.0 |
created_at | 2018-08-05 10:41:24.206206+00 |
updated_at | 2024-12-14 15:09:34.25713+00 |
description | A libSVM compatible support vector machine, but up to 10x faster, for games or VR. |
homepage | |
repository | https://github.com/ralfbiedert/ffsvm-rust |
max_upload_size | |
id | 77609 |
size | 707,671 |
You trained an SVM using libSVM, now you want the highest possible performance during (real-time) classification, like games or VR.
Train with libSVM (e.g., using the tool svm-train
), then classify with ffsvm-rust
.
From Rust:
// Replace `SAMPLE_MODEL` with a `&str` to your model.
let svm = DenseSVM::try_from(SAMPLE_MODEL)?;
let mut fv = FeatureVector::from(&svm);
let features = fv.features();
features[0] = 0.55838;
features[1] = -0.157895;
features[2] = 0.581292;
features[3] = -0.221184;
svm.predict_value(&mut fv)?;
assert_eq!(fv.label(), Label::Class(42));
December 14, 2024: After 7+ years, finally ported to stable.🎉🎉🎉
March 10, 2023: Reactivated for latest Rust nightly.
June 7, 2019: Gave up on 'no unsafe
', but gained runtime SIMD selection.
March 10, 2019: As soon as we can move away from nightly we'll go beta.
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.
All performance numbers reported for the DenseSVM
. We also have support for SparseSVM
s, which are slower
for "mostly dense" models, and faster for "mostly sparse" models (and generally on the performance level of libSVM).
target-cpu=native
for a massive speed boost (e.g., check our .cargo/config.toml
how
you can easily do that for your project). Note, due to how Rust works, this is only used for application
(or dynamic FFI libraries), not library crates wrapping us.Problem
structures, and process them with Rayon's par_iter
.