Git Product home page Git Product logo

acrnet's Introduction

Overview

This is a PyTorch implementation of ACRNet inference. The key results in paper Binarized Aggregated Network with Quantization: Flexible Deep Learning Deployment for CSI Feedback in Massive MIMO System can be reproduced.

Requirements

The following requirements need to be installed.

Project Preparation

A. Data Preparation

As mentioned in the paper, our dataset is generated from COST2100 channel model. The preprocessed version provided by Chao-Kai Wen in CsiNet is recommended. You can download it from Google Drive or Baidu Netdisk.

Note that all dataset generation related setting can be found in the ACRNet paper if you wish to generate the dataset yourself.

B. Checkpoints Downloading

The checkpoints of our proposed BCsiNet can be downloaded from Baidu Netdisk (passwd: he1o) or Google Drive

C. Project Tree Arrangement

We recommend you to arrange the project tree as follows.

home
├── ACRNet  # The cloned BCsiNet repository
│   ├── dataset
│   ├── model
│   ├── utils
│   ├── main.py
├── COST2100  # COST2100 dataset downloaded following section A
│   ├── DATA_Htestin.mat
│   ├── ...
├── Experiments
│   ├── checkpoints  # The checkpoints folder downloaded following section B
│   │     ├── table1
│   │     ├── table2
│   ├── run.sh  # The bash script
...

Key Results Reproduction

The key results reported in Table I of the paper are listed as follows.

Compression Ratio Methods Scenario NMSE Checkpoints Path
1/4 ACRNet-1x indoor -27.16dB table1/cr4/1x_in/model.pth
1/4 ACRNet-1x outdoor -10.71dB table1/cr4/1x_out/model.pth
1/4 ACRNet-10x indoor -29.83dB table1/cr4/10x_in/model.pth
1/4 ACRNet-10x outdoor -13.61dB table1/cr4/10x_out/model.pth
1/4 ACRNet-20x indoor -32.02dB table1/cr4/20x_in/model.pth
1/4 ACRNet-20x outdoor -14.25dB table1/cr4/20x_out/model.pth
1/8 ACRNet-1x indoor -15.34dB table1/cr8/1x_in/model.pth
1/8 ACRNet-1x outdoor -7.85dB table1/cr8/1x_out/model.pth
1/8 ACRNet-10x indoor -19.75dB table1/cr8/10x_in/model.pth
1/8 ACRNet-10x outdoor -9.22dB table1/cr8/10x_out/model.pth
1/8 ACRNet-20x indoor -20.78dB table1/cr8/20x_in/model.pth
1/8 ACRNet-20x outdoor -9.68dB table1/cr8/20x_out/model.pth
1/16 ACRNet-1x indoor -10.36dB table1/cr16/1x_in/model.pth
1/16 ACRNet-1x outdoor -5.19dB table1/cr16/1x_out/model.pth
1/16 ACRNet-10x indoor -14.32dB table1/cr16/10x_in/model.pth
1/16 ACRNet-10x outdoor -6.30dB table1/cr16/10x_out/model.pth
1/16 ACRNet-20x indoor -15.05dB table1/cr16/20x_in/model.pth
1/16 ACRNet-20x outdoor -6.47dB table1/cr16/20x_out/model.pth
1/32 ACRNet-1x indoor -8.60dB table1/cr32/1x_in/model.pth
1/32 ACRNet-1x outdoor -3.31dB table1/cr32/1x_out/model.pth
1/32 ACRNet-10x indoor -10.52dB table1/cr32/10x_in/model.pth
1/32 ACRNet-10x outdoor -3.83dB table1/cr32/10x_out/model.pth
1/32 ACRNet-20x indoor -10.77dB table1/cr32/20x_in/model.pth
1/32 ACRNet-20x outdoor -4.05dB table1/cr32/20x_out/model.pth
1/64 ACRNet-1x indoor -6.51dB table1/cr64/1x_in/model.pth
1/64 ACRNet-1x outdoor -2.29dB table1/cr64/1x_out/model.pth
1/64 ACRNet-10x indoor -7.44dB table1/cr64/10x_in/model.pth
1/64 ACRNet-10x outdoor -2.61dB table1/cr64/10x_out/model.pth
1/64 ACRNet-20x indoor -7.78dB table1/cr64/20x_in/model.pth
1/64 ACRNet-20x outdoor -2.69dB table1/cr64/20x_out/model.pth

The key results reported in Table II of the paper are listed as follows. Note that all the compression ratio in Table II is 1/4.

Methods Scenario NMSE Checkpoints Path
ACRNet-1x indoor -27.16dB table2/1x/in_cr4/model.pth
ACRNet-1x outdoor -10.71dB table2/1x/out_cr4/model.pth
ACRNet-4x indoor -28.58dB table2/4x/in_cr4/model.pth
ACRNet-4x outdoor -13.13dB table2/4x/out_cr4/model.pth
ACRNet-8x indoor -29.31dB table2/8x/in_cr4/model.pth
ACRNet-8x outdoor -13.45dB table2/8x/out_cr4/model.pth
ACRNet-12x indoor -30.28dB table2/12x/in_cr4/model.pth
ACRNet-12x outdoor -13.91dB table2/12x/out_cr4/model.pth
ACRNet-16x indoor -30.81dB table2/16x/in_cr4/model.pth
ACRNet-16x outdoor -14.16dB table2/16x/out_cr4/model.pth

In order to reproduce the aforementioned key results, you need to download the given dataset and checkpoints. Moreover, you should arrange your project tree as instructed. An example of Experiments/run.sh can be found as follows.

python /home/ACRNet/main.py \
  --data-dir '/home/COST2100' \
  --scenario 'in' \
  --pretrained '/home/Experiments/checkpoints/table1/cr4/1x_in/model.pth' \
  --batch-size 200 \
  --workers 0 \
  --reduction 4 \
  --expansion 1 \
  --gpu 0 \
  2>&1 | tee log.out

Note that the checkpoint must match exactly with the indoor/outdoor scenario and the hyper-parameter of ACRNet, including the reduction and the expansion. Otherwise the checkpoint loading would fail or the result will be incorrect.

Acknowledgment

This repository is modified from the BCsiNet open source code. Please refer to it if you are interested. The open source codes for CRNet and CsiNet can be helpful as well if you are interested in the benchmark networks.

Thank Chao-Kai Wen and Shi Jin group again for providing the pre-processed COST2100 dataset.

acrnet's People

Contributors

kylin9511 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.