Pytorch implementation of an airfoil generator via a Variational Autoencoder.
Developed in order to use as a sampler/generator for airfoil shape aeroacoustic optimization problems.
The root of the repository contains three Jupyter notebooks.
- AirfoilVAE.ipynb: for general purpose exploration of network architectures and parameters, sampling and plotting airfoils.
- AirfoilVAE_hyperOpt.ipynb: used for optimizing the network's architecture using Bayesian optimization (TPE + HyperBand) through the Optuna package.
- AirfoilVAE_opt.ipynb: used to train the final model with the parameters from the hyperparameter optimization.
Data can be found in ./data/ and the final script that allows sampling of aifoils through external modification of the latent variables is in ./model/vae_generator.py.
Folder ./archive/ contains test network architectures, previously trained models and other files.
This work draws heavily from:
- Pytorch VAE - https://github.com/AntixK/PyTorch-VAE
- Kingma, D., Welling, M. Auto-Encoding Variational Bayes - https://arxiv.org/abs/1312.6114
- Asperti, A., Trentin, M. Balancing reconstruction error and Kullback-Leibler divergence in Variational Autoencoders - https://arxiv.org/abs/2002.07514