Skip to main content

LogicalOutput

Struct LogicalOutput 

Source
pub struct LogicalOutput {
Show 15 fields pub name: Option<String>, pub type_: Option<LogicalType>, pub shape: Vec<usize>, pub dshape: Vec<(DimName, usize)>, pub decoder: Option<DecoderKind>, pub encoding: Option<BoxEncoding>, pub score_format: Option<ScoreFormat>, pub normalized: Option<bool>, pub anchors: Option<Vec<[f32; 2]>>, pub stride: Option<Stride>, pub dtype: Option<DType>, pub quantization: Option<Quantization>, pub outputs: Vec<PhysicalOutput>, pub activation_applied: Option<Activation>, pub activation_required: Option<Activation>,
}
Expand description

Logical output: the semantic contract the model exposes.

When outputs is empty, the logical output IS the physical tensor (dtype and quantization carry the tensor-level fields directly). When outputs contains one or more PhysicalOutput entries, those children are the real physical tensors and the logical shape is the reconstructed shape produced by the fallback merge path.

Fields§

§name: Option<String>

Logical output name (optional at the logical level).

§type_: Option<LogicalType>

Semantic type. None marks the output as “additional” — carried in the schema for completeness (e.g. diagnostic or auxiliary tensors) but not participating in decoder dispatch. See SchemaV2::to_legacy_config_outputs for how typeless outputs are filtered out of the legacy config, and the module docs for when to use this vs. a recognised LogicalType variant.

§shape: Vec<usize>

Reconstructed logical shape (what the fallback dequant+merge path produces).

§dshape: Vec<(DimName, usize)>

Named dimensions ordered to match shape.

§decoder: Option<DecoderKind>

Decoder to use for post-processing. Omitted for outputs consumed directly (e.g. protos) where no decode step is required.

§encoding: Option<BoxEncoding>

Box encoding. Required on boxes logical outputs in v2.

§score_format: Option<ScoreFormat>

Score format. Scores only.

§normalized: Option<bool>

Coordinate format. true means [0, 1] normalized; false means pixel coordinates relative to the letterboxed model input. None means unspecified (decoder must infer). boxes and detections only.

§anchors: Option<Vec<[f32; 2]>>

Anchor boxes for anchor-encoded logical outputs. Required when encoding: anchor.

§stride: Option<Stride>

Spatial stride. For non-split logical outputs this is a spatial hint (e.g. protos at stride 4). For per-scale splits each child carries its own stride instead.

§dtype: Option<DType>

Tensor dtype. Present when outputs is empty (this logical IS the physical tensor).

§quantization: Option<Quantization>

Quantization parameters. Present when outputs is empty. None means the tensor is not quantized (float model).

§outputs: Vec<PhysicalOutput>

Physical children that realize this logical output. Empty when the logical IS the physical tensor. At most one level of nesting is permitted.

§activation_applied: Option<Activation>

Activation already applied by the model graph or runtime. The HAL must NOT re-apply an activation declared here.

On per-scale models the converter writes this on the logical parent (e.g. scores.activation_applied = sigmoid) when the model graph already includes the activation; the per-physical children inherit it.

§activation_required: Option<Activation>

Activation NOT yet applied. The HAL MUST apply the declared activation before consuming the tensor.

On per-scale models the converter writes this on the logical parent (e.g. scores.activation_required = sigmoid) when the score-activation step was stripped from the model graph and must be re-applied by the runtime; per-physical children inherit the parent’s declaration.

Implementations§

Source§

impl LogicalOutput

Source

pub fn is_split(&self) -> bool

Returns true if this logical output has been split into physical children by the converter.

Trait Implementations§

Source§

impl Clone for LogicalOutput

Source§

fn clone(&self) -> LogicalOutput

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LogicalOutput

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for LogicalOutput

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for LogicalOutput

Source§

fn eq(&self, other: &LogicalOutput) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for LogicalOutput

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for LogicalOutput

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,