mli

Crates.iomli
lib.rsmli
version0.11.0
sourcesrc
created_at2016-11-03 18:52:04.968965
updated_at2019-08-28 04:57:50.880099
descriptionMachine Learning Interface for Rust
homepage
repositoryhttps://github.com/vadixidav/mli
max_upload_size
id7126
size14,969
Geordon Worley (vadixidav)

documentation

https://docs.rs/mli/

README

mli

MLI intends to provide modern, data-driven abstractions for machine learning.

MLI provides traits that work much like Combine's Parser, Serde's Serialize and Deserialize, std's Iterator, and future's Future and Stream. One should only need to have to create tensor processing primitives and then string them together to craft a large system that continues to be useful as a primitive in an even larger system.

Core Crates

  • mli
    • Core crate with traits
    • Works with #![no_std]
  • mli-relu
    • Contains linear activation functions
    • Doesn't work with #![no_std] (blocked by this)
  • mli-sigmoid
    • Contains sigmoid activation functions
    • Doesn't work with #![no_std] (blocked by this)
  • mli-conv
    • Contains convolution implementations
  • mli-ndarray
    • Allows interoperability between mli and ndarray
      • Mapping activation functions over tensors

Goals

  • Fast CPU forwards and backwards propogation.
  • Abstraction over multiple backends.
  • Automatic serialization/deserialization derivations of all state data (using serde).
  • Get complete reuse out of tensor code without any overhead for abstractions.
  • Allow building tensor pipelines that can talk over streams to allow multi-node setups.
    • It is a non-goal to implement the orchestration of these pipelines in this crate.

Const Generics

This API is completely usable in its current form, but once const generics are working and stable, this API will be updated to account for tensor dimensionality at compile time. This likely wont affect the core mli crate, but it will affect the associated types used in several of the other core crates.

Commit count: 134

cargo fmt