TorchSig

A PyTorch Signal Processing Machine Learning Toolkit


...

Key Features

TorchSig is an open-source signal processing machine learning toolkit based on the PyTorch data handling pipeline. Some of the key features include: signals datasets, domain transforms, pretrained models, and open-source code and documentation for community research and development.

Signals Datasets

TorchSig can generate and easily interface with the TorchSigNarrowband dataset, an augmentable dataset representing 60+ digital modulations commonly used in radio frequency communication signals, useful for signal classification research. TorchSig can also generate and interface with the TorchSigWideband dataset, a wideband extension to Narrowband, containing multiple signals in each data example, useful for signal detection and recognition research. TorchSig can be used as a standard in the open source community working with signals datasets.

Domain Transforms

Numerous complex signal augmentations, impairments, and expert feature transforms are provided and can be seamlessly customized and further developed.

Pretrained Models

TorchSig's API mirrors familiar libraries such as TorchVision and TorchAudio, providing the first ever toolkit that shares state of the art convolutional and transformer neural network models pretrained on complex-valued signals datasets.

Research & Development

Open-source code, datasets, and documentation enable community engagement for further advancing research and development in the field of signal processing machine learning.

Why TorchSig?

TorchSig allows you to easily and quickly customize any part of your signal processing pipeline ranging from the data management up to the downstream task metric. No existing signals toolkit provides such a level of accessibility.

Easy to Install

Simply clone and pip install!


git clone https://github.com/torchdsp/torchsig.git
cd torchsig
pip install .
                                

Easy to Use

Dataset, model, and transform APIs follow familiar TorchVision and TorchAudio coding structure.


from torchsig.datasets.datamodules import NarrowbandDataModule
datamodule = NarrowbandDataModule(root="/workspace/code", impaired=False)
datamodule.prepare_data() # generates dataset to disk
datamodule.setup("fit") # creates dataset
data, label = datamodule.train[0]

from torchsig.models import EfficientNet1d
from torchsig.datasets.signal_classes import torchsig_signals
num_classes = len(torchsig_signals.class_list)
model = EfficientNet1d(2,num_classes)

import torchsig.transforms as ST
transforms = ST.AddNoise(noise_power_db=10)