The 3D porous media generation using a Wasserstein GAN with gradient penalty (here named as RockGAN) was born as part of a course project at KAUST. The main inspiration comes from the novel ideal of Lukas Mosser , which consisted of applying Generative Adversarial Networks (GANs) as a new tool to generate random samples corresponding to a rock sample of interest rather than applying the conventional multi-point statistics .
What will you find here?
The reader will find a short description of the project delivered in a friendly way and a nutshell. For more technical details, we suggest reading the conference paper submitted , which also contains the GitHub repository. For this project, we simply started trying to produce quality samples in 2D for the Berea and Beadpack dataset. The architecture was slightly different from what you will see in the upcoming sections. However, there is no so much attention if only 2D samples are reproduced. In this study, we satisfy the following questions:
How should we create our dataset?
What kind of architecture should we implement?
What loss function is more suitable?
Should we use normalization in both networks and which kind of it?
Is it possible to add physical constraints in the loss to make more representative samples?
Just remember that GANs are quite of trial and error :D. I hope you enjoy it!
Workflow
Here, we take a similar but different approach. Our work is based on some key points from the paper from Tego Karras at NVIDIA . The main ideas are:
Growing progressively from low to high dimension (Critic in the opposite way).
Use normalization just in one of the layers.
We tested different activation functions, at the end, better results were achieve using GELU.
We used the Wasserstein formulation with gradient penalty.
The main workflow idea is expressed in the following figure:
Training RockGAN workflow proposed.
Results
Let us compare the results obtained with RockGAN and the training data of the Berea dataset.
Real samples
Random samples corresponding to the training dataset.
Generated samples
Samples generated by RockGAN.
Publication
More details about the project could be found on the following publication: RockGAN.