pub trait Shape: Debug {
Show 28 methods
// Required method
fn shape(&self) -> &[usize];
// Provided methods
fn size(&self) -> usize { ... }
fn shape_at<I: Dim>(&self, i: I) -> usize { ... }
fn shape_before<const N: usize>(&self) -> [usize; N] { ... }
fn shape_of<D: Dims>(&self, d: D) -> Vec<usize> { ... }
fn size_of<D: Dims>(&self, d: D) -> usize { ... }
fn ndim(&self) -> usize { ... }
fn dim<I: Dim>(&self, i: I) -> usize { ... }
fn dims<D: Dims>(&self, d: D) -> Vec<usize> { ... }
fn shape_transpose(&self, dim0: usize, dim1: usize) -> Vec<usize> { ... }
fn shape_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool { ... }
fn shape_ndim_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool { ... }
fn shape_size_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool { ... }
fn shape_expand_left<T: Shape + ?Sized>(&self, rhs: &T) -> Vec<usize> { ... }
fn shape_expand_right<T: Shape + ?Sized>(&self, rhs: &T) -> Vec<usize> { ... }
fn shape_broadcast_to<T: Shape + ?Sized>(
&self,
rhs: &T
) -> Result<(Vec<usize>, bool, bool)> { ... }
fn shape_broadcast_matmul<S: Shape + ?Sized>(
&self,
rhs: &S
) -> Result<(Vec<usize>, Vec<usize>, Vec<usize>, bool, bool)> { ... }
fn shape_reduce<T: AsRef<[usize]>>(
&self,
dims: T,
keep_dim: bool
) -> Vec<usize> { ... }
fn shape_conv1d<S: Shape + ?Sized>(
&self,
kernel: &S,
padding: usize,
stride: usize,
dilation: usize
) -> Vec<usize> { ... }
fn shape_conv2d<S: Shape + ?Sized>(
&self,
kernel: &S,
padding: &[usize; 2],
stride: &[usize; 2],
dilation: &[usize; 2]
) -> Vec<usize> { ... }
fn shape_conv_transpose1d<S: Shape + ?Sized>(
&self,
kernel: &S,
padding: usize,
output_padding: usize,
stride: usize,
dilation: usize
) -> Vec<usize> { ... }
fn shape_conv_transpose2d<S: Shape + ?Sized>(
&self,
kernel: &S,
padding: &[usize; 2],
output_padding: &[usize; 2],
stride: &[usize; 2],
dilation: &[usize; 2]
) -> Vec<usize> { ... }
fn shape_avg_pool1d(
&self,
kernel_size: usize,
stride: usize,
padding: usize
) -> Vec<usize> { ... }
fn shape_avg_pool2d(
&self,
kernel_size: &(usize, usize),
stride: &(usize, usize),
padding: &(usize, usize)
) -> Vec<usize> { ... }
fn shape_max_pool1d(
&self,
kernel_size: usize,
stride: usize,
padding: usize,
dialation: usize
) -> Vec<usize> { ... }
fn shape_max_pool2d(
&self,
kernel_size: &(usize, usize),
stride: &(usize, usize),
padding: &(usize, usize),
dialation: &(usize, usize)
) -> Vec<usize> { ... }
fn shape_upsample_nearest1d(&self, size: usize) -> Vec<usize> { ... }
fn shape_upsample_nearest2d(&self, size: &(usize, usize)) -> Vec<usize> { ... }
}
Required Methods§
Provided Methods§
fn size(&self) -> usize
fn shape_at<I: Dim>(&self, i: I) -> usize
fn shape_before<const N: usize>(&self) -> [usize; N]
fn shape_of<D: Dims>(&self, d: D) -> Vec<usize>
fn size_of<D: Dims>(&self, d: D) -> usize
fn ndim(&self) -> usize
fn dim<I: Dim>(&self, i: I) -> usize
fn dims<D: Dims>(&self, d: D) -> Vec<usize>
fn shape_transpose(&self, dim0: usize, dim1: usize) -> Vec<usize>
fn shape_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool
fn shape_ndim_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool
fn shape_size_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool
fn shape_expand_left<T: Shape + ?Sized>(&self, rhs: &T) -> Vec<usize>
fn shape_expand_right<T: Shape + ?Sized>(&self, rhs: &T) -> Vec<usize>
fn shape_broadcast_to<T: Shape + ?Sized>( &self, rhs: &T ) -> Result<(Vec<usize>, bool, bool)>
fn shape_broadcast_matmul<S: Shape + ?Sized>( &self, rhs: &S ) -> Result<(Vec<usize>, Vec<usize>, Vec<usize>, bool, bool)>
fn shape_reduce<T: AsRef<[usize]>>(&self, dims: T, keep_dim: bool) -> Vec<usize>
fn shape_conv1d<S: Shape + ?Sized>( &self, kernel: &S, padding: usize, stride: usize, dilation: usize ) -> Vec<usize>
fn shape_conv2d<S: Shape + ?Sized>( &self, kernel: &S, padding: &[usize; 2], stride: &[usize; 2], dilation: &[usize; 2] ) -> Vec<usize>
fn shape_conv_transpose1d<S: Shape + ?Sized>( &self, kernel: &S, padding: usize, output_padding: usize, stride: usize, dilation: usize ) -> Vec<usize>
fn shape_conv_transpose2d<S: Shape + ?Sized>( &self, kernel: &S, padding: &[usize; 2], output_padding: &[usize; 2], stride: &[usize; 2], dilation: &[usize; 2] ) -> Vec<usize>
fn shape_avg_pool1d( &self, kernel_size: usize, stride: usize, padding: usize ) -> Vec<usize>
fn shape_avg_pool2d( &self, kernel_size: &(usize, usize), stride: &(usize, usize), padding: &(usize, usize) ) -> Vec<usize>
fn shape_max_pool1d( &self, kernel_size: usize, stride: usize, padding: usize, dialation: usize ) -> Vec<usize>
fn shape_max_pool2d( &self, kernel_size: &(usize, usize), stride: &(usize, usize), padding: &(usize, usize), dialation: &(usize, usize) ) -> Vec<usize>
fn shape_upsample_nearest1d(&self, size: usize) -> Vec<usize>
fn shape_upsample_nearest2d(&self, size: &(usize, usize)) -> Vec<usize>
Object Safety§
This trait is not object safe.