{
  "id": 98519,
  "title": "Conv2DTranspose or UpSampling2D ?",
  "url": "/competitions/generative-dog-images/discussion/98519",
  "author_name": "",
  "post_date": "2019-07-04T10:21:19.218478500Z",
  "votes": 15,
  "comment_count": 4,
  "views": 0,
  "content": "<p>If you are using TensorFlow and you are uncertain if in your generator you should use tf.keras.layers.Conv2DTranspose (<a href=\"https://www.tensorflow.org/api_docs/python/tf/keras/layers/Conv2DTranspose\">https://www.tensorflow.org/api_docs/python/tf/keras/layers/Conv2DTranspose</a>) or tf.keras.layers.UpSampling2D (<a href=\"https://www.tensorflow.org/api_docs/python/tf/keras/layers/UpSampling2D\">https://www.tensorflow.org/api_docs/python/tf/keras/layers/UpSampling2D</a>), you can find an interesting answer in this interesting article by Augustus Odena (Google Brain), Vincent Dumoulin (Université de Montréal) and Chris Olah (Google Brain):</p>\n\n<p>\"Deconvolution and Checkerboard Artifacts\" (<a href=\"https://distill.pub/2016/deconv-checkerboard/\">https://distill.pub/2016/deconv-checkerboard/</a>)</p>",
  "messages": [
    {
      "id": "568039",
      "postDate": "07/04/2019 10:21:19",
      "content": "<p>If you are using TensorFlow and you are uncertain if in your generator you should use tf.keras.layers.Conv2DTranspose (<a href=\"https://www.tensorflow.org/api_docs/python/tf/keras/layers/Conv2DTranspose\">https://www.tensorflow.org/api_docs/python/tf/keras/layers/Conv2DTranspose</a>) or tf.keras.layers.UpSampling2D (<a href=\"https://www.tensorflow.org/api_docs/python/tf/keras/layers/UpSampling2D\">https://www.tensorflow.org/api_docs/python/tf/keras/layers/UpSampling2D</a>), you can find an interesting answer in this interesting article by Augustus Odena (Google Brain), Vincent Dumoulin (Université de Montréal) and Chris Olah (Google Brain):</p>\n\n<p>\"Deconvolution and Checkerboard Artifacts\" (<a href=\"https://distill.pub/2016/deconv-checkerboard/\">https://distill.pub/2016/deconv-checkerboard/</a>)</p>",
      "rawMarkdown": "If you are using TensorFlow and you are uncertain if in your generator you should use tf.keras.layers.Conv2DTranspose (https://www.tensorflow.org/api_docs/python/tf/keras/layers/Conv2DTranspose) or tf.keras.layers.UpSampling2D (https://www.tensorflow.org/api_docs/python/tf/keras/layers/UpSampling2D), you can find an interesting answer in this interesting article by Augustus Odena (Google Brain), Vincent Dumoulin (Université de Montréal) and Chris Olah (Google Brain):\n\n\"Deconvolution and Checkerboard Artifacts\" (https://distill.pub/2016/deconv-checkerboard/)",
      "votes": null
    },
    {
      "id": "568062",
      "postDate": "07/04/2019 10:51:49",
      "content": "<p>Great read, thanks!</p>",
      "rawMarkdown": "Great read, thanks!",
      "votes": null
    },
    {
      "id": "568727",
      "postDate": "07/05/2019 10:35:53",
      "content": "<p>Hmm, it's interesting. Thank you for this articles!</p>",
      "rawMarkdown": "Hmm, it's interesting. Thank you for this articles!",
      "votes": null
    },
    {
      "id": "569094",
      "postDate": "07/06/2019 03:32:22",
      "content": "<p>Interesting...</p>",
      "rawMarkdown": "Interesting...",
      "votes": null
    },
    {
      "id": "573167",
      "postDate": "07/11/2019 21:49:17",
      "content": "<p>Palermo posted a great kernel <a href=\"https://www.kaggle.com/mpalermo/remove-grideffect-on-generated-images/notebook\">here</a> comparing the two approaches. He produces the following two examples. Upsample + Convolution makes beautiful images!</p>\n\n<h2>Generator with TransposeConvolutions</h2>\n\n<p><img src=\"http://playagricola.com/Kaggle/one71119.png\" alt=\"image\"></p>\n\n<h2>Generator with Upsample(bilinear) + Convolution(3x3)</h2>\n\n<p><img src=\"http://playagricola.com/Kaggle/two71119.png\" alt=\"image\"></p>",
      "rawMarkdown": "Palermo posted a great kernel [here][1] comparing the two approaches. He produces the following two examples. Upsample + Convolution makes beautiful images!\n## Generator with TransposeConvolutions\n![image](http://playagricola.com/Kaggle/one71119.png)\n## Generator with Upsample(bilinear) + Convolution(3x3)\n![image](http://playagricola.com/Kaggle/two71119.png)\n\n[1]: https://www.kaggle.com/mpalermo/remove-grideffect-on-generated-images/notebook",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 568062,
      "author_name": "ilu000",
      "author_url": "",
      "post_date": "07/04/2019 10:51:49",
      "content": "<p>Great read, thanks!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 568727,
      "author_name": "bejeweled",
      "author_url": "",
      "post_date": "07/05/2019 10:35:53",
      "content": "<p>Hmm, it's interesting. Thank you for this articles!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 569094,
      "author_name": "interneuron",
      "author_url": "",
      "post_date": "07/06/2019 03:32:22",
      "content": "<p>Interesting...</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 573167,
      "author_name": "cdeotte",
      "author_url": "",
      "post_date": "07/11/2019 21:49:17",
      "content": "<p>Palermo posted a great kernel <a href=\"https://www.kaggle.com/mpalermo/remove-grideffect-on-generated-images/notebook\">here</a> comparing the two approaches. He produces the following two examples. Upsample + Convolution makes beautiful images!</p>\n\n<h2>Generator with TransposeConvolutions</h2>\n\n<p><img src=\"http://playagricola.com/Kaggle/one71119.png\" alt=\"image\"></p>\n\n<h2>Generator with Upsample(bilinear) + Convolution(3x3)</h2>\n\n<p><img src=\"http://playagricola.com/Kaggle/two71119.png\" alt=\"image\"></p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "568039": "If you are using TensorFlow and you are uncertain if in your generator you should use tf.keras.layers.Conv2DTranspose (https://www.tensorflow.org/api_docs/python/tf/keras/layers/Conv2DTranspose) or tf.keras.layers.UpSampling2D (https://www.tensorflow.org/api_docs/python/tf/keras/layers/UpSampling2D), you can find an interesting answer in this interesting article by Augustus Odena (Google Brain), Vincent Dumoulin (Université de Montréal) and Chris Olah (Google Brain):\n\n\"Deconvolution and Checkerboard Artifacts\" (https://distill.pub/2016/deconv-checkerboard/)",
    "568062": "Great read, thanks!",
    "568727": "Hmm, it's interesting. Thank you for this articles!",
    "569094": "Interesting...",
    "573167": "Palermo posted a great kernel [here][1] comparing the two approaches. He produces the following two examples. Upsample + Convolution makes beautiful images!\n## Generator with TransposeConvolutions\n![image](http://playagricola.com/Kaggle/one71119.png)\n## Generator with Upsample(bilinear) + Convolution(3x3)\n![image](http://playagricola.com/Kaggle/two71119.png)\n\n[1]: https://www.kaggle.com/mpalermo/remove-grideffect-on-generated-images/notebook"
  },
  "source": "meta"
}