A Photonic-Circuits-Inspired Compact Network: Toward Real-Time Wireless Signal Classification at the Edge
This repository is the official implementation of A Photonic-Circuits-Inspired Compact Network: Toward Real-Time Wireless Signal Classification at the Edge.
To install requirements:
pip install -r requirements.txt
The dataset will be available later once it is approved to be publicly released:
- The residaul data of ZigBee transmissions is pre-processed by Princeton University using the method described in Appendix A. The raw data is provided by Naval Research Laboratory.
- If you use this dataset for your project, please properly reference [1], [2]
[1] Merchant, Kevin et al. “Deep Learning for RF Device Fingerprinting in Cognitive Communication Networks.” IEEE Journal of Selected Topics in Signal Processing 12 (2018): 160-167.
[2] Peng, Hsuan-Tung et al. "A Photonic-Circuits-Inspired Compact Network: Toward Real-Time Wireless Signal Classification at the Edge", https://arxiv.org/abs/2106.13865
To train the PRNN-CNN model in the paper, run this command:
python train.py --model PRNN_CNN --data_path your_data_path --save True --output_dir your_output_dir
To train the NRL-CNN model in the paper, run this command:
python train.py --model NRL_CNN --data_path your_data_path -save True --output_dir your_output_dir
To evaluate the model after training on test dataset, run:
python eval.py --model_path your_model_path --model_filename your_model.pth --model PRNN_CNN
Note that if your model is NRL CNN, please change --model PRNN_CNN to --model NRL_CNN.
To evaluate pretrained PRNN-CNN model on test dataset, run:
python eval.py --model_path ./pretrained --model_filename output_model_PRNN_CNN_pretrained.pth --model PRNN_CNN
To evaluate pretrained NRL-CNN model on test dataset, run:
python eval.py --model_path ./pretrained --model_filename output_model_NRL_CNN_pretrained.pth --model NRL_CNN
Our model achieves the following performance on :
Model name | Top 1 Accuracy | # Parameters | Estimated Latency (on PYNQ-Z1) |
---|---|---|---|
NRL CNN | 95.17% | 322,602 | 26.19 ms |
PRNN-CNN | 96.32% | 6,302 | 0.219 ms |