Disable autograd during inference. Works as context manager and decorator. Computed tensors inside no_grad skip graph building entirely.
Single-cell + multi-step, multi-layer, dropout support. Includes a full test suite of 13 RNN/no_grad tests.
xavier_uniform_, xavier_normal_, kaiming_uniform_, kaiming_normal_, orthogonal_, normal_, uniform_, constant_, zeros_, ones_, eye_, init_module()
SGD, Adam, AdamW, RMSprop, AdaGrad — all support list-of-dicts API for different LR/weight-decay per layer.
grad_accum_steps argument — simulate large batches on Pi with limited RAM.
Count parameters, estimate FLOPs/memory, measure throughput. Know the cost of your model before deploying to Pi.
Compose, Normalize, RandomHorizontalFlip, RandomVerticalFlip, RandomCrop, CenterCrop, GaussianNoise, Cutout, ToTensor
LRFinder — auto-detect optimal learning rate using range test. Saves manual hyperparameter search time on Pi.
Save and restore optimizer state alongside model weights for fully resumable training.
Return softmax probabilities from the high-level Trainer (not just class indices).
LSTM sequence, weight init comparison, production inference pipeline.
Integration tests (10), RNN tests (13), weight init tests (14). pyproject.toml PEP 621 packaging config added.
All optimizers now support parameter groups (list of dicts API, same as PyTorch)
Trainer now uses no_grad during validation for memory efficiency
no_grad is integrated into Tensor.__init__ — computed tensors inside no_grad skip graph building entirely
clip_grad_norm moved to top-level lm.clip_grad_norm()
set_lr / get_lr added to all optimizers (needed by LRFinder and ReduceLROnPlateau)
Full professional package structure — core/, nn/, optim/, data/, utils/, models/
Adam, AdamW, RMSprop, AdaGrad optimizers added
7 LR Schedulers: StepLR, MultiStepLR, ExponentialLR, CosineAnnealingLR, ReduceLROnPlateau, LinearWarmupLR, CyclicLR
BatchNorm1d / BatchNorm2d with running stats and eval mode
MaxPool2d / AvgPool2d with stride and kernel
Conv2d im2col-based backward pass
Flatten, Dropout, Embedding layers
6 Loss functions: CrossEntropy, BCE, MSE, MAE, Huber, NLL
DataLoader with shuffling, batching, drop_last; TensorDataset, train_test_split
8 Metrics: accuracy, top-k accuracy, F1, precision, recall, confusion matrix, R², MSE/MAE
High-level Trainer with EarlyStopping, ModelCheckpoint, LRSchedulerCallback, History callbacks
SystemMonitor and memory_trace for Pi resource monitoring
MicroMLP, MicroCNN, TinyResNet pre-built models
Model save() / load() with gzip compression. 10 example scripts. 88 passing unit tests.
Conv2d had no backward pass → full im2col gradient implemented
mean(axis=(2,3)) crashed with tuple axis → full tuple-axis support added
Tensor.__hash__ missing → set/dict usage failed → __hash__ = object.__hash__
Matmul backward 1-D vector case → was scalar instead of outer product → np.outer fix
zero_grad() used None assignment instead of .fill(0) → fixed
Memory manager name collision for same-named layers → removed from tracking
Single-file lowmind.py by Dhaval Vedra. Basic Tensor, Linear, Conv2d, ReLU, MSE loss, SGD optimizer. The foundation that LowMind 2.x was built upon.