zyx

Crates.iozyx
lib.rszyx
version0.12.1
sourcesrc
created_at2022-09-25 16:50:40.696238
updated_at2024-03-21 16:36:53.731951
descriptionZyx machine learning library
homepagehttps://github.com/zk4x/zyx
repositoryhttps://github.com/zk4x/zyx
max_upload_size
id673726
size2,467
(zk4x)

documentation

https://docs.rs/zyx

README

Zyx

Zyx is machine learning library written in Rust.

For README and source code, please visit github.

Just a quick taste:

cargo add zyx-opencl;
cargo add zyx-optim;
cargo add zyx-nn;
let dev = zyx_opencl::device()?;

let l0 = dev.linear(3, 1024);
let l1 = dev.linear(1024, 2);

let x = dev.tensor([2, 3, 1]).cast(DType::F32);
let target = dev.tensor([2, 4]);

let mut optim = zyx_optim::SGD {
    learning_rate: 0.01,
    momentum: 0.9,
    nesterov: true,
    ..Default::default()
};

let train_steps = 100;
for _ in 0..train_steps {
    let y = l0.forward(&x).relu();
    let y = l1.forward(&y).sigmoid();
    let loss = y.mse_loss(&target):
    loss.backward(l0.into_iter().chain(l1.into_iter()));
    optim.update(l0.into_iter().chain(l1.into_iter()));
}

l0.into_iter().chain(l1.into_iter()).save("my_net.safetensors");

For more details, there is a book.

Commit count: 139

cargo fmt