[−][src]Trait tract_core::ops::Op
A base operation
Required methods
Loading content...Provided methods
fn incorporate(
&self,
_model: &InferenceModel,
_node: &InferenceNode
) -> TractResult<Option<InferenceModelPatch>>
&self,
_model: &InferenceModel,
_node: &InferenceNode
) -> TractResult<Option<InferenceModelPatch>>
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.
Called after succesful analyse, but before translating to typed model.
fn fuse(
&self,
_model: &TypedModel,
_node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
&self,
_model: &TypedModel,
_node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
Fuse op after codegen to deal with local optimisations.
fn nested_models(&self) -> Vec<(Cow<str>, &dyn Model)>
Nested models, with label (for audit).
fn validation(&self) -> Validation
The kind of accuracy check that should be performed on operation when testing them.
fn same_as(&self, _other: &dyn Op) -> bool
Compare two ops.
fn info(&self) -> TractResult<Vec<String>>
Short (one-line) strings giving hints on internal implementation or important configuration details to be displayed in dumps.
fn as_pulsed(&self) -> Option<&dyn PulsedOp>
fn is_canonic(&self) -> bool
Methods
impl dyn Op
pub fn is<__T: Op>(&self) -> bool
Returns true if the trait object wraps an object of type __T.
pub fn downcast<__T: Op>(self: Box<Self>) -> Result<Box<__T>, Box<Self>>
Returns a boxed object from a boxed trait object if the underlying object is of type
__T. Returns the original boxed trait if it isn't.
pub fn downcast_rc<__T: Op>(self: Rc<Self>) -> Result<Rc<__T>, Rc<Self>>
Returns an Rc-ed object from an Rc-ed trait object if the underlying object is of
type __T. Returns the original Rc-ed trait if it isn't.
pub fn downcast_ref<__T: Op>(&self) -> Option<&__T>
Returns a reference to the object within the trait object if it is of type __T, or
None if it isn't.
pub fn downcast_mut<__T: Op>(&mut self) -> Option<&mut __T>
Returns a mutable reference to the object within the trait object if it is of type
__T, or None if it isn't.
Trait Implementations
impl AsRef<dyn Op + 'static> for dyn InferenceOp[src]
impl AsRef<dyn Op + 'static> for Box<dyn InferenceOp>[src]
impl AsRef<dyn Op + 'static> for dyn TypedOp[src]
impl AsRef<dyn Op + 'static> for Box<dyn TypedOp>[src]
impl AsRef<dyn Op + 'static> for dyn PulsedOp[src]
impl AsRef<dyn Op + 'static> for Box<dyn PulsedOp>[src]
impl AsMut<dyn Op + 'static> for dyn InferenceOp[src]
impl AsMut<dyn Op + 'static> for Box<dyn InferenceOp>[src]
impl AsMut<dyn Op + 'static> for dyn TypedOp[src]
impl AsMut<dyn Op + 'static> for Box<dyn PulsedOp>[src]
impl AsMut<dyn Op + 'static> for dyn PulsedOp[src]
impl AsMut<dyn Op + 'static> for Box<dyn TypedOp>[src]
Implementors
impl Op for AddDims[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Concat[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for ConstantLike[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for ConstantOfShape[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Crop[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for EyeLike[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Flatten[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Gather[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for MultiBroadcastTo[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Pad[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for PermuteAxes[src]
fn name(&self) -> Cow<str>[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Reshape[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for RmDims[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Shape[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Size[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Split[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Squeeze[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for StridedSlice[src]
impl Op for Tile[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for TypedMultiBroadcastTo[src]
fn name(&self) -> Cow<str>[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for TypedReshape[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for InferenceBinOp[src]
fn name(&self) -> Cow<str>[src]
fn validation(&self) -> Validation[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for MergeOp[src]
fn name(&self) -> Cow<str>[src]
fn validation(&self) -> Validation[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for MergeOpUnicast[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Nary[src]
fn name(&self) -> Cow<str>[src]
fn validation(&self) -> Validation[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for TypedBinOp[src]
fn name(&self) -> Cow<str>[src]
fn validation(&self) -> Validation[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for UnaryOp[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn validation(&self) -> Validation[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Cast[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for AvgPool[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn validation(&self) -> Validation[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Conv[src]
fn name(&self) -> Cow<str>[src]
fn validation(&self) -> Validation[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for ConvUnary[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for MaxPool[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Downsample[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn same_as(&self, other: &dyn Op) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Dummy[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for ElementWiseOp[src]
fn name(&self) -> Cow<str>[src]
fn validation(&self) -> Validation[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Identity[src]
fn name(&self) -> Cow<str>[src]
fn fuse(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Const[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Iff[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for MatMul[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for MatMulUnary[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for ArgMaxMin[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for GlobalAvgPool[src]
fn name(&self) -> Cow<str>[src]
fn validation(&self) -> Validation[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for GlobalLpPool[src]
fn name(&self) -> Cow<str>[src]
fn validation(&self) -> Validation[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for GlobalMaxPool[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for LayerHardmax[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for LayerLogSoftmax[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn validation(&self) -> Validation[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for LayerSoftmax[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn validation(&self) -> Validation[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Lrn[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Reduce[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Inference[src]
fn name(&self) -> Cow<str>[src]
fn nested_models(&self) -> Vec<(Cow<str>, &dyn Model)>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Typed[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn nested_models(&self) -> Vec<(Cow<str>, &dyn Model)>[src]
fn validation(&self) -> Validation[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for PulsedSource[src]
fn name(&self) -> Cow<str>[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Source[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for TypedSource[src]
fn name(&self) -> Cow<str>[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for UnimplementedOp[src]
fn name(&self) -> Cow<str>[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl Op for Delay[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn is_canonic(&self) -> bool[src]
fn same_as(&self, other: &dyn Op) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl<D: DimLike + ToDim> Op for Slice<D>[src]
fn name(&self) -> Cow<str>[src]
fn info(&self) -> TractResult<Vec<String>>[src]
fn is_canonic(&self) -> bool[src]
fn as_typed(&self) -> Option<&dyn TypedOp>[src]
fn as_pulsed(&self) -> Option<&dyn PulsedOp>[src]
impl<T> Op for MatMatMulPackB<T> where
T: Copy + Datum + Add + Mul + Zero + FloatLike, [src]
T: Copy + Datum + Add + Mul + Zero + FloatLike,