Trait tract_core::ops::TypedOp [−][src]
Required methods
fn as_op(&self) -> &dyn Op
[src]
Reinterpret the TypedOp as an Op.
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
Reinterpret the TypedOp as an Op, mutably.
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
Deduce output facts from input facts.
Provided methods
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn fuse(
&self,
_model: &TypedModel,
_node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
_model: &TypedModel,
_node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
Fuse op after codegen to deal with local optimisations.
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
Declutter the op to the tract_core operator set as much as possible.
fn cost(&self, _inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
[src]
Computes a cost hint of the operation.
Each pair is a type of operation and a number per call on eval.
fn suggested_axis_changes(&self) -> TractResult<TVec<(InOut, AxisOp)>>
[src]
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn slice_output(
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
fn quantize(
&self,
model: &TypedModel,
node: &TypedNode,
dt: DatumType,
scale: f32,
zero_point: i32
) -> TractResult<Option<Box<dyn TypedOp>>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
dt: DatumType,
scale: f32,
zero_point: i32
) -> TractResult<Option<Box<dyn TypedOp>>>
Transforms the op in an equivalent one, operating on dt (i8 or u8).
Returns None if the op can not be translated.
fn concretize_dims(
&self,
source: &TypedModel,
node: &TypedNode,
target: &mut TypedModel,
mapping: &HashMap<OutletId, OutletId>,
values: &SymbolValues
) -> TractResult<TVec<OutletId>>
[src]
&self,
source: &TypedModel,
node: &TypedNode,
target: &mut TypedModel,
mapping: &HashMap<OutletId, OutletId>,
values: &SymbolValues
) -> TractResult<TVec<OutletId>>
Transform the op into by providing a value to one or more symbols.
fn codegen(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
Translate the op into the most efficient form possible for execution.
This transformation is supposed to be final, no more pass are expected to be run on the codegen networks.
fn nested_model_multipliers(
&self,
inputs: &[&TypedFact]
) -> Vec<(Cow<'_, str>, f64)>ⓘ
[src]
&self,
inputs: &[&TypedFact]
) -> Vec<(Cow<'_, str>, f64)>ⓘ
Nested model multipliers, with label (for profiling).
Trait Implementations
Implementors
impl TypedOp for AxisOp
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn invariants(
&self,
_model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
_model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn suggested_axis_changes(&self) -> TractResult<TVec<(InOut, AxisOp)>>
[src]
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn concretize_dims(
&self,
_source: &TypedModel,
node: &TypedNode,
target: &mut TypedModel,
mapping: &HashMap<OutletId, OutletId>,
values: &SymbolValues
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &TypedModel,
node: &TypedNode,
target: &mut TypedModel,
mapping: &HashMap<OutletId, OutletId>,
values: &SymbolValues
) -> TractResult<TVec<OutletId>>
impl TypedOp for ConstantOfShape
[src]
fn output_facts(&self, _inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for FiniteReshape
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for Gather
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
impl TypedOp for MultiBroadcastTo
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn concretize_dims(
&self,
_source: &TypedModel,
node: &TypedNode,
target: &mut TypedModel,
mapping: &HashMap<OutletId, OutletId>,
values: &SymbolValues
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &TypedModel,
node: &TypedNode,
target: &mut TypedModel,
mapping: &HashMap<OutletId, OutletId>,
values: &SymbolValues
) -> TractResult<TVec<OutletId>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for OneHot
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for Pad
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
impl TypedOp for Slice
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn slice_output(
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for Tile
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
impl TypedOp for TypedConcat
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn slice_output(
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
impl TypedOp for MergeOpUnicast
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn cost(&self, inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
[src]
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for TypedBinOp
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn cost(&self, inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
[src]
fn slice_output(
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn codegen(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for UnaryOp
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn slice_output(
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
fn cost(&self, inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
[src]
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for ConvUnary
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn cost(&self, inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
[src]
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn codegen(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for Im2Col
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
impl TypedOp for MaxPool
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn codegen(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for SumPool
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn codegen(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for Downsample
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for Dummy
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, _inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
impl TypedOp for ElementWiseOp
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn cost(&self, inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
[src]
fn quantize(
&self,
_model: &TypedModel,
_node: &TypedNode,
dt: DatumType,
scale: f32,
zero_point: i32
) -> TractResult<Option<Box<dyn TypedOp>>>
[src]
&self,
_model: &TypedModel,
_node: &TypedNode,
dt: DatumType,
scale: f32,
zero_point: i32
) -> TractResult<Option<Box<dyn TypedOp>>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for Identity
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn fuse(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for Const
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, _inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
impl TypedOp for Iff
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
impl TypedOp for LirMatMulUnary
[src]
fn output_facts(&self, _inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn cost(&self, _inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
[src]
fn fuse(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for MatMul
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn cost(&self, inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for QMatMul
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn cost(&self, inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for MatMulUnary
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn slice_output(
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
patch: &mut TypedModelPatch,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> TractResult<Option<OutletId>>
fn cost(&self, inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
[src]
fn codegen(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for MatMatMulPack
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for Reduce
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
impl TypedOp for DequantizeLinearF32
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn declutter(
&self,
model: &TypedModel,
dequant: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
dequant: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for LirScan
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
impl TypedOp for Scan
[src]
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn invariants(
&self,
_model: &TypedModel,
_node: &TypedNode
) -> TractResult<Invariants>
[src]
&self,
_model: &TypedModel,
_node: &TypedNode
) -> TractResult<Invariants>
fn change_axes(
&self,
_model: &TypedModel,
_node: &TypedNode,
io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
_model: &TypedModel,
_node: &TypedNode,
io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn concretize_dims(
&self,
_source: &TypedModel,
node: &TypedNode,
target: &mut TypedModel,
mapping: &HashMap<OutletId, OutletId>,
values: &SymbolValues
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &TypedModel,
node: &TypedNode,
target: &mut TypedModel,
mapping: &HashMap<OutletId, OutletId>,
values: &SymbolValues
) -> TractResult<TVec<OutletId>>
fn codegen(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
impl TypedOp for TypedSource
[src]
fn output_facts(&self, _inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]
&self,
model: &TypedModel,
node: &TypedNode,
_io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
fn concretize_dims(
&self,
_source: &TypedModel,
node: &TypedNode,
target: &mut TypedModel,
_mapping: &HashMap<OutletId, OutletId>,
values: &SymbolValues
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &TypedModel,
node: &TypedNode,
target: &mut TypedModel,
_mapping: &HashMap<OutletId, OutletId>,
values: &SymbolValues
) -> TractResult<TVec<OutletId>>