{
  "id": 283861,
  "title": "[Hacks List & Code] - Hacks and tricks to boost GANs performance",
  "url": "/competitions/gan-getting-started/discussion/283861",
  "author_name": "",
  "post_date": "2021-10-28T07:39:14.118489400Z",
  "votes": 9,
  "comment_count": 2,
  "views": 0,
  "content": "<p>Topics in this post:</p>\n<ol>\n<li>Hacks &amp; Tricks for boosting GANs performance.</li>\n<li>GANs implemented with keras</li>\n</ol>\n<hr>\n<p><strong>Implementing GANs with keras</strong></p>\n<p>A while ago [part of a research at Tel Aviv university] I implemented a GAN package called AutoGAN for keras. [there wasn't any at the time 😅]<br>\nIt is pretty old nowadays and I don't recommend using it out of the blue.<br>\nAnyhow, I am a huge fan of simple keras implementations so here is a list of simple keras GAN implementations! </p>\n<p>Have Fun!</p>\n<ol>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/aae\" target=\"_blank\">aae gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/acgan\" target=\"_blank\">acgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/bgan\" target=\"_blank\">bgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/bigan\" target=\"_blank\">bigan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/ccgan\" target=\"_blank\">ccgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/cgan\" target=\"_blank\">cgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/cogan\" target=\"_blank\">cogan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/context_encoder\" target=\"_blank\">context_encoder gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/cyclegan\" target=\"_blank\">cyclegan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/dcgan\" target=\"_blank\">dcgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/discogan\" target=\"_blank\">discogan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/dualgan\" target=\"_blank\">dualgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/gan\" target=\"_blank\">gan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/infogan\" target=\"_blank\">infogan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/lsgan\" target=\"_blank\">lsgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/pix2pix\" target=\"_blank\">pix2pix gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/pixelda\" target=\"_blank\">pixelda gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/sgan\" target=\"_blank\">sgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/srgan\" target=\"_blank\">srgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/wgan\" target=\"_blank\">wgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/wgan_gp\" target=\"_blank\">wgan_gp gan</a></li>\n</ol>\n<hr>\n<p><strong>Hacks &amp; Tricks for boosting GANs performance.</strong></p>\n<p>Just found this amazing gem: <a href=\"https://www.kaggle.com/c/generative-dog-images/discussion/98595\" target=\"_blank\">https://www.kaggle.com/c/generative-dog-images/discussion/98595</a></p>\n<p>Jason Brownlee (<a href=\"https://machinelearningmastery.com\" target=\"_blank\">https://machinelearningmastery.com</a>) provides an impressive series of suggestions in our to stabilize your GANs and obtain the best results:</p>\n<ol>\n<li>Downsample Using Strided Convolutions</li>\n<li>Upsample Using Strided Convolutions</li>\n<li>Use LeakyReLU</li>\n<li>Use Batch Normalization</li>\n<li>Use Gaussian Weight Initialization</li>\n<li>Use Adam Stochastic Gradient Descent</li>\n<li>Scale Images to the Range [-1,1]</li>\n<li>Use a Gaussian Latent Space</li>\n<li>Separate Batches of Real and Fake Images</li>\n<li>Use Label Smoothing</li>\n<li>Use Noisy Labels</li>\n</ol>\n<p>You can read all you need to code your optimal GAN in TensorFlow and Keras reading these articles:</p>\n<p><strong>How to Implement GAN Hacks to Train Stable Generative Adversarial Networks</strong>(<a href=\"https://machinelearningmastery.com/how-to-code-generative-adversarial-network-hacks/\" target=\"_blank\">https://machinelearningmastery.com/how-to-code-generative-adversarial-network-hacks/</a>)</p>\n<p><strong>Tips for Training Stable Generative Adversarial Networks</strong>(<a href=\"https://machinelearningmastery.com/how-to-train-stable-generative-adversarial-networks/\" target=\"_blank\">https://machinelearningmastery.com/how-to-train-stable-generative-adversarial-networks/</a>)</p>\n<hr>",
  "messages": [
    {
      "id": "1563330",
      "postDate": "10/28/2021 07:39:14",
      "content": "<p>Topics in this post:</p>\n<ol>\n<li>Hacks &amp; Tricks for boosting GANs performance.</li>\n<li>GANs implemented with keras</li>\n</ol>\n<hr>\n<p><strong>Implementing GANs with keras</strong></p>\n<p>A while ago [part of a research at Tel Aviv university] I implemented a GAN package called AutoGAN for keras. [there wasn't any at the time 😅]<br>\nIt is pretty old nowadays and I don't recommend using it out of the blue.<br>\nAnyhow, I am a huge fan of simple keras implementations so here is a list of simple keras GAN implementations! </p>\n<p>Have Fun!</p>\n<ol>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/aae\" target=\"_blank\">aae gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/acgan\" target=\"_blank\">acgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/bgan\" target=\"_blank\">bgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/bigan\" target=\"_blank\">bigan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/ccgan\" target=\"_blank\">ccgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/cgan\" target=\"_blank\">cgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/cogan\" target=\"_blank\">cogan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/context_encoder\" target=\"_blank\">context_encoder gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/cyclegan\" target=\"_blank\">cyclegan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/dcgan\" target=\"_blank\">dcgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/discogan\" target=\"_blank\">discogan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/dualgan\" target=\"_blank\">dualgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/gan\" target=\"_blank\">gan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/infogan\" target=\"_blank\">infogan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/lsgan\" target=\"_blank\">lsgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/pix2pix\" target=\"_blank\">pix2pix gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/pixelda\" target=\"_blank\">pixelda gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/sgan\" target=\"_blank\">sgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/srgan\" target=\"_blank\">srgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/wgan\" target=\"_blank\">wgan gan</a></li>\n<li><a href=\"https://github.com/eriklindernoren/Keras-GAN/tree/master/wgan_gp\" target=\"_blank\">wgan_gp gan</a></li>\n</ol>\n<hr>\n<p><strong>Hacks &amp; Tricks for boosting GANs performance.</strong></p>\n<p>Just found this amazing gem: <a href=\"https://www.kaggle.com/c/generative-dog-images/discussion/98595\" target=\"_blank\">https://www.kaggle.com/c/generative-dog-images/discussion/98595</a></p>\n<p>Jason Brownlee (<a href=\"https://machinelearningmastery.com\" target=\"_blank\">https://machinelearningmastery.com</a>) provides an impressive series of suggestions in our to stabilize your GANs and obtain the best results:</p>\n<ol>\n<li>Downsample Using Strided Convolutions</li>\n<li>Upsample Using Strided Convolutions</li>\n<li>Use LeakyReLU</li>\n<li>Use Batch Normalization</li>\n<li>Use Gaussian Weight Initialization</li>\n<li>Use Adam Stochastic Gradient Descent</li>\n<li>Scale Images to the Range [-1,1]</li>\n<li>Use a Gaussian Latent Space</li>\n<li>Separate Batches of Real and Fake Images</li>\n<li>Use Label Smoothing</li>\n<li>Use Noisy Labels</li>\n</ol>\n<p>You can read all you need to code your optimal GAN in TensorFlow and Keras reading these articles:</p>\n<p><strong>How to Implement GAN Hacks to Train Stable Generative Adversarial Networks</strong>(<a href=\"https://machinelearningmastery.com/how-to-code-generative-adversarial-network-hacks/\" target=\"_blank\">https://machinelearningmastery.com/how-to-code-generative-adversarial-network-hacks/</a>)</p>\n<p><strong>Tips for Training Stable Generative Adversarial Networks</strong>(<a href=\"https://machinelearningmastery.com/how-to-train-stable-generative-adversarial-networks/\" target=\"_blank\">https://machinelearningmastery.com/how-to-train-stable-generative-adversarial-networks/</a>)</p>\n<hr>",
      "rawMarkdown": "Topics in this post:\n1. Hacks & Tricks for boosting GANs performance.\n2. GANs implemented with keras\n\n____\n\n**Implementing GANs with keras**\n\nA while ago [part of a research at Tel Aviv university] I implemented a GAN package called AutoGAN for keras. [there wasn't any at the time 😅]\nIt is pretty old nowadays and I don't recommend using it out of the blue.\nAnyhow, I am a huge fan of simple keras implementations so here is a list of simple keras GAN implementations! \n\nHave Fun!\n\n0. [aae gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/aae)\n1. [acgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/acgan)\n2. [bgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/bgan)\n3. [bigan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/bigan)\n4. [ccgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/ccgan)\n5. [cgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/cgan)\n6. [cogan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/cogan)\n7. [context_encoder gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/context_encoder)\n8. [cyclegan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/cyclegan)\n9. [dcgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/dcgan)\n10. [discogan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/discogan)\n11. [dualgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/dualgan)\n12. [gan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/gan)\n13. [infogan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/infogan)\n14. [lsgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/lsgan)\n15. [pix2pix gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/pix2pix)\n16. [pixelda gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/pixelda)\n17. [sgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/sgan)\n18. [srgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/srgan)\n19. [wgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/wgan)\n20. [wgan_gp gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/wgan_gp)\n\n____\n\n**Hacks & Tricks for boosting GANs performance.**\n\nJust found this amazing gem: https://www.kaggle.com/c/generative-dog-images/discussion/98595\n\nJason Brownlee (https://machinelearningmastery.com) provides an impressive series of suggestions in our to stabilize your GANs and obtain the best results:\n\n1. Downsample Using Strided Convolutions\n2. Upsample Using Strided Convolutions\n3. Use LeakyReLU\n4. Use Batch Normalization\n5. Use Gaussian Weight Initialization\n6. Use Adam Stochastic Gradient Descent\n7. Scale Images to the Range [-1,1]\n8. Use a Gaussian Latent Space\n9. Separate Batches of Real and Fake Images\n10. Use Label Smoothing\n11. Use Noisy Labels\n\nYou can read all you need to code your optimal GAN in TensorFlow and Keras reading these articles:\n\n**How to Implement GAN Hacks to Train Stable Generative Adversarial Networks**(https://machinelearningmastery.com/how-to-code-generative-adversarial-network-hacks/)\n\n**Tips for Training Stable Generative Adversarial Networks**(https://machinelearningmastery.com/how-to-train-stable-generative-adversarial-networks/)\n____",
      "votes": null
    },
    {
      "id": "1706143",
      "postDate": "02/27/2022 08:43:43",
      "content": "<p>Thank you so much for sharing the knowledge! Really appreciate it!</p>",
      "rawMarkdown": "Thank you so much for sharing the knowledge! Really appreciate it!",
      "votes": null
    },
    {
      "id": "1714723",
      "postDate": "03/07/2022 08:56:06",
      "content": "<p>What, no GAN-ensemble? :P</p>",
      "rawMarkdown": "What, no GAN-ensemble? :P",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1706143,
      "author_name": "nanditab35",
      "author_url": "",
      "post_date": "02/27/2022 08:43:43",
      "content": "<p>Thank you so much for sharing the knowledge! Really appreciate it!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1714723,
      "author_name": "danofer",
      "author_url": "",
      "post_date": "03/07/2022 08:56:06",
      "content": "<p>What, no GAN-ensemble? :P</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1563330": "Topics in this post:\n1. Hacks & Tricks for boosting GANs performance.\n2. GANs implemented with keras\n\n____\n\n**Implementing GANs with keras**\n\nA while ago [part of a research at Tel Aviv university] I implemented a GAN package called AutoGAN for keras. [there wasn't any at the time 😅]\nIt is pretty old nowadays and I don't recommend using it out of the blue.\nAnyhow, I am a huge fan of simple keras implementations so here is a list of simple keras GAN implementations! \n\nHave Fun!\n\n0. [aae gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/aae)\n1. [acgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/acgan)\n2. [bgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/bgan)\n3. [bigan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/bigan)\n4. [ccgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/ccgan)\n5. [cgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/cgan)\n6. [cogan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/cogan)\n7. [context_encoder gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/context_encoder)\n8. [cyclegan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/cyclegan)\n9. [dcgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/dcgan)\n10. [discogan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/discogan)\n11. [dualgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/dualgan)\n12. [gan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/gan)\n13. [infogan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/infogan)\n14. [lsgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/lsgan)\n15. [pix2pix gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/pix2pix)\n16. [pixelda gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/pixelda)\n17. [sgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/sgan)\n18. [srgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/srgan)\n19. [wgan gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/wgan)\n20. [wgan_gp gan](https://github.com/eriklindernoren/Keras-GAN/tree/master/wgan_gp)\n\n____\n\n**Hacks & Tricks for boosting GANs performance.**\n\nJust found this amazing gem: https://www.kaggle.com/c/generative-dog-images/discussion/98595\n\nJason Brownlee (https://machinelearningmastery.com) provides an impressive series of suggestions in our to stabilize your GANs and obtain the best results:\n\n1. Downsample Using Strided Convolutions\n2. Upsample Using Strided Convolutions\n3. Use LeakyReLU\n4. Use Batch Normalization\n5. Use Gaussian Weight Initialization\n6. Use Adam Stochastic Gradient Descent\n7. Scale Images to the Range [-1,1]\n8. Use a Gaussian Latent Space\n9. Separate Batches of Real and Fake Images\n10. Use Label Smoothing\n11. Use Noisy Labels\n\nYou can read all you need to code your optimal GAN in TensorFlow and Keras reading these articles:\n\n**How to Implement GAN Hacks to Train Stable Generative Adversarial Networks**(https://machinelearningmastery.com/how-to-code-generative-adversarial-network-hacks/)\n\n**Tips for Training Stable Generative Adversarial Networks**(https://machinelearningmastery.com/how-to-train-stable-generative-adversarial-networks/)\n____",
    "1706143": "Thank you so much for sharing the knowledge! Really appreciate it!",
    "1714723": "What, no GAN-ensemble? :P"
  },
  "source": "meta"
}