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_configs
with loaders
- Two types of dataset classes:
NewDataset
andStaticDataset
- 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
. SignalMetadata
redefined as class instead of TypedDict.SignalBuilder
for 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
Seedable
to 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-spectrumdetect
image_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-spectrumdetect
had not been updated with most recent code.
Known Bugs
NewDatasets
are 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