Trait tract_core::ops::TypedOp[][src]

pub trait TypedOp: Op + Debug + DynClone + Send + Sync + 'static + Downcast + EvalOp + DynHash {
    fn as_op(&self) -> &dyn Op;
fn as_op_mut(&mut self) -> &mut dyn Op;
fn output_facts(
        &self,
        inputs: &[&TypedFact]
    ) -> TractResult<TVec<TypedFact>>; fn invariants(
        &self,
        model: &TypedModel,
        node: &TypedNode
    ) -> TractResult<Invariants> { ... }
fn fuse(
        &self,
        _model: &TypedModel,
        _node: &TypedNode
    ) -> TractResult<Option<TypedModelPatch>> { ... }
fn declutter(
        &self,
        model: &TypedModel,
        node: &TypedNode
    ) -> TractResult<Option<TypedModelPatch>> { ... }
fn cost(&self, _inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>> { ... }
fn suggested_axis_changes(&self) -> TractResult<TVec<(InOut, AxisOp)>> { ... }
fn change_axes(
        &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>> { ... }
fn quantize(
        &self,
        model: &TypedModel,
        node: &TypedNode,
        dt: DatumType,
        scale: f32,
        zero_point: i32
    ) -> TractResult<Option<Box<dyn TypedOp>>> { ... }
fn concretize_dims(
        &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>> { ... }
fn nested_model_multipliers(
        &self,
        inputs: &[&TypedFact]
    ) -> Vec<(Cow<'_, str>, f64)>

Notable traits for Vec<u8, A>

impl<A> Write for Vec<u8, A> where
    A: Allocator
{ ... } }

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.

Loading content...

Provided methods

fn invariants(
    &self,
    model: &TypedModel,
    node: &TypedNode
) -> TractResult<Invariants>
[src]

fn fuse(
    &self,
    _model: &TypedModel,
    _node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]

Fuse op after codegen to deal with local optimisations.

fn declutter(
    &self,
    model: &TypedModel,
    node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]

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]

fn slice_output(
    &self,
    model: &TypedModel,
    node: &TypedNode,
    patch: &mut TypedModelPatch,
    output_slot: usize,
    axis: usize,
    start: usize,
    end: usize
) -> TractResult<Option<OutletId>>
[src]

fn quantize(
    &self,
    model: &TypedModel,
    node: &TypedNode,
    dt: DatumType,
    scale: f32,
    zero_point: i32
) -> TractResult<Option<Box<dyn TypedOp>>>
[src]

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]

Transform the op into by providing a value to one or more symbols.

fn codegen(
    &self,
    model: &TypedModel,
    node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
[src]

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)>

Notable traits for Vec<u8, A>

impl<A> Write for Vec<u8, A> where
    A: Allocator
[src]

Nested model multipliers, with label (for profiling).

Loading content...

Trait Implementations

impl AsMut<dyn Op + 'static> for dyn TypedOp[src]

impl AsRef<dyn Op + 'static> for dyn TypedOp[src]

Implementors

impl TypedOp for AxisOp[src]

impl TypedOp for ConstantOfShape[src]

impl TypedOp for FiniteReshape[src]

impl TypedOp for Gather[src]

impl TypedOp for MultiBroadcastTo[src]

impl TypedOp for OneHot[src]

impl TypedOp for Pad[src]

impl TypedOp for Slice[src]

impl TypedOp for Tile[src]

impl TypedOp for TypedConcat[src]

impl TypedOp for MergeOpUnicast[src]

impl TypedOp for TypedBinOp[src]

impl TypedOp for UnaryOp[src]

impl TypedOp for ConvUnary[src]

impl TypedOp for Im2Col[src]

impl TypedOp for MaxPool[src]

impl TypedOp for SumPool[src]

impl TypedOp for Downsample[src]

impl TypedOp for Dummy[src]

impl TypedOp for ElementWiseOp[src]

impl TypedOp for Identity[src]

impl TypedOp for Const[src]

impl TypedOp for Iff[src]

impl TypedOp for LirMatMulUnary[src]

impl TypedOp for MatMul[src]

impl TypedOp for QMatMul[src]

impl TypedOp for MatMulUnary[src]

impl TypedOp for MatMatMulPack[src]

impl TypedOp for Reduce[src]

impl TypedOp for DequantizeLinearF32[src]

impl TypedOp for LirScan[src]

impl TypedOp for Scan[src]

impl TypedOp for TypedSource[src]

Loading content...