Machine learning in Rust.

Overview

Rustml

Rustml is a library for doing machine learning in Rust.

The documentation of the project with a descprition of the modules can be found here.

Features

  • powerful matrix and vector operations with BLAS bindings for high performance computing
  • k-nearest neighbord classification algorithm
  • neural networks
  • DBSCAN clustering algorithm
  • gradient descent for minimizing functions
  • linear regression
  • easy access to MNIST database of handwritten digits via an the rustml dataset package
  • parse and create CSV files
  • statistical functions like mean and variance for vectors and matrices
  • reading gzip compressed files
  • distance metrics
  • OpenCV binding to read images and videos plus interfaces for simplify feature extraction from images and videos (e.g. select pixels from images or frames of a video via a mask)
  • scaling of feature vectors and matrices
  • multidimensional sliding windows
  • examples

Prerequisites

On Ubuntu:

sudo apt-get install libblas-dev libopencv-highgui-dev

It is recommended to install OpenBLAS as it parallalizes matrix operations.

sudo apt-get install libopenblas-dev

Using rustml from scratch - example matrix multplication

Create a new project with cargo:

cargo new example --bin

A new directory example is created. Change into this directory and add the following lines Cargo.toml:

[dependencies.rustml]
git = "https://github.com/daniel-e/rustml/"

or the following dependency:

[dependencies]
rustml = "*"

Edit the file main.rs in the src directory.

#[macro_use] extern crate rustml;

use rustml::*;

fn main() {
    let a = mat![
        1.0f32, 2.0;
        3.0, 4.0;
        5.0, 6.0
    ];
    let b = mat![
        5.0, 7.0;
        6.0, 2.0
    ];
    let c = a * b;

    println!("{}", c);
}

Now, in the example directory run the example with cargo run.

Other examples

You can find other examples in the directory examples. Each example can be executed with cargo run --example <example name> where <example name> is one of the following:

  • gradient_descent: uses gradient descent to find the minimum of a function
  • image_grid: how to arrange a set of images into a grid
  • linear_regression: use linear regression to approximate the points of an unknown function
  • matrix_multiplication: guess what ;)
  • mnist_digits: shows how to load the MNIST database of handwritten digits
  • neuralnetwork: trains a neural network to compute the XOR function and plots the decision boundaries
  • octave_plot: shows how to plot things with Octave
  • plots: creates some plots for the online documentation
  • scale_matrix: demonstrates how to scale features
  • vector_addition: demonstrates how to add vectors
  • video_histogram: how to select specific regions of a video and compute the histogram

Rustml datasets package

The rustml dataset package needs to be installed separately. The package currently contains the MNIST database of handwritten digits and videos for the examples. Download the following script which will download and install the package in your home in the directory ~/.rustml/.

# download the install script
wget -q https://raw.githubusercontent.com/daniel-e/rustml/master/dl_datasets.sh
chmod +x dl_datasets.sh

