This repo is the implementation of our paper "A Scalable and Generalizable Pathloss Map Prediction", as well as the follow-ups.
- PMNet (NN tailored for Pathloss Map Prediction (PMP)) is described in arxiv, which serves as a backbone for the PMP task.
- PMNet achieves strong performance on the PMP task (
$10^{-2}$ level RMSE on val), surpassing other models by a large margin. - Proposed a method to predict pathloss in unseen network scenarios using transfer learning (TL) with three pre-trained models: VGG16 and two PMNet models. Our PMNet pre-trained model generalizes well, adapting to new scenarios 5.6× faster and using 4.5× less data, while maintaining high accuracy (RMSE
$10^{-2}$ level). - This repository includes the training/test dataset and pre-trained model/checkpoints.
@article{lee2024scalable,
title={A Scalable and Generalizable Pathloss Map Prediction},
author={Ju-Hyung Lee and Andreas F. Molisch},
year={2024},
journal={IEEE Transactions on Wireless Communnications (TWC)}
}
@inproceedings{lee2023pmnet,
title={PMNet: Robust Pathloss Map Prediction via Supervised Learning},
author={Ju-Hyung Lee and Omer Gokalp Serbetci and Dheeraj Panneer Selvam and Andreas F. Molisch},
year={2023},
month={December},
booktitle={Proc. of IEEE Global Communicaions Conference (GLOBECOM)},
}
# | Dataset (Map) | # of samples | Download Link |
---|---|---|---|
1 | USC | 4754 | Download |
2 | UCLA | 3776 | Download |
3 | Boston | 3143 | Download |
4 | USC-Upgraded | 8912 | Download |
5 | Rural | 328 | Download |
# | Feature Size | Data-Augmentation | Fine-Tuning | RMSE | Download Link |
---|---|---|---|---|---|
1 | 16/H X 16/W | 4-way rotation | - | 0.012599 | Download |
2 | 8/H X 8/W | 4-way rotation | - | 0.010570 | Download |
3 | 16/H X 16/W | - | UCLA Dataset | 0.031449 | Download |
4 | 16/H X 16/W | - | Boston Dataset | 0.009875 | Download |
5 | 8/H X 8/W | 4-way rotation | - | 0.008944 | Download |
- #3,4 checkpoints were fine-tuned using (1), a pre-trained model with USC Dataset.
- #5 was trained on USC-Upgraded dataset.
To train PMNet, please refer to train.sh
python train.py -d [dataset-root] -n [network-type] -c [config-class-name]
# e.g., python train.py -d '/USC/' -n 'pmnet_v3' -c 'config_USC_pmnetV3_V2'
To evaluate above models, refer to the following commands. Or, you can run eval.sh
python eval.py \
--data_root [dataset-directory] \
--network [network-type] \ # pmnet_v1 or pmnet_v3
--model_to_eval [model-to-eval] \
--config [config-class-name]
# e.g.,
# python eval.py \
# --data_root '/USC/' \
# --network 'pmnet_v3' \
# --model_to_eval 'config_USC_pmnetV3_V2_epoch30/16_0.0001_0.5_10/model_0.00012.pt' \
# --config 'config_USC_pmnetV3_V2'