Releases: TorchDSP/torchsig
Releases · TorchDSP/torchsig
TorchSig v2.1.0
What's Changed
- Major restructure of
DatasetMetadata(removed) andSignalBuilder(renamed toBaseSignalGenerator) to allow for more flexible signal types, usingHierarchicalMetadataObjectclass to handle metadata across dataset and signal generators - Removed
modelsandimage_datasetstorchsig-modelsrepository to be released soon
- Combined
StaticDatasetandCustomDataset - Code cleanup and optimizations from v2.0.0
- cleaned up unused libraries, upgrade to numpy > 2
- 411 bug readthedocs errors by @ereoh in #412
- removing zarr imports by @MattCarrickPL in #414
- v2.1.0 Release by @TorchDSP in #448
Full Changelog: v2.0.0...v2.1.0
TorchSig v2.0.0
What's Changed
This release has major structural changes, see the TorchSig v1.1.0 -> v2.0.0 Migration Guide for more details.
Additionally, we have released a TorchSig-GUI (in beta).
- Datasets
- Fixed: TorchSigIterableDataset num_samples
- New: Custom Datasets to use user data within TorchSig
- Update: Unified Narrowband and Wideband
- Transforms
- Fixed: IQImbalance
- New:
- Clock Jitter, Drift
- Rust resampler
- Update: Level 2 impairments,
TargetTransformreplaced withMetadataTransform
- Signals
- Update:
Signal,DatasetSignal,DatasetDictrestructured intoSignal
- Update:
- Utils
- New: Zarr replace by HDF5
- Update: Restructured
DatasetCreatorand File Handler class WorkingSeedingDataLoaderguarantees reporoducibility for DataLoaders
- Miscellaneous
- Added MIT license
- Updated
Dockerfule
- General bug fixes
- forcing specific numcodecs version by @MattCarrickPL in #385
- 2.0.0 dev by @ereoh in #410
New Contributors
- @romanziske help with SigMF file reader in #301
Full Changelog: v1.1.0...v2.0.0
TorchSig v1.1.0
What's Changed
- fix: #381
- fix: include YAML config files in package installation by @romanziske in #301
- re-enabling seed param, fixes notebook crash on dataset generation by @MattCarrickPL in #308
- 1.1.0 dev by @ereoh in #375
- Signal generation bug fixes and optimizations
- Remaining transforms implemented in #350
gr-spectrumdetectupdated in #326, #294- Dataset writing optimizations (zarr) in #364, #328, #287
- Dataset YAML example in #307
- Dataset reproducibility fix in #345, #286
- PNG/JPG capabilit in #368, #284
- General bug fixes
New Contributors
- @romanziske made their first contribution in #301
Full Changelog: v1.0.0...v1.1.0
TorchSig v1.0.0
What's Changed
- v1.0.0-beta release by @ereoh in #273
- fixing f-string print problem in notebook by @MattCarrickPL in #276
- Fix synthetic spectrogram notebook, add min_num_signals to generate scripts by @ereoh in #278
- sync main with 1.0.0-dev by @MattCarrickPL in #295
Full Changelog: v0.6.1...v1.0.0
TorchSig v1.0.0-beta
Since this is almost an entirely new version of TorchSig, it is not backwards compatible with previous versions.
What's Changed (a lot!)
tldr; Look at our example notebooks, and start with
getting_started.ipynb
- Datasets
- Dataset configuration with new class
DatasetMetadata, which holds configuration information about dataset- supports YAML configuration
- Official Narrowband and Wideband datasets are define in
datasets/default_configswith loaders
- Two types of dataset classes:
NewDatasetandStaticDataset- NewDataset support infinite or finite signal generation, but does not store samples in memory
NewNarrowband,NewWideband
- StaticDataset supports loading a dataset from disk
StaticNarrowband,StaticWideband
- NewDataset support infinite or finite signal generation, but does not store samples in memory
- Datamodules for custom Narrowband/Wideband dataset and Official Narrowband/Wideband datasets
- Dataset configuration with new class
- Signals
- New signal classes:
DatasetSignal,DatasetDict. SignalMetadataredefined as class instead of TypedDict.SignalBuilderfor signal generation.- Signal lists variable names updated.
- New signal classes:
- Transforms
- Transforms redefined as changing signal data and signal metadata
- Grouped into three categories:
SignalTransform,DatasetTransform, andImpairments. - Many transforms refactored, optimized, or removed.
- Grouped into three categories:
- Target transforms redefined as label/output creators, do not change signal data at all
- Can ask for any configuration of labels
- Transforms redefined as changing signal data and signal metadata
- Utils
- Random class
Seedableto manage randomness across all TorchSig objects - Various printing and verification code
- Dataset writing and reading using Zarr and YAML
- New class:
DatasetCreator
- New class:
- Random class
- Examples
- Examples no longer need to be run in any specific order.
- Moved Jupyter annotation tool example to
tools/examples.
- Tests
- More comprehensive test suit with Pytest.
- Google-style docstrings have been added for most of the code.
- Updated documentation.
What Has Not Changed
gr-spectrumdetectimage_datasets
Notes
- v0.6.1 pretrained models are out of date.
- OFDM signal not fully featured
- 0.6.1 OFDM has a simulated protocol on it: Resource blocks, pilots, etc. that does not exist in 1.0 yet.
- 0.6.1 OFDM has some windowing in the time domain acting as pulse shaping, that does not exist in 1.0 yet
- Otherwise the OFDM is accurate and representative, it is idealized and textbook-like, just as our other signals are
- We are depreciating our support of models. Specifically, we plan on only maintaining our pretrained models.
- Our code should be compatible with any PyTorch compatible model, or should be easy to make compatible.
- Still keep example notebooks to show how to train and use a model with our datasets.
gr-spectrumdetecthad not been updated with most recent code.
Known Bugs
NewDatasetsare not perfectly reproducible.- To guarantee reproducibility, we recommend writing the dataset to disk and loading back in the ensure correctness of samples.
Open-Source Collaboration
- We would really like to involve the open-source community, and are moving development to Github.
- Please feel free to make contributions towards bugs, new features, current issues, or anything on our Roadmap on the wiki.
- Github workflows for Pylint and Pytest to merge with main:
- Pylint score must be above 9/10
- Pytests should all pass without error
TorchSig v0.6.1
What's Changed
- fix ReadTheDocs pipeline by @ereoh in #251
- Fix for #254 -- accept dict dtype in
is_signalby @IsaiahHarvi in #255 - v0.6.1 release by @ereoh @MattCarrickPL in #267
- Releases
- example timm model loading, example notebook 11
- example sigmf loading, example notebook 12 (#257)
- new pretrained models for narrowband and wideband with example notebook 13
- Bugs with example notebooks 6-10, 13
- remove Numpy and OpenCV constraints
New Contributors
- @IsaiahHarvi contributed in #255
- @romanziske contributed in #261
- @agm-eratosth contributed in #248
- @sciafri contributed in #247
- @jogomojo contributed in #246
Full Changelog: v0.6.0...v0.6.1
TorchSig v0.6.0
- New signals added (53 → 61 total signals)
- New signals:
- FM (frequency modulation)
- AM-DSB (amplitude modulation, double side band, with carrier)
- AM-DSB-SC (amplitude modulation, double side band, suppressed carrier)
- AM-LSB (amplitude modulation, lower side band)
- AM-USB (amplitude modulation, upper side band)
- Chirp Spread Spectrum
- Linear Frequency Modulated Data (LFM-Data, both up and down chirps)
- Linear Frequency Modulated Radar (LFM-Radar, up-chirps only)
- New signals:
- Refactored 53 out of dataset names and codebase
- Sig53 → Narrowband
- WidebandSig53 → Wideband
- Datasets, transforms, example notebooks, ect. updated with new classes listed in torchsig/datasets/signal_classes.py
- Removed iq_samples_per_symbol from metadata
- Optuna integration
- examples/08_example_optuna_yolo.ipynb
- Synthetic spectrogram image dataset improvements
- examples/09_example_synthetic_spectrogram_dataset.ipynb: Generating and using synthetic spectrograms.
- examples/10_example_yolo_annotation_tool.ipynb: New feature to draw SOI bounding boxes in Jupyter notebooks.
- Spectrogram wideband texturing
- Bug Fixes
- Narrowband dataset crashing due to Transforms
- RandomResample
- Frequency Hopper
- Normalize
- Transition bandwidth calculations
- Documentation
- gr-spectrumdetect README
detect.ptalso attached to release if needed.
- README has minimum/recommended specifications
- gr-spectrumdetect README
- Python >= 3.9
TorchSig v0.5.3.1
- Fix Github LFS bandwidth limits with
gr-spectrumdetect/examples/detect.ptfile
TorchSig v0.5.3
Closed the following issues:
- Fixed: incorrect bounding boxes, too large in frequency, both G/FSK and others.
- Fixed: Reports of problem that DescToList tuple transform has a problem in type conversion, being a list vs list-of-lists. Says this causes a crash somewhere in one of the example notebooks.
- Fixed: "rearranged the order in which meta['start'] and meta['stop'] values were being updated in relation to meta['num_samples'] it was causing a new_rate **2 change to the new_start and new_stop variables"
- Fixed: impaired dataset generation bug - RandomTimeShift resulted in signals being shifted "out of bounds"
- Validate all notebooks are working properly
- Fixed: frequency hopper functionality.
- Fixed: OFDM modulator creating incorrect bounding box on mc/deterministic-modulators.
- Fixed: OFDM bandwidth wrap around +-fs/2 boundary
- Upgrade: replace sp.resample_poly() within synthetic.py with a higher quality resampler
- Upgrade: PFB resamplers need to use fred harris approximation for number of branches
- Released: gr-spectrumdetect: The out-of-tree (OOT) module gr-spectrumdetect incorporates a YOLOv8x TorchSig ML model to detect signals in real time.
- Upgrade/Release: 05_example_wideband_yolo_to_disk.ipynb: This notebook showcases using the WBSig53 dataset to train a YOLOv8 model.
- Release: 06_example_wideband_yolo.ipynb: This notebook showcases using the WBSig53 dataset to train a YOLOv8 model.
- Release: 07_example_classify_yolo.ipnyb: This notebook showcases using the Sig53 dataset to train a YOLOv8 classification model.