# download the datasets and install them into ~/.rustml/
./dl_datasets.sh
Comments
  • trying flate2 0.2.20

    trying flate2 0.2.20

    Latest versions (~> 1.0.0 ) of flate2 do not include the map_err function. As noted in issue #5, pulling those crates causes a problem in compilation.

    This Pull request resolves #5

    opened by cdesch 2
  • no method named `unwrap` found for type `rustml::Matrix<f32>`

    no method named `unwrap` found for type `rustml::Matrix`

    When running the example using the fit repo as the dependency source the unwrap function is not found:

    
    cjsMBP15:dbscan cj$ cargo run
       Compiling rustml v0.0.5 (https://github.com/daniel-e/rustml/#86b09e63)
       Compiling dbscan v0.1.0 (file:///Users/cj/rust_projects/dbscan)
    error[E0599]: no method named `unwrap` found for type `rustml::Matrix<f32>` in the current scope
      --> src/main.rs:15:21
       |
    15 |     let c = (a * b).unwrap();
       |                     ^^^^^^
    
    error: aborting due to previous error
    
    error: Could not compile `dbscan`.
    
    
    opened by cdesch 2
  • undefined reference to `cblas_sgemm'

    undefined reference to `cblas_sgemm'

    I'm getting this when trying to compile a trivial sample on Archlinux (updated with blas installed):

       Compiling network v0.0.1 (file:///home/francisco/Documents/Projects/nndp)
    error: linking with `cc` failed: exit code: 1
    note: "cc" "-Wl,--as-needed" "-m64" "-L" "/home/francisco/.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/home/francisco/Documents/Projects/nndp/target/debug/network.0.o" "-o" "/home/francisco/Documents/Projects/nndp/target/debug/network" "-Wl,--gc-sections" "-pie" "-nodefaultlibs" "-L" "/home/francisco/Documents/Projects/nndp/target/debug" "-L" "/home/francisco/Documents/Projects/nndp/target/debug/deps" "-L" "/home/francisco/Documents/Projects/nndp/target/debug/build/miniz-sys-f1c39e8e406fa25f/out" "-L" "/home/francisco/Documents/Projects/nndp/target/debug/build/openblas-provider-601a7b1eda73c46c/out/opt/OpenBLAS/lib" "-L" "/home/francisco/.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/home/francisco/Documents/Projects/nndp/.rust/lib/x86_64-unknown-linux-gnu" "-L" "/home/francisco/Documents/Projects/nndp/lib/x86_64-unknown-linux-gnu" "-Wl,-Bstatic" "-Wl,-Bdynamic" "/home/francisco/Documents/Projects/nndp/target/debug/deps/librustml-688b9eed885ec9d9.rlib" "/home/francisco/Documents/Projects/nndp/target/debug/deps/libnum-397f282c1d72fe58.rlib" "/home/francisco/Documents/Projects/nndp/target/debug/deps/librand-204b49f864ff4762.rlib" "/home/francisco/Documents/Projects/nndp/target/debug/deps/libtime-b8d9c9e7ca5bced7.rlib" "/home/francisco/Documents/Projects/nndp/target/debug/deps/libregex-c5abedf84fe61ddb.rlib" "/home/francisco/Documents/Projects/nndp/target/debug/deps/libflate2-f631189bcf5818ae.rlib" "/home/francisco/Documents/Projects/nndp/target/debug/deps/librustc_serialize-7ff5bfc027146194.rlib" "/home/francisco/Documents/Projects/nndp/target/debug/deps/libaho_corasick-713d9a23dcd56f15.rlib" "/home/francisco/Documents/Projects/nndp/target/debug/deps/libmemchr-49395bf503c0fa9c.rlib" "/home/francisco/Documents/Projects/nndp/target/debug/deps/libminiz_sys-f1c39e8e406fa25f.rlib" "/home/francisco/Documents/Projects/nndp/target/debug/deps/liblibc-540159808ccfa9ab.rlib" "/home/francisco/Documents/Projects/nndp/target/debug/deps/libregex_syntax-6d9e9f3bd76497d4.rlib" "/home/francisco/.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-8cf6ce90.rlib" "/home/francisco/.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcollections-8cf6ce90.rlib" "/home/francisco/.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_unicode-8cf6ce90.rlib" "/home/francisco/.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand-8cf6ce90.rlib" "/home/francisco/.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-8cf6ce90.rlib" "/home/francisco/.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-8cf6ce90.rlib" "/home/francisco/.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-8cf6ce90.rlib" "/home/francisco/.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-8cf6ce90.rlib" "-l" "blas" "-l" "opencv_highgui" "-l" "opencv_core" "-l" "opencv_imgproc" "-l" "dl" "-l" "pthread" "-l" "gcc_s" "-l" "rt" "-l" "pthread" "-l" "c" "-l" "m" "-Wl,-rpath,$ORIGIN/../../../../../.multirust/toolchains/nightly/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-rpath,/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "compiler-rt"
    note: /home/francisco/Documents/Projects/nndp/target/debug/deps/librustml-688b9eed885ec9d9.rlib(rustml-688b9eed885ec9d9.0.o): In function `rustml::matrix::Matrix<f32>.Mul::mul':
    /home/francisco/.multirust/toolchains/nightly/cargo/registry/src/github.com-0a35038f75765ae4/rustml-0.0.5/src/matrix.rs:943: undefined reference to `cblas_sgemm'
    collect2: error: ld returned 1 exit status
    
    error: aborting due to previous error
    Could not compile `network`.
    
    To learn more, run the command again with --verbose.
    
    opened by oblitum 2
  • Error when running on Rust 1.23

    Error when running on Rust 1.23

    Upgraded from Rust 1.21.0 (3b72af97e 2017-10-09) to 1.23.0 (766bd11c8 2018-01-01)

    When compiling, I get this error:

    Compiling rustml v0.0.5 (https://github.com/daniel-e/rustml/#86b09e63)
    error[E0599]: no method named `map_err` found for type `io::flate2::read::GzDecoder<std::fs::File>` in the current scope
    --> /Users/cj/.cargo/git/checkouts/rustml-2bdbc170c14086fd/86b09e6/src/io.rs:108:18
     |
    108 |                 .map_err(|_| "Invalid gzip header.")
     |                  ^^^^^^^
    
    error: aborting due to previous error
    
    error: Could not compile `rustml`.
    
    
    opened by cdesch 0
  •  ld: library not found for -lopencv_imgcodecs

    ld: library not found for -lopencv_imgcodecs

    When building on the OS X 10.12.6 Sierra, I get this error:

      ld: library not found for -lopencv_imgcodecs
    

    I have the opencv library installed via homebrew although my version seemed to be out of date. Upgrading the latest one resolved it.

    cjsMBP15:ad_lock cj$ brew install opencv
    Error: opencv 2.4.13.2 is already installed
    To upgrade to 3.4.0_1, run `brew upgrade opencv`
    cjsMBP15:ad_lock cj$ brew upgrade opencv
    

    That lets me compile it fine.

    Another issue worth noting, although I don't think it is due to rustml, is that I get this error when doing cargo build on the rust project, although please note that there is a greater context. I'm running Rustler for creating Rust NIF for an Elixir project. Compiling the Elixir project from the proper entry point compiles the project with rustml completely fine although if I go deeper into the project and focus on the rust aspect, it fails with cargo build on OS X. It does not on ubuntu. It fails with this:

    
    warning: unused import: `NifDecoder`
     --> src/lib.rs:6:55
      |
    6 | use rustler::{NifEnv, NifTerm, NifResult, NifEncoder, NifDecoder};
      |                                                       ^^^^^^^^^^
    
    error: linking with `cc` failed: exit code: 1
      |
      = note: "cc" "-m64" "-L" "/Users/cj/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan0.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan1.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan10.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan11.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan12.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan13.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan14.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan15.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan2.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan3.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan4.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan5.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan6.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan7.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan8.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.adlock_dbscan9.rcgu.o" "-o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/libadlock_dbscan.dylib" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.crate.metadata.rcgu.o" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps/adlock_dbscan.crate.allocator.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/deps" "-L" "/Users/cj/elixir_projects/ad_lock/native/adlock_dbscan/target/debug/build/miniz-sys-196a62939b6a9c24/out" "-L" "/Users/cj/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/liblazy_static-1720e11e14396b32.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/librustler-77d824b088ad7f3e.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/liberlang_nif_sys-b5bcab593d96546f.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/liblazy_static-8f64b49681de34b8.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/librustml-d3fb05b9f6c0a6b6.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libflate2-53dd3fb172d47e79.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libminiz_sys-726c0ddccb279106.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/librand-12829add1a561703.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libnum-5bec645e9c4f2452.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libnum_rational-2b6b9151f8d229dd.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libnum_complex-b97edf84bb4c9fac.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libnum_iter-b0b2a0581f6d54cb.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libnum_bigint-6d0862b2388914a9.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libnum_integer-580516a07ac96c8c.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libnum_traits-3f5aa0a35b961e4e.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/librustc_serialize-7ef7591fd50fb69b.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/librand-cbf17136057413a2.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libtime-d3c1da55cef1cdc2.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libregex-fdbf3936a77ec910.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libregex_syntax-6eda90e19dafa4b8.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libaho_corasick-9a29037e2ae6f7f0.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libmemchr-233dff7fd091586e.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libthread_local-4467b4cd3e8f7c4e.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libthread_id-4aaad2d09034ce32.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/liblibc-abc1fb867af5eb38.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libutf8_ranges-a93d10e33b224a97.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libstd-826c8d3b356e180c.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libpanic_unwind-a13e273e3b2707ec.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libunwind-fb866798267ea81a.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/liballoc_system-2c621ea26f0e39bb.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/liblibc-6f561611194f6c6a.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/liballoc-d7ea7d0f1d556c7c.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libstd_unicode-5217969f5650afe0.rlib" "-Wl,-force_load,/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libcore-4a937f4a2d664111.rlib" "/var/folders/cb/_4gwm8d117n47dwx_k2jqkg80000gn/T/rustc.XG9dP9vkMHbe/libcompiler_builtins-f6c69d64299ff1c7.rlib" "-l" "blas" "-l" "opencv_highgui" "-l" "opencv_imgcodecs" "-l" "opencv_core" "-l" "opencv_imgproc" "-l" "System" "-l" "resolv" "-l" "pthread" "-l" "c" "-l" "m" "-dynamiclib" "-Wl,-dylib"
      = note: Undefined symbols for architecture x86_64:
                "_cvGrabFrame", referenced from:
                    _$LT$rustml..opencv..VideoColorFrameIterator$LT$$u27$q$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$::next::hbe334209a25df91e in librustml-d3fb05b9f6c0a6b6.rlib(rustml-d3fb05b9f6c0a6b6.rustml12.rcgu.o)
                    _$LT$rustml..opencv..VideoGrayFrameIterator$LT$$u27$q$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$::next::h6c267b2fa9c4160a in librustml-d3fb05b9f6c0a6b6.rlib(rustml-d3fb05b9f6c0a6b6.rustml12.rcgu.o)
                "_cvReleaseCapture", referenced from:
                    _$LT$rustml..opencv..Video$u20$as$u20$core..ops..drop..Drop$GT$::drop::ha8cdd9550884ade1 in librustml-d3fb05b9f6c0a6b6.rlib(rustml-d3fb05b9f6c0a6b6.rustml12.rcgu.o)
                "_enif_snprintf", referenced from:
                    rustler::wrapper::term::fmt::h7fd4ecc93d46c39b in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler8.rcgu.o)
                "_enif_thread_type", referenced from:
                    rustler::wrapper::nif_interface::enif_thread_type::h81c3f6f013739bbb in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_consume_timeslice", referenced from:
                    rustler::wrapper::nif_interface::enif_consume_timeslice::ha184d07f5b312307 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_cvRetrieveFrame", referenced from:
                    _$LT$rustml..opencv..VideoColorFrameIterator$LT$$u27$q$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$::next::hbe334209a25df91e in librustml-d3fb05b9f6c0a6b6.rlib(rustml-d3fb05b9f6c0a6b6.rustml12.rcgu.o)
                    _$LT$rustml..opencv..VideoGrayFrameIterator$LT$$u27$q$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$::next::h6c267b2fa9c4160a in librustml-d3fb05b9f6c0a6b6.rlib(rustml-d3fb05b9f6c0a6b6.rustml12.rcgu.o)
                "_enif_keep_resource", referenced from:
                    rustler::wrapper::nif_interface::enif_keep_resource::hd75284b0aef49009 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_release_resource", referenced from:
                    rustler::wrapper::nif_interface::enif_release_resource::hb642f7e19700f670 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_resource", referenced from:
                    rustler::wrapper::nif_interface::enif_make_resource::hbad7d65bde6a5dad in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_list_cell", referenced from:
                    rustler::wrapper::nif_interface::enif_make_list_cell::hf39f3dca8bb085fd in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_tuple_from_array", referenced from:
                    rustler::wrapper::nif_interface::enif_make_tuple_from_array::hb51e4a0339fe4b12 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_get_list_cell", referenced from:
                    rustler::wrapper::nif_interface::enif_get_list_cell::hb62677dba88cb2fe in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_map_update", referenced from:
                    rustler::wrapper::nif_interface::enif_make_map_update::h10b2c2af6114c505 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_map_put", referenced from:
                    rustler::wrapper::nif_interface::enif_make_map_put::h966c77161f77e280 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_new_map", referenced from:
                    rustler::wrapper::nif_interface::enif_make_new_map::h8cac0336c768d69d in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_send", referenced from:
                    rustler::wrapper::nif_interface::enif_send::h83f9fb5f9e4723c3 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_map_remove", referenced from:
                    rustler::wrapper::nif_interface::enif_make_map_remove::h1b2537d715f67042 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_get_map_value", referenced from:
                    rustler::wrapper::nif_interface::enif_get_map_value::hfc374949e4db6a8d in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_long", referenced from:
                    erlang_nif_sys::erlang_nif_sys_api::enif_make_int64::hdc6de184646fdb7f in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler3.rcgu.o)
                "_enif_inspect_binary", referenced from:
                    rustler::wrapper::nif_interface::enif_inspect_binary::h1409304cd7f89a26 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_binary", referenced from:
                    rustler::wrapper::nif_interface::enif_make_binary::hc5e34d2cca364b81 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_realloc_binary", referenced from:
                    rustler::wrapper::nif_interface::enif_realloc_binary::h7cf154c07bfc2ef3 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_get_ulong", referenced from:
                    erlang_nif_sys::erlang_nif_sys_api::enif_get_uint64::hc33ff033b39110e6 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler3.rcgu.o)
                "_enif_get_atom_length", referenced from:
                    rustler::wrapper::nif_interface::enif_get_atom_length_latin1::he2ce76a9c52f79f4 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_alloc_resource", referenced from:
                    rustler::wrapper::nif_interface::enif_alloc_resource::h81c206dc5055f0e3 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_reverse_list", referenced from:
                    rustler::wrapper::nif_interface::enif_make_reverse_list::h59e8ab96f78c288f in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_uint", referenced from:
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifEncoder$u20$for$u20$u32$GT$::encode::he7df2086bd0c3988 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifEncoder$u20$for$u20$u8$GT$::encode::hf25b2d43a1bd031d in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifEncoder$u20$for$u20$u16$GT$::encode::h418452dafac0091b in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                "_enif_release_binary", referenced from:
                    rustler::wrapper::nif_interface::enif_release_binary::h84fd590c15b9d9a1 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_is_empty_list", referenced from:
                    rustler::wrapper::nif_interface::enif_is_empty_list::h30e8e2d2af30a513 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_get_atom", referenced from:
                    rustler::wrapper::nif_interface::enif_get_atom_latin1::hbfd53c76ddeb4b80 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_map_iterator_next", referenced from:
                    rustler::wrapper::map::map_iterator_next::habb986007bdd8a3c in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler13.rcgu.o)
                "_enif_make_atom_len", referenced from:
                    rustler::wrapper::nif_interface::enif_make_atom_len::h8d356247fbbaa043 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_is_tuple", referenced from:
                    rustler::wrapper::nif_interface::enif_is_tuple::h40dede98110f861b in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_is_map", referenced from:
                    rustler::wrapper::nif_interface::enif_is_map::h2b42e6319a91c58c in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_is_list", referenced from:
                    rustler::wrapper::nif_interface::enif_is_list::hcf2d2e25d1dc3534 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_is_exception", referenced from:
                    rustler::wrapper::nif_interface::enif_is_exception::h0451a6142eea57f8 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_is_port", referenced from:
                    rustler::wrapper::nif_interface::enif_is_port::h040e215ea3c48662 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_get_resource", referenced from:
                    rustler::wrapper::nif_interface::enif_get_resource::h4c620589cccf5265 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_is_binary", referenced from:
                    rustler::wrapper::nif_interface::enif_is_binary::h000f236ef1c81d2a in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_is_identical", referenced from:
                    rustler::wrapper::nif_interface::enif_is_identical::hbeaba4dcca1d3065 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_compare", referenced from:
                    rustler::wrapper::nif_interface::enif_compare::h920e80a6c25d12f4 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_term_to_binary", referenced from:
                    rustler::wrapper::nif_interface::enif_term_to_binary::h51ac7af8d54fc48c in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_sub_binary", referenced from:
                    rustler::wrapper::nif_interface::enif_make_sub_binary::ha78f86ce055735cf in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_get_uint", referenced from:
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifDecoder$LT$$u27$a$GT$$u20$for$u20$u32$GT$::decode::h31e112579cf862f9 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifDecoder$LT$$u27$a$GT$$u20$for$u20$u8$GT$::decode::h950e08ba1a1f5df7 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifDecoder$LT$$u27$a$GT$$u20$for$u20$u16$GT$::decode::h4848113029f6ba9b in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                "_enif_is_atom", referenced from:
                    rustler::wrapper::nif_interface::enif_is_atom::hfebdb9345455298e in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_copy", referenced from:
                    rustler::wrapper::nif_interface::enif_make_copy::h4e9a65ae251acedb in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_is_fun", referenced from:
                    rustler::wrapper::nif_interface::enif_is_fun::h195aaa8306cefe53 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_get_local_pid", referenced from:
                    rustler::wrapper::pid::get_local_pid::h30a8ed4bf4b5a0b6 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler3.rcgu.o)
                "_enif_make_ulong", referenced from:
                    erlang_nif_sys::erlang_nif_sys_api::enif_make_uint64::h7490de93accbdcfc in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler3.rcgu.o)
                "_enif_map_iterator_destroy", referenced from:
                    rustler::wrapper::map::map_iterator_destroy::h321210459fb98cb0 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler13.rcgu.o)
                "_enif_get_list_length", referenced from:
                    rustler::wrapper::nif_interface::enif_get_list_length::hdb5e72f6a246c749 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_get_double", referenced from:
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifDecoder$LT$$u27$a$GT$$u20$for$u20$f64$GT$::decode::h1864f1dc0275d4f2 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifDecoder$LT$$u27$a$GT$$u20$for$u20$f32$GT$::decode::h635578a6e4106484 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                "_enif_raise_exception", referenced from:
                    rustler::wrapper::nif_interface::enif_raise_exception::h7d7a2bcdc9c08bfd in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_open_resource_type", referenced from:
                    rustler::wrapper::nif_interface::enif_open_resource_type::h96eb75a82f3e1dd1 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_binary_to_term", referenced from:
                    rustler::wrapper::nif_interface::enif_binary_to_term::h37c9f81bd97b9877 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_double", referenced from:
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifEncoder$u20$for$u20$f64$GT$::encode::hcb84bd99cf7a8c00 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifEncoder$u20$for$u20$f32$GT$::encode::hae0cbf59ae2f0589 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                "_enif_make_list_from_array", referenced from:
                    rustler::wrapper::nif_interface::enif_make_list_from_array::hab0320060961184c in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_make_int", referenced from:
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifEncoder$u20$for$u20$i32$GT$::encode::haccf67a9094933a8 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifEncoder$u20$for$u20$i8$GT$::encode::h8caf5df556f25908 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifEncoder$u20$for$u20$i16$GT$::encode::h7727d573f6d9c0b1 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                "_enif_self", referenced from:
                    rustler::types::pid::_$LT$impl$u20$rustler..NifEnv$LT$$u27$a$GT$$GT$::pid::h4405f4c368f824f3 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler15.rcgu.o)
                "_enif_alloc_env", referenced from:
                    rustler::wrapper::nif_interface::enif_alloc_env::h13a6bc24c42fc550 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_is_ref", referenced from:
                    rustler::wrapper::nif_interface::enif_is_ref::hdd3983e7ece7d008 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_free_env", referenced from:
                    _$LT$rustler..env..OwnedEnv$u20$as$u20$core..ops..drop..Drop$GT$::drop::he8456723d0df144d in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler13.rcgu.o)
                "_enif_clear_env", referenced from:
                    rustler::env::OwnedEnv::clear::h49f454d73e905724 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler13.rcgu.o)
                "_cvCreateFileCapture", referenced from:
                    rustml::opencv::Video::from_file::h9ba774d8c8fbba27 in librustml-d3fb05b9f6c0a6b6.rlib(rustml-d3fb05b9f6c0a6b6.rustml12.rcgu.o)
                "_enif_get_long", referenced from:
                    erlang_nif_sys::erlang_nif_sys_api::enif_get_int64::h74ca482c58a7bbf5 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler3.rcgu.o)
                "_enif_get_tuple", referenced from:
                    rustler::wrapper::nif_interface::enif_get_tuple::h8cc3201b96938de0 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_is_pid", referenced from:
                    rustler::wrapper::nif_interface::enif_is_pid::h46c2c40c5a2824a9 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_get_int", referenced from:
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifDecoder$LT$$u27$a$GT$$u20$for$u20$i32$GT$::decode::hb1cd069314a5959a in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifDecoder$LT$$u27$a$GT$$u20$for$u20$i8$GT$::decode::h7f34e41b48704260 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                    rustler::types::primitive::_$LT$impl$u20$rustler..types..NifDecoder$LT$$u27$a$GT$$u20$for$u20$i16$GT$::decode::h51c53622b3ae634b in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler2.rcgu.o)
                "_enif_map_iterator_get_pair", referenced from:
                    rustler::wrapper::map::map_iterator_get_pair::hd5ad0f63f363006f in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler13.rcgu.o)
                "_enif_make_badarg", referenced from:
                    rustler::wrapper::nif_interface::enif_make_badarg::h03217621dffb2d35 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_alloc_binary", referenced from:
                    rustler::wrapper::nif_interface::enif_alloc_binary::h81e4bdf6087fae11 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_get_map_size", referenced from:
                    rustler::wrapper::nif_interface::enif_get_map_size::h27dea043cf390897 in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler5.rcgu.o)
                "_enif_map_iterator_create", referenced from:
                    rustler::wrapper::map::map_iterator_create::hd94efd12d362994d in librustler-77d824b088ad7f3e.rlib(rustler-77d824b088ad7f3e.rustler13.rcgu.o)
              ld: symbol(s) not found for architecture x86_64
              clang: error: linker command failed with exit code 1 (use -v to see invocation)
              
    
    error: aborting due to previous error
    
    error: Could not compile `adlock_dbscan`.
    

    I think this may be more of a Rustler issue. I may try posting over there.

    @daniel-e if this doesn't look like something that could be a rustml issue, please close.

    opened by cdesch 0
  • failure to compile, error: the trait bound `Self: std::marker::Sized` is not satisfied

    failure to compile, error: the trait bound `Self: std::marker::Sized` is not satisfied

    Hey I'm pretty new with rust so this could be a non issue, but I was trying to use this library and test out the example code:

    #[macro_use] extern crate rustml;
    ....
    #[test]
    fn ml_test () {
            let a = mat![
            1.0f32, 2.0;
            3.0, 4.0;
            5.0, 6.0
        ];
            let b = mat![
            5.0, 7.0;
            6.0, 2.0
        ];
            let c = (a * b).unwrap();
    println!("{}", c);
    }
    

    But when I tried running my test I got this exception:

       Compiling rustml v0.0.5
    /home/.../.cargo/registry/src/github.com-1ecc6299db9ec823/rustml-0.0.5/src/opencv/mod.rs:297:5: 297:76 error: the trait bound `Self: std::marker::Sized` is not satisfied [E0277]
    /home/.../.cargo/registry/src/github.com-1ecc6299db9ec823/rustml-0.0.5/src/opencv/mod.rs:297     fn grid(images: &Vec<Self>, cols: usize, space: usize) -> Option<Self>;
                                                                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/.../.cargo/registry/src/github.com-1ecc6299db9ec823/rustml-0.0.5/src/opencv/mod.rs:297:5: 297:76 help: run `rustc --explain E0277` to see a detailed explanation
    /home/.../.cargo/registry/src/github.com-1ecc6299db9ec823/rustml-0.0.5/src/opencv/mod.rs:297:5: 297:76 help: consider adding a `where Self: std::marker::Sized` bound
    /home/.../.cargo/registry/src/github.com-1ecc6299db9ec823/rustml-0.0.5/src/opencv/mod.rs:297:5: 297:76 note: required by `std::vec::Vec`
    error: aborting due to previous error
    error: Could not compile `rustml`.
    
    opened by zeryx 5
