pub fn mnist_valid<D: Float>() -> impl Fn(SymTensor) -> SymTensorExpand description
LeNet-5 (valid-convolution variant) — no padding, no bias, with final softmax. Use this for inference when you need class probabilities.
Input [N, 1, 28, 28]
Conv2d(1→6, 5×5, pad=0) → [N, 6, 24, 24]
ReLU
AvgPool2d(2×2, stride=2) → [N, 6, 12, 12]
Conv2d(6→16, 5×5, pad=0) → [N, 16, 8, 8]
ReLU
AvgPool2d(2×2, stride=2) → [N, 16, 4, 4]
Flatten → [N, 256]
Linear(256→120)
ReLU
Linear(120→84)
ReLU
Linear(84→10)
Softmax(dim=1) → [N, 10]