-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Training issues #2
Comments
Hey André, thanks for your interest. If you're looking to stop then resume training you should save the weights for the generator, the encoder, the image discriminator, and the latent vector discriminator (although the AEGAN recovers pretty well when resuming with a brand new encoder and discriminators; this may be a useful regularization technique to look into). As for changing the architecture, you'll have to tweak the generator, encoder, and discriminator classes. GANs are a lot of trial and error, and I tuned this one to work with 96x96 images so you'll have to experiment with different layer shapes to see what works for you. |
Thanks a lot for the answers, I'll keep on the path of saving all weights and maybe exploring different hyperparameters. I'm training it currently on what seems to be a slightly more complete sprite dataset than what you used to generate pokémon. |
Just a little thing for you: https://www.youtube.com/watch?v=JpTDWyAQTiA |
First of all, love the video 😄 It's been a while, but as best as I can recall, these are the steps I took in data prepossessing (not in any particular order):
Actually, I just realized I still have the formatted sprites. Here you go!
Yeah, that'll happen. Exploring alternative losses might be a good path forward, and adjusting your learning rate might help too. Happy hunting! |
Thanks for seeing my video and for the clarification. I will have a look at the files, I believe that the transparent layer was detrimental to my experiments as the images were sometimes read as having black backgrounds and sometimes white backgrounds, which was reflected on the reconstructed and generated images. I didn't include shinies nor back sprites nor females, in part of the experiments I removed eggs, the question mark and images that gave CRC warnings from imagemagick. One idea for a conditional GAN is dividing by body shapes: https://bulbapedia.bulbagarden.net/wiki/List_of_Pokémon_by_shape Right now I'm training it on the bigger newer version of the dataset with females and shinies, but with the white background preprocessing and removing the eggs and the question mark. Do you have any more philosophical thoughts about the limits of AI? The most striking thing about this instance of AEGAN to me is that it signs that we have at least a very rough version of what would be a mathematical description of visual artistic creation. Do you believe that this field can (and should) go much further or will we hit a wall as Moore's Law dies out, we fail to get feasible bigger quantum computers and hurt ourselves on environment and health issues? |
I appreciate the enthusiasm but I don't think I'm qualified to talk much on those topics. But I wouldn't call GANs a mathematical description of artistic creation; rather, they're just effective tools at approximating probability distributions in pixel space. |
Just updating, I've quite succeeded in training it on that updated version of the dataset. In the middle of the process, I discarded the 3D model pictures and ended up with 2583 sprites. As in your experiments, it seems good in creating unown variants. Besides that, in more than one training, I've witnessed great reconstruction of Arceus. |
Looks great, I'm glad it's working for you! Unknowns and Arceus are are overrepresented in the dataset; unknowns because they all look similar, and arceus because he has a different palette for each type. To avoid biasing the GAN, it might be worthwhile to remove most of the Arceus sprites. |
Hello, I admire your work here, I love GANs and Pokémon, I've read your paper on AEGAN and I have some questions. How should I properly resume the training? Is it enough to save the generator weights or does it make too hard for the discriminators training to converge? Should I save the four networks? The generator and the encoder? Any other variable? How should I change the architecture to support 48x48 or 32x32 datasets to make the training faster?
The text was updated successfully, but these errors were encountered: