Metadata-Version: 2.4
Name: nato-opt
Version: 0.1.0
Summary: NATO Optimizer with Fourier Spectral Penalty (FSP) and N-D FFT gradient filtering
Author-email: Malhar Pangarkar <malharpangarkar19@gmail.com>, Atharva Khambete <atharvakhambete1@gmail.com>
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: torch
Requires-Dist: numpy
Dynamic: license-file

# NATO

**NATO** — NATO Optimizer with Fourier Spectral Penalty (FSP) and generalized N-D FFT gradient filtering.

## Install (editable local)
```bash
pip install -e .
```

## Quick usage
```python
import torch
from nato_opt import NATOOptimizer, fourier_spectral_penalty, low_pass_filter_gradients

model = ...  # any torch.nn.Module
optimizer = NATOOptimizer(model.parameters(), lr=1e-3)

# training step
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, targets)
fsp = fourier_spectral_penalty(model, lambda_fsp=1e-6)
total = loss + fsp
total.backward()
low_pass_filter_gradients(model, cutoff_ratio=0.5)
optimizer.step(epoch)  # pass epoch if you want LR decay
```
