The purpose of the classifier is to act like a discriminator and improve the performance of the 1st generator. It’s also useful for me to know when the input of the 2nd generator is encoded or not encoded.
It’s worth saying that the 1st and 2nd generators still train perfectly fine and achieve similar results to when the classifier is not included. What’s weird is the loss function of the classifier decreases when the model is training, i.e. when classifier.train() is called, but not when it is evaluated, i.e. when classifier.eval() is called.