Crates.io | rhai-ml |
lib.rs | rhai-ml |
version | 0.1.2 |
source | src |
created_at | 2023-04-12 23:52:47.757809 |
updated_at | 2024-02-09 16:36:29.079119 |
description | Machine learning in the Rhai scripting language |
homepage | https://github.com/rhaiscript/rhai-ml |
repository | https://github.com/rhaiscript/rhai-ml |
max_upload_size | |
id | 837579 |
size | 36,440 |
rhai-ml
This crate provides some basic machine learning and artificial intelligence utilities for the Rhai
scripting language. For a complete API reference, check the docs.
To use the latest released version of rhai-ml
, add this to your Cargo.toml
:
rhai-ml = "0.1.2"
To use the bleeding edge instead, add this:
rhai-ml = { git = "https://github.com/cmccomb/rhai-ml" }
Using this crate is pretty simple! If you just want to evaluate a single line of Rhai
, then you only need:
use rhai::FLOAT;
use rhai_ml::eval;
let result = eval::<FLOAT>("\
let xdata = [[1.0, 2.0], [2.0, 3.0], [3.0, 4.0]]; \
let ydata = [1.0, 2.0, 3.0]; \
let model = train(xdata, ydata, \"linear\"); \
let ypred = predict(xdata, model);
ypred[0]
").unwrap();
If you need to use rhai-ml
as part of a persistent Rhai
scripting engine, then do this instead:
use rhai::{Engine, packages::Package, FLOAT};
use rhai_ml::MLPackage;
// Create a new Rhai engine
let mut engine = Engine::new();
// Add the rhai-ml package to the new engine
engine.register_global_module(MLPackage::new().as_shared_module());
// Now run your code
let value = engine.eval::<FLOAT>("\
let xdata = [[1.0, 2.0], [2.0, 3.0], [3.0, 4.0]]; \
let ydata = [1.0, 2.0, 3.0]; \
let model = train(xdata, ydata, \"linear\"); \
let ypred = predict(xdata, model);
ypred[0]
").unwrap();
Feature | Default | Description |
---|---|---|
metadata |
Disabled | Enables exporting function metadata and is necessary for running doc-tests on Rhai examples. |