A PyTorch Lightning based research platform for automatic modulation recognition (AMR). The project builds on the original DieselWolf dataset and adds more data augmentations, training utilities and deployment scripts.
Build the Docker image and start the container:
docker build -t dieselmod .
docker run --gpus all -it --rm -p 8888:8888 -p 6006:6006 -v $(pwd):/app dieselmodThe container launches JupyterLab on port 8888 and TensorBoard on port 6006. Navigate to http://localhost:8888 to open the notebooks and http://localhost:6006 to monitor training logs.
Inside JupyterLab open a terminal and set the PYTHONPATH before running any scripts:
export PYTHONPATH=$PYTHONPATH:/appFor example, you can reproduce the CNN tuning session by running:
python scripts/tune_cnn.py --max-trials 10TensorBoard includes embedding projections of the best model from each trial.
- Augmentations:
dieselwolf/data/TransformsRF.pyincludes fractional resampling withDopplerShiftand fading modelsTDLRayleigh,TDLRicianandTDLNakagami. - Quantisation: convert checkpoints with
scripts/export_onnx.pyandscripts/quantize_onnx.py. - Tutorial notebooks: see the
notebooks/directory for dataset walkthroughs and training examples. - Complex models:
dieselwolf/complex_layers.pyanddieselwolf/models/complex_transformer.pyenable complex-valued networks such asconfigurable_mobile_rat.py. - Modular architectures:
dieselwolf/models/configurable_cnn.pyanddieselwolf/models/configurable_mobile_rat.pyexpose a modular design for easy tuning. - Lightning module:
dieselwolf/models/lightning_module.pywraps a backbone with projection heads for metadata regression and supports fast-gradient adversarial perturbations. - Insightful callbacks:
dieselwolf/callbacks.pygenerates embedding projections with metadata and logs a confusion matrix image to TensorBoard. - MoCo-v3 pre-training:
dieselwolf/models/moco_v3.pyimplements a lightweight momentum encoder for semi-supervised learning on unlabeled RF data. - CI/CD practices: GitHub workflows and pre-commit hooks with
ruffandblackenforce consistent formatting and smoke-test training.


