gan网络
所属分类:网络
开发工具:Python
文件大小:59KB
下载次数:0
上传日期:2022-06-17 17:13:00
上 传 者:
夏未末
说明: 在训练过程中,生成网络的目标就是尽量生成真实的图片去欺骗判别网络D。而网络D的目标就是尽量把网络G生成的图片和真实的图片分别开来。这样,G和D构成了一个动态的“博弈过程”。这个博弈过程具体是怎么样的呢?
文件列表:
CODEMETA.yaml (1641, 2022-01-06)
LICENSE.md (2128, 2022-01-06)
data_loading.py (11111, 2022-01-06)
experiment_resources (0, 2022-01-06)
experiment_resources\configuration_dictionary_description.csv (2380, 2022-01-06)
experiment_resources\pip_requirements.txt (108, 2022-01-06)
experiment_resources\requirements.txt (4638, 2022-01-06)
experiment_resources\test_configs_channel_STFTGAN.csv (110, 2022-01-06)
experiment_resources\test_configs_complexity_PSKGAN.csv (763, 2022-01-06)
experiment_resources\test_configs_complexity_STFTGAN.csv (768, 2022-01-06)
experiment_resources\test_configs_complexity_WaveGAN.csv (724, 2022-01-06)
experiment_resources\test_configs_impairments_STFTGAN.csv (77, 2022-01-06)
experiment_resources\test_configs_impairments_STFTGAN_2.csv (102, 2022-01-06)
experiment_resources\test_configs_modulation_STFTGAN.csv (266, 2022-01-06)
experiment_resources\trainspecs_dict.py (2824, 2022-01-06)
gan_evaluation.py (21778, 2022-01-06)
gan_models (0, 2022-01-06)
gan_models\DirectWaveGAN.py (8668, 2022-01-06)
gan_models\SFTFGAN.py (5580, 2022-01-06)
gan_models\__init__.py (0, 2022-01-06)
gan_train.py (17095, 2022-01-06)
licensing_statement.txt (1626, 2022-01-06)
main.py (6699, 2022-01-06)
scripts (0, 2022-01-06)
scripts\plotting_script.py (35278, 2022-01-06)
scripts\target_data_synth.py (3635, 2022-01-06)
utils (0, 2022-01-06)
utils\__init__.py (18, 2022-01-06)
utils\channel_models.py (5146, 2022-01-06)
utils\construct_ofdm.py (14645, 2022-01-06)
utils\evaluate_ofdm.py (21010, 2022-01-06)
utils\gan_configurator.py (3726, 2022-01-06)
utils\impairments.py (1422, 2022-01-06)
utils\synthetic_ofdm_modem.py (22422, 2022-01-06)
# **Software for Modeling OFDM Communication Signals with Generative Adversarial Networks**
This repository contains Python code to generate results for experiments on generative modeling of radio frequency (RF) communication signals, specifically synthetic Orthogonal-Frequency Division Multiplexing (OFDM) signals. This code implements two novel Generative adversarial network (GAN)
models, a 1D and 2D convolutional model, named **PSK-GAN** and **STFT-GAN**, respectively, as well as the **WaveGAN** model architecture as
a baseline for comparison. All three GAN models are trained on synthetic datasets over a range of OFDM parameters and conditions and evaluate
their performance with simulated datasets.
## Software Implementation
The software enables automated testing of many model configurations across different datasets. Model creation and training is implemented
using the Pytorch library. This repository contains files for initializing the experiment test runs (`main.py`), training of GAN models(`gan_train.py`), loading target distributions (`data_loading.py`), and evaluation(`gan_evaluation.py`) of generated distributions. The `/utils` directory contains
supporting modules for target dataset creation, and model evaluation. The `models/` directory contains modules that create **PSK-GAN**, **STFT-GAN**,
and **WaveGAN** architectures.
Running `main.py` runs the default GAN configuration specified by the configuration dictionary `./experiment_resources/training_specs_dict.py`.
Descriptions for the fields specified in `./experiment_resources/training_specs_dict.py` are located in
`./experiment_resources/configuration_dictionary_description.csv`. Additionally, a set of model configurations can be run in an automated fashion
by passing a configuration table (csv file) as an argument to the main python module (ex. `main.py --configs path_to_config_table.csv`). Column labels
of a configuration table should correspond to desired keys in the GAN configuration dictionary that are to be changed across runs.
The training and test target datasets used in this study were synthesized using the script
`scripts/target_data_synth.py` and are provided in a separate gzip file, `target_distributions.tar.gz`. To execute experiments, first unzip this file and place its contents in a subdirectory named `Data/`. When running the models, experimental results are saved in `experiment_results/`, which is divided into sub-folders corresponding to each experiment. Each experiment folder contains sub-folders with results from three trials of each test configuration. Each test-trial folder contains saved GAN models, training metadata, as well as evaluations of the generated distributions. Previously-computed experimental results are saved in `experiment_results.tar.gz`
## Requirements
We use a `conda` virtual environment to manage the project library dependencies.
Run the following commands to install requirements to a new conda environment:
```setup
conda create --name --file .experiment_resources/requirements.txt
conda activate
pip install -r .experiment_resources/pip_requirements.txt
```
## Running Experiments
This code executes three experiments: (1) a data complexity experiment, (2) a modulation order experiment, and (3) a fading channel experiment. In order to reproduce results from each of the three experiments, run
```angular2html
main.py --configs ./experiment_resources/test_configs_complexity_PSKGAN.csv
main.py --configs ./experiment_resources/test_configs_complexity_WaveGAN.csv
main.py --configs ./experiment_resources/test_configs_complexity_STFTGAN.csv
main.py --configs ./experiment_resources/test_configs_modulation_STFTGAN.csv
main.py --configs ./experiment_resources/test_configs_channel_STFTGAN.csv
```
Aggregated plots across model runs are created using the script `./scripts/plotting_script.py`.
## Implementation Notes
Single process multi-GPU training is done using Pytorch's DataParallel method, in order to increase training speed.
(Multi-process multi-GPU (DistributedDataParallel) is not compatible with the gradient penalty operation (autograd.grad)
and is not recommended when using Wasserstein-GP loss).
## Authors
Jack Sklar (jack.sklar@nist.gov) and Adam Wunderlich (adam.wunderlich@nist.gov) \
Communications Technology Laboratory \
National Institute of Standards and Technology \
Boulder, Colorado
## Acknowledgements
The authors thank Ian Wilkins and Sumeet Batra for their contributions to an early version of this software.
## Licensing Statement
This software was developed by employees of the National Institute of Standards and Technology (NIST), an
agency of the Federal Government and is being made available as a public service. Pursuant to title 17 United
States Code Section 105, works of NIST employees are not subject to copyright protection in the United States.
This software may be subject to foreign copyright. Permission in the United States and in foreign countries,
to the extent that NIST may hold copyright, to use, copy, modify, create derivative works, and distribute this
software and its documentation without fee is hereby granted on a non-exclusive basis, provided that this
notice and disclaimer of warranty appears in all copies.
THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY,
INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM INFRINGEMENT, AND ANY WARRANTY
THAT THE DOCUMENTATION WILL CONFORM TO THE SOFTWARE, OR ANY WARRANTY THAT THE SOFTWARE WILL BE ERROR FREE. IN
NO EVENT SHALL NIST BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT, INDIRECT, SPECIAL OR
CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM, OR IN ANY WAY CONNECTED WITH THIS SOFTWARE, WHETHER OR NOT
BASED UPON WARRANTY, CONTRACT, TORT, OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY PERSONS OR PROPERTY OR
OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED FROM, OR AROSE OUT OF THE RESULTS OF, OR USE OF, THE SOFTWARE
OR SERVICES PROVIDED HEREUNDER.
近期下载者:
相关文件:
收藏者: