[−][src]Trait tract_core::ops::TypedOp
Required methods
fn as_op(&self) -> &dyn Op
Reinterpret the TypedOp as an Op.
fn as_op_mut(&mut self) -> &mut dyn Op
Reinterpret the TypedOp as an Op, mutably.
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
Deduce output facts from input facts.
Provided methods
fn invariants(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Invariants>
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 declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
&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)>>
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)>>
fn change_axes(
&self,
model: &TypedModel,
node: &TypedNode,
io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
&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>>
&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>>>
&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 pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
_target: &mut PulsedModel,
_mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
_target: &mut PulsedModel,
_mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
Translate an op in a normalized network (no constants) to a pulsing form, if possible.
fn codegen(
&self,
_model: &TypedModel,
_node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
&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>, f32)>
&self,
inputs: &[&TypedFact]
) -> Vec<(Cow<str>, f32)>
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 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 pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
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 Flatten
[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 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]
impl TypedOp for MultiBroadcastTo
[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 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>>
fn pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
impl TypedOp for Shape
[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 Size
[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 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 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 pulsify(
&self,
source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
impl TypedOp for TypedReshape
[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 codegen(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
impl TypedOp for MergeOp
[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 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 codegen(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
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 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 declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
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 pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for AvgPool
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn pulsify(
&self,
source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
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 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 pulsify(
&self,
source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
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 MaxPool
[src]
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
[src]
fn pulsify(
&self,
source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
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 pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
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 pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
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 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 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 pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
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 ArgMaxMin
[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 GlobalAvgPool
[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 GlobalLpPool
[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 GlobalMaxPool
[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 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>>
fn pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
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 declutter(
&self,
model: &TypedModel,
dequant: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]
&self,
model: &TypedModel,
dequant: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for TypedScan
[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 pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
fn nested_model_multipliers(
&self,
inputs: &[&TypedFact]
) -> Vec<(Cow<str>, f32)>
[src]
&self,
inputs: &[&TypedFact]
) -> Vec<(Cow<str>, f32)>
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 pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
_mapping: &HashMap<OutletId, OutletId>,
pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
_mapping: &HashMap<OutletId, OutletId>,
pulse: usize
) -> TractResult<TVec<OutletId>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl TypedOp for Delay
[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 cost(&self, _inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
[src]
impl<D: DimLike + ToDim> TypedOp for Slice<D>
[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 pulsify(
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
[src]
&self,
_source: &NormalizedModel,
node: &NormalizedNode,
target: &mut PulsedModel,
mapping: &HashMap<OutletId, OutletId>,
_pulse: usize
) -> TractResult<TVec<OutletId>>
fn as_op(&self) -> &dyn Op
[src]
fn as_op_mut(&mut self) -> &mut dyn Op
[src]
impl<T> TypedOp for MatMatMulPackB<T> where
T: Copy + Datum + Zero,
[src]
T: Copy + Datum + Zero,