Struct tract_core::ops::scan::Scan
source · pub struct Scan {
pub skip: usize,
pub body: TypedModel,
pub seq_length_input_slot: Option<usize>,
pub input_mapping: Vec<InputMapping>,
pub output_mapping: Vec<OutputMapping<TDim>>,
/* private fields */
}
Fields§
§skip: usize
§body: TypedModel
§seq_length_input_slot: Option<usize>
§input_mapping: Vec<InputMapping>
§output_mapping: Vec<OutputMapping<TDim>>
Implementations§
source§impl Scan
impl Scan
pub fn to_codegen_op(&self, optimize_inner: bool) -> TractResult<LirScan>
pub fn new(
body: TypedModel,
input_mapping: Vec<InputMapping>,
output_mapping: Vec<OutputMapping<TDim>>,
seq_length_input_slot: Option<usize>,
skip: usize
) -> TractResult<Scan>
pub fn iteration_count(&self, inputs: &[&TypedFact]) -> Option<TDim>
Trait Implementations§
source§impl Op for Scan
impl Op for Scan
fn name(&self) -> Cow<'_, str>
source§fn info(&self) -> TractResult<Vec<String>>
fn info(&self) -> TractResult<Vec<String>>
Short (one-line) strings giving hints on internal implementation or
important configuration details to be displayed in dumps.
source§fn validation(&self) -> Validation
fn validation(&self) -> Validation
The kind of accuracy check that should be performed on operation when
testing them.
fn as_typed(&self) -> Option<&dyn TypedOp>
source§impl TypedOp for Scan
impl TypedOp for Scan
source§fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
fn output_facts(&self, inputs: &[&TypedFact]) -> TractResult<TVec<TypedFact>>
Deduce output facts from input facts.
fn invariants(
&self,
_inputs: &[&TypedFact],
_outputs: &[&TypedFact]
) -> TractResult<Invariants>
fn suggested_axis_changes(&self) -> TractResult<TVec<(InOut, AxisOp)>>
fn change_axes(
&self,
_model: &TypedModel,
node: &TypedNode,
io: InOut,
change: &AxisOp
) -> TractResult<Option<AxisChangeConsequence>>
source§fn declutter_with_session(
&self,
session: &mut OptimizerSession<'_>,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn declutter_with_session(
&self,
session: &mut OptimizerSession<'_>,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
Declutter the op to the tract_core operator set as much as possible.
source§fn concretize_dims(
&self,
_source: &TypedModel,
node: &TypedNode,
target: &mut TypedModel,
mapping: &HashMap<OutletId, OutletId>,
values: &SymbolValues
) -> TractResult<TVec<OutletId>>
fn concretize_dims(
&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.
source§fn codegen(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn codegen(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
Translate the op into the most efficient form possible for execution. Read more
source§fn fuse(
&self,
_model: &TypedModel,
_node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn fuse(
&self,
_model: &TypedModel,
_node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
Fuse op after codegen to deal with local optimisations.
source§fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
fn declutter(
&self,
model: &TypedModel,
node: &TypedNode
) -> TractResult<Option<TypedModelPatch>>
Declutter the op to the tract_core operator set as much as possible.
source§fn cost(&self, _inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
fn cost(&self, _inputs: &[&TypedFact]) -> TractResult<TVec<(Cost, TDim)>>
Computes a cost hint of the operation. Read more
fn slice(
&self,
patch: &mut TypedModelPatch,
prefix: &str,
inputs: &[OutletId],
output_axis: usize,
start: usize,
end: usize
) -> TractResult<Option<TVec<OutletId>>>
Auto Trait Implementations§
impl !RefUnwindSafe for Scan
impl Send for Scan
impl Sync for Scan
impl Unpin for Scan
impl !UnwindSafe for Scan
Blanket Implementations§
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.