mini_cnn
orchard.architectures.mini_cnn
¶
Lightweight CNN for Low-Resolution Image Classification.
Custom compact architecture designed for low-resolution datasets (28×28, 32×32, 64×64). Provides a fast baseline alternative to adapted ResNet-18 with reduced parameter count and computational overhead.
Key Features:
- Minimal Depth: 3 convolutional blocks for rapid convergence
- Adaptive Pooling: Maintains spatial resolution through progressive downsampling
- Dropout Regularization: Configurable dropout for overfitting prevention
- Efficient Design: ~50K parameters vs ~11M for ResNet-18
Architecture::
Input [28×28×C] → Conv1 [14×14×32] → Conv2 [7×7×64] → Conv3 [7×7×128]
→ AdaptiveAvgPool [1×1×128] → Dropout → FC [num_classes]
MiniCNN(in_channels, num_classes, dropout=0.0)
¶
Bases: Module
Compact CNN optimized for low-resolution datasets (28×28, 32×32, 64×64).
Initialize MiniCNN architecture.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
in_channels
|
int
|
Input channels (1=Grayscale, 3=RGB) |
required |
num_classes
|
int
|
Number of output classes |
required |
dropout
|
float
|
Dropout probability before final FC layer |
0.0
|
Source code in orchard/architectures/mini_cnn.py
forward(x)
¶
Forward pass through the network.
Source code in orchard/architectures/mini_cnn.py
build_mini_cnn(num_classes, in_channels, *, dropout)
¶
Constructs MiniCNN for low-resolution image classification.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
num_classes
|
int
|
Number of dataset classes |
required |
in_channels
|
int
|
Input channels (1=Grayscale, 3=RGB) |
required |
dropout
|
float
|
Dropout probability before final FC layer |
required |
Returns:
| Type | Description |
|---|---|
Module
|
MiniCNN model (device placement handled by factory). |