In this post, I use General Adversarial Networks (GANs), specifically Wasserstein GANs to generate images based on three training sets. All three training sets are image-based and happen to feature tobacco products. As an avid cigar smoker, who works out of cigar shops quite a bit, it’s not difficult to see where the inspiration came from.
Since there are many excellent resources that provide a good general introduction to the theory of GANs, I will refrain from going into depth on the topic. To keep things simple, the general idea is to create two neural networks, one called a Generator and the other referred to as a Discriminator. The Generator creates fakes. The Discriminator passes judgment of whether the output of the Generator is a legitimate example of the class, by developing a data distribution (think model) and judging images based on that distribution.