StatefulInferer

Struct StatefulInferer 

Source
pub struct StatefulInferer<WrapStack: InfererWrapper, Inf: Inferer> { /* private fields */ }
Expand description

An inferer that maintains state in wrappers around an inferer.

This is an alternative to direct wrapping of an inferer, which allows the inner inferer to be swapped out while maintaining state in the wrappers.

Implementations§

Source§

impl<WrapStack: InfererWrapper, Inf: Inferer> StatefulInferer<WrapStack, Inf>

Source

pub fn new(wrapper_stack: WrapStack, inferer: Inf) -> Self

Construct a new StatefulInferer by wrapping the given inferer with the given wrapper stack.

Source

pub fn with_new_inferer<NewInf: Inferer>( self, new_inferer: NewInf, ) -> Result<StatefulInferer<WrapStack, NewInf>, (Self, Error)>

Replace the inner inferer with a new inferer while maintaining any state in wrappers.

Requires that the shapes of the policies are compatible, but they may be different inferer types. If this check fails, will return self unchanged.

Source

pub fn replace_inferer(&mut self, new_inferer: Inf) -> Result<()>

Replace the inner inferer with a new inferer while maintaining any state in wrappers.

Requires that the shapes of the policies are compatible If this check fails, will not change self. Compared to [with_new_inferer], also requires that the new inferer has the same type as the old one.

Source

pub fn check_compatible_shapes<Old: Inferer, New: Inferer>( old: &Old, new: &New, ) -> Result<(), Error>

Validate that [Old] and [New] are compatible with each other.

Source

pub fn input_shapes(&self) -> &[(String, Vec<usize>)]

Returns the input shapes after all wrappers have been applied.

Source

pub fn output_shapes(&self) -> &[(String, Vec<usize>)]

Returns the output shapes after all wrappers have been applied.

Trait Implementations§

Source§

impl<WrapStack: InfererWrapper, Inf: Inferer> Inferer for StatefulInferer<WrapStack, Inf>

See Inferer for documentation.

Source§

fn select_batch_size(&self, max_count: usize) -> usize

Query the inferer for how many elements it can deal with in a single batch.
Source§

fn infer_raw(&self, batch: &mut ScratchPadView<'_>) -> Result<(), Error>

Execute the model on the provided pre-batched data.
Source§

fn raw_input_shapes(&self) -> &[(String, Vec<usize>)]

Retrieve the name and shapes of the model inputs.
Source§

fn raw_output_shapes(&self) -> &[(String, Vec<usize>)]

Retrieve the name and shapes of the model outputs.
Source§

fn begin_agent(&self, id: u64)

Source§

fn end_agent(&self, id: u64)

Source§

fn input_shapes(&self) -> &[(String, Vec<usize>)]

Retrieve the name and shapes of the model inputs. This API only contains the external API, so code-based transforms outside the model are hidden.
Source§

fn output_shapes(&self) -> &[(String, Vec<usize>)]

Retrieve the name and shapes of the model outputs. This API only contains the external API, so code-based transforms outside the model are hidden.

Auto Trait Implementations§

§

impl<WrapStack, Inf> Freeze for StatefulInferer<WrapStack, Inf>
where WrapStack: Freeze, Inf: Freeze,

§

impl<WrapStack, Inf> RefUnwindSafe for StatefulInferer<WrapStack, Inf>
where WrapStack: RefUnwindSafe, Inf: RefUnwindSafe,

§

impl<WrapStack, Inf> Send for StatefulInferer<WrapStack, Inf>
where WrapStack: Send, Inf: Send,

§

impl<WrapStack, Inf> Sync for StatefulInferer<WrapStack, Inf>
where WrapStack: Sync, Inf: Sync,

§

impl<WrapStack, Inf> Unpin for StatefulInferer<WrapStack, Inf>
where WrapStack: Unpin, Inf: Unpin,

§

impl<WrapStack, Inf> UnwindSafe for StatefulInferer<WrapStack, Inf>
where WrapStack: UnwindSafe, Inf: UnwindSafe,

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> InfererExt for T
where T: Inferer,

Source§

fn with_default_epsilon(self, key: &str) -> Result<EpsilonInjector<Self>>

Add an epsilon injector using the default noise kind.
Source§

fn with_epsilon<G: NoiseGenerator>( self, generator: G, key: &str, ) -> Result<EpsilonInjector<Self, G>>

Add an epsilon injector with a specific noise generator.
Source§

fn into_batched(self) -> Batched<Self>

Wrap in a batching interface.
Source§

fn infer( &mut self, observations: HashMap<u64, State<'_>>, ) -> Result<HashMap<u64, Response<'_>>, Error>

👎Deprecated since 0.3.0: Please use the more explicit ‘infer_batch’ instead.
Execute the model on the provided batch of elements.
Source§

fn infer_batch<'this>( &'this self, batch: HashMap<u64, State<'_>>, ) -> Result<HashMap<u64, Response<'this>>, Error>

Execute the model on the provided pre-batched data.
Source§

fn infer_single<'this>( &'this self, input: State<'_>, ) -> Result<Response<'this>, Error>

Execute the model on the provided pre-batched data.
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V