2个不稳定版本
0.1.0 | 2023年6月15日 |
---|---|
0.0.5 | 2023年4月15日 |
0.0.4 |
|
#589 in WebAssembly
2MB
591 行
简介
此库提供了一些方便且安全的包装API,用于替换不安全的wasi-nn API。
[dependencies]
wasi-nn-safe = "0.1"
快速开始
use wasi_nn_safe::{ExecutionTarget, GraphBuilder, GraphEncoding, TensorType};
fn test(model_path: &'static str) -> Result<(), wasi_nn_safe::Error> {
// prepare input and output buffer.
let input = vec![0f32; 224 * 224 * 3];
let input_dim = vec![1, 224, 224, 3];
// the input and output buffer can be any sized type, such as u8, f32, etc.
let mut output_buffer = vec![0f32; 1001];
// build a tflite graph from file.
let graph = GraphBuilder::new(GraphEncoding::TensorflowLite, ExecutionTarget::CPU)
.build_from_files([model_path])?;
// init graph execution context for this graph.
let mut ctx = graph.init_execution_context()?;
// set input
ctx.set_input(0, TensorType::F32, &input_dim, &input)?;
// do inference
ctx.compute()?;
// copy output to buffer
let output_bytes = ctx.get_output(0, &mut output_buffer)?;
assert_eq!(output_bytes, output_buffer.len() * std::mem::size_of::<f32>());
Ok(())
}
注意
此crate是实验性的,将根据上游wasi-nn规范进行更改。
当前版本基于git提交 0f77c48ec195748990ff67928a4b3eef5f16c2de
相关链接
许可
本项目采用Apache 2.0许可。有关详细信息,请参阅LICENSE。