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

pub trait TypedOp: Op + Debug + DynClone + Send + Sync + 'static + Downcast + EvalOp + DynHash {
    pub fn as_op(&self) -> &dyn Op;
pub fn as_op_mut(&mut self) -> &mut dyn Op;
pub fn output_facts(
        &self,
        inputs: &[&TypedFact]
    ) -> TractResult<TVec<TypedFact>>; pub fn invariants(
        &self,
        model: &TypedModel,
        node: &TypedNode
    ) -> TractResult<Invariants> { ... }
pub fn fuse(
        &self,
        _model: &TypedModel,
        _node: &TypedNode
    ) -> TractResult<Option<TypedModelPatch>> { ... }
pub fn declutter(
        &self,
        model: &TypedModel,
        node: &TypedNode
    ) -> TractResult<Option<TypedModelPatch>> { ... }
pub fn cost(
        &self,
        _inputs: &[&TypedFact]
    ) -> TractResult<TVec<(Cost, TDim)>> { ... }
pub fn suggested_axis_changes(&self) -> TractResult<TVec<(InOut, AxisOp)>> { ... }
pub fn change_axes(
        &self,
        model: &TypedModel,
        node: &TypedNode,
        io: InOut,
        change: &AxisOp
    ) -> TractResult<Option<AxisChangeConsequence>> { ... }
pub fn slice_output(
        &self,
        model: &TypedModel,
        node: &TypedNode,
        patch: &mut TypedModelPatch,
        output_slot: usize,
        axis: usize,
        start: usize,
        end: usize
    ) -> TractResult<Option<OutletId>> { ... }
pub fn quantize(
        &self,
        model: &TypedModel,
        node: &TypedNode,
        dt: DatumType,
        scale: f32,
        zero_point: i32
    ) -> TractResult<Option<Box<dyn TypedOp>>> { ... }
pub fn concretize_dims(
        &self,
        source: &TypedModel,
        node: &TypedNode,
        target: &mut TypedModel,
        mapping: &HashMap<OutletId, OutletId>,
        values: &SymbolValues
    ) -> TractResult<TVec<OutletId>> { ... }
pub fn codegen(
        &self,
        model: &TypedModel,
        node: &TypedNode
    ) -> TractResult<Option<TypedModelPatch>> { ... }
pub fn nested_model_multipliers(
        &self,
        inputs: &[&TypedFact]
    ) -> Vec<(Cow<'_, str>, f64)>

Notable traits for Vec<u8, Global>

impl Write for Vec<u8, Global>
{ ... } }

Required methods

pub fn as_op(&self) -> &dyn Op[src]

Reinterpret the TypedOp as an Op.

pub fn as_op_mut(&mut self) -> &mut dyn Op[src]

Reinterpret the TypedOp as an Op, mutably.

pub fn output_facts(
    &self,
    inputs: &[&TypedFact]
) -> TractResult<TVec<TypedFact>>
[src]

Deduce output facts from input facts.

Loading content...

Provided methods

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

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

Fuse op after codegen to deal with local optimisations.

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

Declutter the op to the tract_core operator set as much as possible.

pub 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.

pub fn suggested_axis_changes(&self) -> TractResult<TVec<(InOut, AxisOp)>>[src]

pub fn change_axes(
    &self,
    model: &TypedModel,
    node: &TypedNode,
    io: InOut,
    change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
[src]

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

pub 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.

pub 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.

pub 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.

pub fn nested_model_multipliers(
    &self,
    inputs: &[&TypedFact]
) -> Vec<(Cow<'_, str>, f64)>

Notable traits for Vec<u8, Global>

impl Write for Vec<u8, Global>
[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 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...