"The only constant in life is change."
--Heraclitus, a Greek philosopher.
Python repository for the paper "Concept Drift Detection for Deep Receivers".
Please cite our paper, if the code is used for publishing research.
Table of contents generated with markdown-toc
This repository implements the proposed concept drift scheme for ViterbiNet and DeepSIC. We explain on the different directories and subdirectories below.
The python simulations of the simplified communication chain: symbols generation, channel transmission and detection.
The proposed concept drift mechanism scheme, and the always-train baseline.
Includes all relevant channel functions and classes. The class in "channel_dataset.py" implements the main class for aggregating pairs of (transmitted,received) samples. In "channel.py", the ISI AWGN channel is implemented. "channel_estimation.py" is for the calculation of the h values. Lastly, the channel BPSK modulator lies in "channel_modulator.py".
Plotting of the BER versus SNR, for Figures 3 and 4 in the paper.
Includes the next files:
(1) The backbone detector in "vnet_detector.py" module;
(2) A basic "trainer.py" class, includes the main evaluation function. It is also used for parsing the config.yaml file and preparing the deep learning setup (loss, optimizer, ...).
(3) The ViterbiNet trainer, in "vnet_trainer.py", which inherets from the basic trainer class, extending it as needed.
Extra utils for saving and loading pkls; calculating the accuracy over FER and BER; and transitioning over the trellis.
Controls all parameters and hyperparameters.
Keeps the channel coefficients vectors (4 taps, each with 300 blocks).
Definitions of relative directories.
To execute the code, first download and install Git, Anaconda and PyCharm.
Then install the environment, follow the installation setup below.
At last, open PyCharm in the root directory. You may run either the trainers or one of the plotters.
This code was simulated with GeForce RTX 2060 with driver version 432.00 and CUDA 10.1.
-
Open git bash and cd to a working directory of you choice.
-
Clone this repository to your local machine.
-
Open Anaconda prompt and navigate to the cloned repository.
-
Run the command "conda env create -f environment.yml". This should install the required python environment.
-
Open the cloned directory using PyCharm.
-
After the project has been opened in PyCharm, go to settings, File -> Settings... (or CTRL ALT S)
-
In the opened window open the tab Project -> Project Interpreter
-
In the new window, click on the cog icon and then on Add...
-
In the add python interpreter window, click on the Conda Environment tab
-
Select Existing environment and navigate to where the python.exe executable of the deep_ensemble environment is installed under the interpreter setting
-
For windows its usually found at C:\users<username>\anaconda3\envs\environment\python.exe)
-
For linux its usually found at /home//anaconda3
-
Click OK
-
Done!