Source code for the research paper: Model-based Deep Learning for Joint RIS Phase Shift Compression and WMMSE Beamforming, link to preprint: arxiv.
Run the following commands in the terminal to install Python libraries to the local Python environment.
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install numpy
pip install pandas
pip install tabulate
pip install tqdm
pip install matplotlibTo install MATLAB CVX see https://cvxr.com/cvx/doc/install.html for instructions (not required but may be useful).
Descriptions of the Python projects, directories, and content included in this repository.
MATLAB (version 2022a) to generate a dataset for a simulated RIS communication system model.
- generateHDRISData.m
- run this MATLAB script to generate data for a Half-Duplex RIS model
- generates the channels / channel errors, solves the beamformer / phase shifts with WMMSE-PI algorithm, then saves the generated data as .csv files located in the datasets/ directory
- src/
- directory containing MATLAB scripts and functions to generate RIS data
- to change the parameters of the system model, change the contents of: src/systemModelParameters.m
- datasets/
- directory to store the generated datasets
- for Python scripts use the .csv files from this directory to load the datasets into a numpy array
Python (version 3.11) to run deep learning experiments.
- mumiso_autoencoder_quantization.py
- written in a single python file for the convenience of locating all models and relevant source code (i.e. proposed AQE-WMMSE, benchmarks, individual deep learning modules, etc.)
- the script will not run unless modified appropriately based on how the dataset was generated
- Generate dataset of channels and optimal RIS phase shifts / beamforming
- Choose the number of dataset samples by changing the "mc_runs" variable in src/systemModelParameters.m, along with any other system model parameters.
- (Optional) It is recommended to generate the dataset samples in parallel with multiple compute nodes / supercomputer to reduce the computation time of large dataset sizes.
- run generateHDRISData.m in MATLAB and the data to be used for the deep learning experiments will be generated and saved to datasets/.
- Run deep learning experiments
- In mumiso_autoencoder_quantization.py, set the dataset/results directory and load the number of dataset directories correspondingly with the "num_dirs" variable (i.e. num_dirs > 1 if the data samples were generated from parallel processes).
- Run mumiso_autoencoder_quantization.py in Python and the log files of the experiments will be saved to the results directory specified in the script.