This repository aims to track the various projects I will be developing in the study of Genrative Adversarial Networks (GAN), with the goal of learning the skills to generate AI-based art. I will rely mostly on the master in Deep Learning that I am following, run by Deep Learning Italia Academy I will also use the tutorials and official guides that can be found in the documentation of TenforFlow and PyThorch, as well as follow the course Complete A.I. Art Generation Course - Beginner 2 MASTER.
Technologies based on these networks have made possible the creation of "pieces of art" that have also often been used as NFTs.
-
This is my first attempt at creating a GAN. The network is able to generate images similar to those of the classic MNIST dataset, starting from simple noise taken from a random distribution. I learned to develop a generator and a discriminator and then combine them in the final GAN. Certainly the training phase is more complicated than the development of a classic network because we must consider that we use two networks that fight against each other and it is essential to freeze the weights of the discriminator when appropriate.
-
Project very similar to the previous one, the difference is that the Cifar 10 dataset has been used, so I had to treat RGB images and adapt the code to handle 3 channels.
-
In this project I used a custom dataset. Using the download all imsges plugin of google chrome, I was able to create a custom dataset that I had to handle resizing all the images in a shape that could match the Neural Network
-
I fed the network with images of paintings, unlike the previous project, I went to save the weights of the generator and discriminator in h5 format.
-
In this project I used a LSTM network, so that I can manage temporal sequences (you can think of a sentence as a sequence of words in time). I fed the network with data from Shakespear plays to generate new tests. I made use of the tokenizer provided by keras and used an n gram approach.
-
In this projects I used a LSTM network with bidirectionals layers in order to improve the learning capacity. The network was trained with star wars movie scripts of Episode IV, V an VI
-
The powerful technology of GPT2 could have extraordinary and varied applications, not to mention its successor GPT3. Here I use this technology to create a simple blog generator, given a topic the network will create a small text on that topic.
-
Using a dataset of songs in MIDI format is possible to implement a network, in this case LSTM, to generate songs. Basically a song is seen as a temporal serie, with notes that follow each other in time, this way we can process the data and feed them to the network.