Skip to main content

Layer

Trait Layer 

Source
pub trait Layer<I> {
    type Output;

    // Required method
    fn call(&self, input: I) -> Self::Output;
}
Expand description

A neural network layer: something callable on an input I, producing Output.

Required Associated Types§

Source

type Output

This layer’s output type.

Required Methods§

Source

fn call(&self, input: I) -> Self::Output

Applies this layer to input.

Implementors§

Source§

impl<D: Dtype> Layer<SymTensor> for Flatten<D, SymTensor, SymTensor>

Source§

impl<D: Dtype, IT: Tensor<D, 4> + EagerTensor, OT: Tensor<D, 2>> Layer<IT> for Flatten<D, IT, OT>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for BatchNorm1d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for BatchNorm2d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for BatchNorm3d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for Conv1d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for Conv2d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for Conv3d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for GroupNorm<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for InstanceNorm1d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for InstanceNorm2d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for InstanceNorm3d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for LayerNorm<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for Linear<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for CircularPad1d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for CircularPad2d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for CircularPad3d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for ConstantPad1d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for ConstantPad2d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for ConstantPad3d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for ReflectionPad1d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for ReflectionPad2d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for ReflectionPad3d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for ReplicationPad1d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for ReplicationPad2d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for ReplicationPad3d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for AvgPool1d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for AvgPool2d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for AvgPool3d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for LpPool1d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for LpPool2d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for LpPool3d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for MaxPool1d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for MaxPool2d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for MaxPool3d<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, IT: Tensor<D, RANK> + EagerTensor, OT: Tensor<D, RANK>, const RANK: usize> Layer<IT> for RmsNorm<D, IT, OT, RANK>

Source§

type Output = OT

Source§

impl<D: Dtype, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Relu<D, T, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for Relu<D, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for BatchNorm1d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for BatchNorm2d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for BatchNorm3d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for Conv1d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for Conv2d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for Conv3d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for GroupNorm<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for InstanceNorm1d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for InstanceNorm2d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for InstanceNorm3d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for LayerNorm<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for Linear<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for CircularPad1d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for CircularPad2d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for CircularPad3d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for ConstantPad1d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for ConstantPad2d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for ConstantPad3d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for ReflectionPad1d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for ReflectionPad2d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for ReflectionPad3d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for ReplicationPad1d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for ReplicationPad2d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for ReplicationPad3d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for AvgPool1d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for AvgPool2d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for AvgPool3d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for LpPool1d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for LpPool2d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for LpPool3d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for MaxPool1d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for MaxPool2d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for MaxPool3d<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Dtype, const RANK: usize> Layer<SymTensor> for RmsNorm<D, SymTensor, SymTensor, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Celu<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Elu<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Selu<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Gelu<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Mish<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Hardshrink<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Hardsigmoid<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Hardswish<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Hardtanh<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Relu6<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for LeakyRelu<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Softplus<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Softshrink<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Softsign<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Threshold<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Logsigmoid<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Sigmoid<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Silu<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Softmax<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Tanh<D, T, RANK>

Source§

impl<D: Float, T: Tensor<D, RANK> + EagerTensor, const RANK: usize> Layer<T> for Tanhshrink<D, T, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Celu<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Elu<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Selu<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Gelu<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Mish<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Hardshrink<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Hardsigmoid<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Hardswish<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Hardtanh<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Relu6<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for LeakyRelu<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Softplus<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Softshrink<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Softsign<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Threshold<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Logsigmoid<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Sigmoid<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Silu<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Softmax<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Tanh<D, SymTensor, RANK>

Source§

impl<D: Float, const RANK: usize> Layer<SymTensor> for Tanhshrink<D, SymTensor, RANK>

Source§

impl<F, I, O> Layer<I> for F
where F: Fn(I) -> O,