pub struct Switch;Implementations
Trait Implementations
sourceimpl InferenceRulesOp for Switch
impl InferenceRulesOp for Switch
sourcefn rules<'r, 'p: 'r, 's: 'r>(
&'s self,
s: &mut Solver<'r>,
inputs: &'p [TensorProxy],
outputs: &'p [TensorProxy]
) -> InferenceResult
fn rules<'r, 'p: 'r, 's: 'r>(
&'s self,
s: &mut Solver<'r>,
inputs: &'p [TensorProxy],
outputs: &'p [TensorProxy]
) -> InferenceResult
Registers the inference rules of the operator.
fn incorporate(
&self,
model: &InferenceModel,
node: &InferenceNode
) -> TractResult<Option<InferenceModelPatch>>
fn nboutputs(&self) -> TractResult<usize>
fn as_op(&self) -> &dyn Op
fn as_op_mut(&mut self) -> &mut dyn Op
fn to_typed(
&self,
source: &Graph<InferenceFact, Box<dyn InferenceOp + 'static, Global>>,
node: &Node<InferenceFact, Box<dyn InferenceOp + 'static, Global>>,
target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
mapping: &HashMap<OutletId, OutletId, RandomState>
) -> Result<SmallVec<[OutletId; 4]>, Error>
sourceimpl Op for Switch
impl Op for Switch
fn name(&self) -> Cow<'_, str>
sourcefn op_families(&self) -> &'static [&'static str]
fn op_families(&self) -> &'static [&'static str]
Vector of short strings defining what families the op belongs too. tract-core defines “core”, “mir”, “lir”. Read more
fn as_typed(&self) -> Option<&dyn TypedOp>
fn validation(&self) -> Validation
fn validation(&self) -> Validation
The kind of accuracy check that should be performed on operation when testing them. Read more
Auto Trait Implementations
impl RefUnwindSafe for Switch
impl Send for Switch
impl Sync for Switch
impl Unpin for Switch
impl UnwindSafe for Switch
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<W, Global>impl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<W, Global>impl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
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. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
fn as_any(&self) -> &(dyn Any + 'static)
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. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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. Read more
sourceimpl<O> InferenceOp for O where
O: InferenceRulesOp + Op,
impl<O> InferenceOp for O where
O: InferenceRulesOp + Op,
sourcefn infer_facts(
&mut self,
inputs: SmallVec<[&InferenceFact; 4]>,
outputs: SmallVec<[&InferenceFact; 4]>,
observed: SmallVec<[&InferenceFact; 4]>
) -> Result<(SmallVec<[InferenceFact; 4]>, SmallVec<[InferenceFact; 4]>, SmallVec<[InferenceFact; 4]>), Error>
fn infer_facts(
&mut self,
inputs: SmallVec<[&InferenceFact; 4]>,
outputs: SmallVec<[&InferenceFact; 4]>,
observed: SmallVec<[&InferenceFact; 4]>
) -> Result<(SmallVec<[InferenceFact; 4]>, SmallVec<[InferenceFact; 4]>, SmallVec<[InferenceFact; 4]>), Error>
Infer properties about inputs and output tensors. This method does not need to deal with the “trivial” stateless op with fully determined inputs cases. Read more
fn nboutputs(&self) -> Result<usize, Error>
sourcefn observe_outlets(
&self,
_model: &Graph<InferenceFact, Box<dyn InferenceOp + 'static, Global>>,
_node: &Node<InferenceFact, Box<dyn InferenceOp + 'static, Global>>
) -> Result<Vec<OutletId, Global>, Error>
fn observe_outlets(
&self,
_model: &Graph<InferenceFact, Box<dyn InferenceOp + 'static, Global>>,
_node: &Node<InferenceFact, Box<dyn InferenceOp + 'static, Global>>
) -> Result<Vec<OutletId, Global>, Error>
Allow an op to specify a supplementary list of outlets facts that will trigger inference again. Read more
sourcefn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
Reinterpret the InferenceOp as an Op, mutably.
sourcefn to_typed(
&self,
source: &Graph<InferenceFact, Box<dyn InferenceOp + 'static, Global>>,
node: &Node<InferenceFact, Box<dyn InferenceOp + 'static, Global>>,
target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
mapping: &HashMap<OutletId, OutletId, RandomState>
) -> Result<SmallVec<[OutletId; 4]>, Error>
fn to_typed(
&self,
source: &Graph<InferenceFact, Box<dyn InferenceOp + 'static, Global>>,
node: &Node<InferenceFact, Box<dyn InferenceOp + 'static, Global>>,
target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
mapping: &HashMap<OutletId, OutletId, RandomState>
) -> Result<SmallVec<[OutletId; 4]>, Error>
Called during translation to TypedModel.
sourcefn incorporate(
&self,
model: &Graph<InferenceFact, Box<dyn InferenceOp + 'static, Global>>,
node: &Node<InferenceFact, Box<dyn InferenceOp + 'static, Global>>
) -> Result<Option<ModelPatch<InferenceFact, Box<dyn InferenceOp + 'static, Global>>>, Error>
fn incorporate(
&self,
model: &Graph<InferenceFact, Box<dyn InferenceOp + 'static, Global>>,
node: &Node<InferenceFact, Box<dyn InferenceOp + 'static, Global>>
) -> Result<Option<ModelPatch<InferenceFact, Box<dyn InferenceOp + 'static, Global>>>, Error>
Early pass on inference model, after analyse, but before translation to typed network. Meant to deal with some framework idiosyncrasies that manifest with temporaries nodes that can run some form of inference but require refactoring the network before it can be evaluated. Read more
sourcefn infer(
&mut self,
inputs: SmallVec<[&InferenceFact; 4]>,
outputs: SmallVec<[&InferenceFact; 4]>,
observed: SmallVec<[&InferenceFact; 4]>
) -> Result<(SmallVec<[InferenceFact; 4]>, SmallVec<[InferenceFact; 4]>, SmallVec<[InferenceFact; 4]>), Error>
fn infer(
&mut self,
inputs: SmallVec<[&InferenceFact; 4]>,
outputs: SmallVec<[&InferenceFact; 4]>,
observed: SmallVec<[&InferenceFact; 4]>
) -> Result<(SmallVec<[InferenceFact; 4]>, SmallVec<[InferenceFact; 4]>, SmallVec<[InferenceFact; 4]>), Error>
Infers properties about the input and output tensors. Read more