Skip to main content

ImageKind

Enum ImageKind 

Source
#[non_exhaustive]
#[repr(u16)]
pub enum ImageKind {
Show 22 variants InterpolateBilinear2d = 0, InterpolateBilinear2dBackward = 1, InterpolateNearest2d = 2, InterpolateNearest2dBackward = 3, InterpolateBicubic2d = 4, InterpolateBicubic2dBackward = 5, InterpolateTrilinear3d = 6, InterpolateTrilinear3dBackward = 7, InterpolateLinear1d = 8, InterpolateLinear1dBackward = 9, InterpolateArea2d = 10, InterpolateArea2dBackward = 11, GridSample2d = 16, GridSample2dBackward = 17, AffineGrid2d = 18, PixelShuffle = 24, PixelUnshuffle = 25, RoiAlign = 32, RoiAlignBackward = 33, RoiPool = 34, RoiPoolBackward = 35, Nms = 40,
}
Expand description

Image / spatial-transform op discriminant — Category T from the comprehensive plan.

Stored as u16 in crate::KernelSku::op when category == OpCategory::Image. Phase 9 Category T wires the trailblazer set:

Other interpolation modes (nearest, bicubic, trilinear, linear, area) have discriminants reserved here but the kernels are stubbed Unsupported in the trailblazer.

Trailblazer dtype coverage: f32, f64 for math-bearing ops; pixel_shuffle / pixel_unshuffle additionally cover f16, bf16 (pure layout — dtype-agnostic).

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

InterpolateBilinear2d = 0

interpolate(x, mode='bilinear', size=…) — 2-D spatial resample with bilinear weights. Trailblazer wired today.

§

InterpolateBilinear2dBackward = 1

Gradient of Self::InterpolateBilinear2d — atomic-add of weighted contributions from each output cell to the 4 input cells it bilinearly sampled.

§

InterpolateNearest2d = 2

interpolate(x, mode='nearest') — reserved.

§

InterpolateNearest2dBackward = 3

Gradient of Self::InterpolateNearest2d — reserved.

§

InterpolateBicubic2d = 4

interpolate(x, mode='bicubic') — reserved.

§

InterpolateBicubic2dBackward = 5

Gradient of Self::InterpolateBicubic2d — reserved.

§

InterpolateTrilinear3d = 6

interpolate(x, mode='trilinear') — reserved.

§

InterpolateTrilinear3dBackward = 7

Gradient of Self::InterpolateTrilinear3d — reserved.

§

InterpolateLinear1d = 8

interpolate(x, mode='linear') — reserved (1-D).

§

InterpolateLinear1dBackward = 9

Gradient of Self::InterpolateLinear1d — reserved.

§

InterpolateArea2d = 10

interpolate(x, mode='area') — reserved (adaptive avg pool).

§

InterpolateArea2dBackward = 11

Gradient of Self::InterpolateArea2d — reserved.

§

GridSample2d = 16

grid_sample(input, grid) — 2-D bilinear, zeros-pad, align_corners=false. PyTorch defaults.

§

GridSample2dBackward = 17

Gradient of Self::GridSample2d — atomic-add into dinput

  • analytical bilinear coordinate derivatives into dgrid.
§

AffineGrid2d = 18

affine_grid(theta, size) — generate the normalized sampling grid for a 2×3 affine matrix. Companion to GridSample2d.

§

PixelShuffle = 24

pixel_shuffle(x, r)[N, C·r², H, W] → [N, C, H·r, W·r]. Pure index permutation. BW is PixelUnshuffle.

§

PixelUnshuffle = 25

pixel_unshuffle(x, r)[N, C, H·r, W·r] → [N, C·r², H, W]. Inverse of PixelShuffle. BW is PixelShuffle.

§

RoiAlign = 32

roi_align(input, rois, output_size, spatial_scale, sampling_ratio=0, aligned=false). PyTorch convention.

§

RoiAlignBackward = 33

Gradient of Self::RoiAlign — bilinear-weighted atomic-add into dinput.

§

RoiPool = 34

roi_pool(input, rois, output_size, spatial_scale) — max-pool variant of RoiAlign. Saves argmax indices for BW.

§

RoiPoolBackward = 35

Gradient of Self::RoiPool — atomic-add of dout[i, c, h, w] into dinput at the saved argmax cell.

§

Nms = 40

nms(boxes, scores, iou_threshold) — non-max suppression. Returns a boolean keep mask [num_boxes] and a count scalar. No BW (set-valued op).

Trait Implementations§

Source§

impl Clone for ImageKind

Source§

fn clone(&self) -> ImageKind

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 Copy for ImageKind

Source§

impl Debug for ImageKind

Source§

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

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

impl Eq for ImageKind

Source§

impl Hash for ImageKind

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ImageKind

Source§

fn eq(&self, other: &ImageKind) -> 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 StructuralPartialEq for ImageKind

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