InferInput

Struct InferInput 

Source
pub struct InferInput {
    pub input_name: String,
    pub input_shape: Vec<usize>,
    pub input_data: DataType,
}
Expand description

Represents a single input tensor for inference requests.

InferInput bundles together:

  • the input name (as expected by the model),
  • the input shape (tensor dimensions),
  • and the input data (wrapped in DataType).

§Examples

Creating manually:

use truston::client::io::{InferInput, DataType};

let input = InferInput::new(
    "input_tensor".into(),
    vec![2, 2],
    DataType::F32(vec![0.1, 0.2, 0.3, 0.4]),
);
assert_eq!(input.input_shape, vec![2, 2]);

Creating directly from an ndarray:

use ndarray::array;
use truston::client::io::InferInput;

let arr = array![[1.0f32, 2.0], [3.0, 4.0]].into_dyn();
let input = InferInput::from_ndarray("matrix_input", arr);
assert_eq!(input.input_shape, vec![2, 2]);

§Notes

  • MVP1: only ArrayD<T> with Vec<T>: IntoInferData is supported.
  • MVP2: future versions may support zero-copy or borrowed buffers for better performance.

Fields§

§input_name: String§input_shape: Vec<usize>§input_data: DataType

Implementations§

Source§

impl InferInput

Source

pub fn new( input_name: String, input_shape: Vec<usize>, input_data: DataType, ) -> Self

Examples found in repository?
examples/random_tensor.rs (line 7)
5fn main() {
6    let dummy_input = DataType::F32(vec![5.0, 5.0, 5.0]);
7    let _input = InferInput::new("input_0".into(), vec![1, 3], dummy_input);
8}
Source

pub fn from_ndarray<T>(name: impl Into<String>, arr: ArrayD<T>) -> Self
where T: Clone + 'static, Vec<T>: IntoInferData,

Examples found in repository?
examples/ndarray_coba.rs (line 9)
5fn main() {
6    // bikin tensor shape (2,10) → 2x10 matrix
7    let arr: ArrayD<f32> = ArrayD::zeros(IxDyn(&[2, 10]));
8
9    let infer_input = InferInput::from_ndarray("dynamic_input", arr);
10
11    println!("{:#?}", infer_input.input_data);
12}
More examples
Hide additional examples
examples/infer_test.rs (line 10)
8async fn run_infer(client: Arc<TritonRestClient>) -> Result<(), TrustonError> {
9    let arr_ids: ArrayD<i64> = ArrayD::zeros(IxDyn(&[32, 128]));
10    let input_ids = InferInput::from_ndarray("input_ids", arr_ids);
11
12    let arr_attention_mask: ArrayD<i64> = ArrayD::zeros(IxDyn(&[32, 128]));
13    let input_attention_mask = InferInput::from_ndarray("attention_mask", arr_attention_mask);
14
15    let inputs = vec![input_ids, input_attention_mask];
16
17    let _ = client.infer(inputs, "hierarchical_clf").await?;
18    Ok(())
19}

Trait Implementations§

Source§

impl Debug for InferInput

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,