Code Monkey home page Code Monkey logo

mingyang1996 / deepunfolding_wmmse Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hqyyqh888/deepunfolding_wmmse

0.0 1.0 0.0 44 KB

This repository contains the entire code for our TWC work "Iterative Algorithm Induced Deep-Unfolding Neural Networks: Precoding Design for Multiuser MIMO Systems", available at: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9246287 and has been accepted for publication in TWC.

Python 82.83% MATLAB 17.17%

deepunfolding_wmmse's Introduction

DeepUnfolding_WMMSE

This repository contains the entire code for our TWC work "Iterative Algorithm Induced Deep-Unfolding Neural Networks: Precoding Design for Multiuser MIMO Systems", available at: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9246287 and has been accepted for publication in TWC.

For any reproduce, further research or development, please kindly cite our TWC Journal paper:

Q. Hu, Y. Cai, Q. Shi, K. Xu, G. Yu, and Z. Ding, “Iterative algorithm induced deep-unfolding neural networks: Precoding design for multiuser MIMO systems,” IEEE Trans. Wireless Commun., to be published, DOI: 10.1109/TWC.2020.3033334.

Requirements

The following versions have been tested: Python 3.6 + Tensorflow 1.12. But newer versions should also be fine.

Introductions

There are three folders: "DeepUnfolding", "Blackbox CNN", and "WMMSE", where "DeepUnfolding" corresponds to the proposed deep-unfolding network in our paper, "Blackbox CNN" and "WMMSE" are benchmarks.

DeepUnfolding

Training and Testing

Run the main program "train_main.py".

The introduction of each file

train_main.py: Main program that implements the training and testing stages;

objective_func.py: The sum-rate (loss) function;

UW_gradient.py: The gradients of the variables (U and W) in the last layer of the deep-unfolding neural network;

UW_conj_gradient.py: The conjugate gradients of the variables (U and W) in the last layer of the deep-unfolding neural network;

generate_channel.py: Generate the complex Gaussian channels, which could be modified to other channel models;

test_model.py: Import the trained model and test its performance.

Blackbox CNN

Data Prepareation

Firstly, we run "generate_data.m" in the folder "GenerateData" to generate the training dataset, which consists of the inputs in the file "Input_H.csv" and the labels in the file "Output_UW.csv". The two files are generated in the folder "mat" and should be copied into the folder "DataSet".

Training and Testing

Run "Blackbox CNN.py", which generates four ".csv" files in the folder "DataSet". Finally, we run the file "test_predict.m" in the folder "Test" to see the sum-rate performance. Note that the file path in "test_predict.m" should be modified correspondingly.

WMMSE

Run the main program "WMMSE.py", which implements the iterative WMMSE algorithm.

deepunfolding_wmmse's People

Contributors

hqyyqh888 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.