pub enum NirNode {
Show 19 variants
Input(Input),
Output(Output),
Affine(Affine),
Linear(Linear),
Scale(Scale),
Conv1d(Conv1d),
Conv2d(Conv2d),
CubaLi(CubaLi),
CubaLif(CubaLif),
Delay(Delay),
Flatten(Flatten),
I(I),
If(If),
Li(Li),
Lif(Lif),
SumPool2d(SumPool2d),
AvgPool2d(AvgPool2d),
Threshold(Threshold),
Graph(Box<NirGraph>),
}Expand description
Closed set of NIR computational nodes.
Exhaustive matching is intentional for silicon-bridge and other consumers.
This enum is not #[non_exhaustive] so downstream mappers can cover all
wire types without a wildcard arm (new wire types are a major API change).
With the serde feature, the representation is internally tagged by
"type"; every tag is explicitly renamed to Self::type_name.
Variants§
Input(Input)
Graph input port (type = "Input").
Output(Output)
Graph output port (type = "Output").
Affine(Affine)
Affine transform y = W x + b (type = "Affine").
Linear(Linear)
Linear transform without bias (type = "Linear").
Scale(Scale)
Elementwise scale (type = "Scale").
Conv1d(Conv1d)
1-D convolution (type = "Conv1d").
Conv2d(Conv2d)
2-D convolution (type = "Conv2d").
CubaLi(CubaLi)
Current-based leaky integrator (type = "CubaLI").
CubaLif(CubaLif)
Current-based LIF (type = "CubaLIF").
Delay(Delay)
Pure delay (type = "Delay").
Flatten(Flatten)
Flatten (type = "Flatten").
I(I)
Integrator (type = "I").
If(If)
Integrate-and-fire (type = "IF").
Li(Li)
Leaky integrator (type = "LI").
Lif(Lif)
Leaky integrate-and-fire (type = "LIF").
SumPool2d(SumPool2d)
Sum pooling 2-D (type = "SumPool2d").
AvgPool2d(AvgPool2d)
Average pooling 2-D (type = "AvgPool2d").
Threshold(Threshold)
Heaviside threshold (type = "Threshold").
Graph(Box<NirGraph>)
Nested subgraph (type = "NIRGraph").