[][src]Crate tract_core

Tract

Tiny, no-nonsense, self contained, portable SharedTensor and ONNX inference.

Example

use tract_core::internal::*;

// build a simple model that just add 3 to each input component
let mut model = InferenceModel::default();

let input = model.add_source_default("input").unwrap();
let three = model.add_const("three".to_string(), 3f32.into()).unwrap();
let add = model.add_node_default("add".to_string(),
    tract_core::ops::math::Add::default(),
    ).unwrap();

model.add_edge(OutletId::new(input, 0), InletId::new(add, 0)).unwrap();
model.add_edge(OutletId::new(three, 0), InletId::new(add, 1)).unwrap();

// we build an execution plan. default input and output are inferred from
// the model graph
let plan = SimplePlan::new(&model).unwrap();

// run the computation.
let input = ndarray::arr1(&[1.0f32, 2.5, 5.0]);
let mut outputs = plan.run(tvec![input.into()]).unwrap();

// take the first and only output tensor
let mut tensor = outputs.pop().unwrap();

// unwrap it as array of f32
let tensor = tensor.to_array_view::<f32>().unwrap();
assert_eq!(tensor, ndarray::arr1(&[4.0, 5.5, 8.0]).into_dyn());

While creating a model from Rust code is usefull for testing the library, real-life use-cases will usually load a TensorFlow or ONNX model using tract-tensorflow or tract-onnx crates.

Re-exports

pub extern crate error_chain;
pub extern crate ndarray;
pub use crate::errors::*;

Modules

analyser
broadcast
datum

Tensor is the equivalent of SharedTensor Tensor.

dim
errors

error_chain generated types

framework
internal

This prelude is meant for code extending tract (like implementing new ops).

macros
model
ops

Ops

plan
prelude

This prelude is meant for code using tract.

pulse
tensor

Tensor and SharedTensor

Macros

args_1
args_2
args_3
args_4
args_5
assert_backward

Asserts that backward inference results work as expected.

assert_close
assert_forward

Asserts that forward inference results work as expected.

boxed_new
dimfact

Constructs a dimension fact.

dispatch_copy
dispatch_datum
dispatch_floatlike
dispatch_numbers
element_bin
element_map_with_params
impl_op_same_as
shapefact

Constructs a shape fact.

tvec
typefact

Constructs a type fact.

unwrap_or_none

Tries to unwrap an option, or returns Ok(None) otherwise.

valuefact

Constructs an value fact.

wrap

Traits

ToTract
Tractify

Functions

setup_test_logger