pub enum ProtoLayout {
Nhwc,
Nchw,
}Expand description
Memory layout of the prototype tensor within ProtoData.
Models may output protos in either channel-last (NHWC) or channel-first (NCHW) layout. The mask materialisation kernels dispatch on this field to avoid a costly per-frame transpose.
Variants§
Nhwc
Channel-last: tensor shape is [H, W, K], contiguous along K.
This is the traditional layout produced by the extract_proto_data
path after transposing from NCHW model outputs.
Nchw
Channel-first: tensor shape is [K, H, W], each channel plane is
contiguous. Skipping the NCHW→NHWC transpose saves ~3 ms per frame
on Cortex-A53/A55 targets (819 KB for 32×160×160 protos).
Trait Implementations§
Source§impl Clone for ProtoLayout
impl Clone for ProtoLayout
Source§fn clone(&self) -> ProtoLayout
fn clone(&self) -> ProtoLayout
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ProtoLayout
impl Debug for ProtoLayout
Source§impl PartialEq for ProtoLayout
impl PartialEq for ProtoLayout
Source§fn eq(&self, other: &ProtoLayout) -> bool
fn eq(&self, other: &ProtoLayout) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for ProtoLayout
impl Eq for ProtoLayout
impl StructuralPartialEq for ProtoLayout
Auto Trait Implementations§
impl Freeze for ProtoLayout
impl RefUnwindSafe for ProtoLayout
impl Send for ProtoLayout
impl Sync for ProtoLayout
impl Unpin for ProtoLayout
impl UnsafeUnpin for ProtoLayout
impl UnwindSafe for ProtoLayout
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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