Releases(0.0.5)
Owner
Security | Machine Learning | Software Development
null
Machine Learning library for Rust

rusty-machine This library is no longer actively maintained. The crate is currently on version 0.5.4. Read the API Documentation to learn more. And he

James Lucas 1.2k Dec 31, 2022
Machine learning crate for Rust

rustlearn A machine learning package for Rust. For full usage details, see the API documentation. Introduction This crate contains reasonably effectiv

Maciej Kula 547 Dec 28, 2022
Machine learning in Rust.

Rustml Rustml is a library for doing machine learning in Rust. The documentation of the project with a descprition of the modules can be found here. F

null 60 Dec 15, 2022
Rust based Cross-GPU Machine Learning

HAL : Hyper Adaptive Learning Rust based Cross-GPU Machine Learning. Why Rust? This project is for those that miss strongly typed compiled languages.

Jason Ramapuram 83 Dec 20, 2022
Machine Learning Library for Rust

autograph Machine Learning Library for Rust undergoing maintenance Features Portable accelerated compute Run SPIR-V shaders on GPU's that support Vulk

null 223 Jan 1, 2023
Fwumious Wabbit, fast on-line machine learning toolkit written in Rust

Fwumious Wabbit is a very fast machine learning tool built with Rust inspired by and partially compatible with Vowpal Wabbit (much love! read more abo

Outbrain 115 Dec 9, 2022
A Machine Learning Framework for High Performance written in Rust

polarlight polarlight is a machine learning framework for high performance written in Rust. Key Features TBA Quick Start TBA How To Contribute Contrib

Chris Ohk 25 Aug 23, 2022
Example of Rust API for Machine Learning

rust-machine-learning-api-example Example of Rust API for Machine Learning API example that uses resnet224 to infer images received in base64 and retu

vaaaaanquish 16 Oct 3, 2022
High-level non-blocking Deno bindings to the rust-bert machine learning crate.

bertml High-level non-blocking Deno bindings to the rust-bert machine learning crate. Guide Introduction The ModelManager class manages the FFI bindin

Carter Snook 14 Dec 15, 2022
Machine learning Neural Network in Rust

vinyana vinyana - stands for mind in pali language. Goal To implement a simple Neural Network Library in order to understand the maths behind it. This

Alexandru Olaru 3 Dec 26, 2022
Source Code for 'Practical Machine Learning with Rust' by Joydeep Bhattacharjee

Apress Source Code This repository accompanies Practical Machine Learning with Rust by Joydeep Bhattacharjee (Apress, 2020). Download the files as a z

Apress 57 Dec 7, 2022
An example of using TensorFlow rust bindings to serve trained machine learning models via Actix Web

Serving TensorFlow with Actix-Web This repository gives an example of training a machine learning model using TensorFlow2.0 Keras in python, exporting

Kyle Kosic 39 Dec 12, 2022
🏆 A ranked list of awesome machine learning Rust libraries.

best-of-ml-rust ?? A ranked list of awesome machine learning Rust libraries. This curated list contains 180 awesome open-source projects with a total

₸ornike 110 Dec 28, 2022
Machine learning crate in Rust

DeepRust - Machine learning in Rust Vision To create a deeplearning crate in rust aiming to create a great experience for ML researchers & developers

Vigneshwer Dhinakaran 8 Sep 6, 2022
BudouX-rs is a rust port of BudouX (machine learning powered line break organizer tool).

BudouX-rs BudouX-rs is a rust port of BudouX (machine learning powered line break organizer tool). Note: This project contains the deliverables of the

null 5 Jan 20, 2022
Mars is a rust machine learning library. [Goal is to make Simple as possible]

Mars Mars (ma-rs) is an blazingly fast rust machine learning library. Simple and Powerful! ?? ?? Contribution: Feel free to build this project. This i

KoBruh 3 Dec 25, 2022
A machine learning library in Rust from scratch.

Machine Learning in Rust Learn the Rust programming language through implementing classic machine learning algorithms. This project is self-completed

Chi Zuo 39 Jan 17, 2023
Xaynet represents an agnostic Federated Machine Learning framework to build privacy-preserving AI applications.

xaynet Xaynet: Train on the Edge with Federated Learning Want a framework that supports federated learning on the edge, in desktop browsers, integrate

XayNet 196 Dec 22, 2022
The Hacker's Machine Learning Engine

Juice This is the workspace project for juice - machine learning frameworks for hackers coaster - underlying math abstraction coaster-nn coaster-blas

spearow 982 Dec 31, 2022