{
  "id": 109645,
  "title": "Augmentations thred",
  "url": "/competitions/understanding_cloud_organization/discussion/109645",
  "author_name": "Brian Lee",
  "post_date": "2019-09-20T20:19:55.451000",
  "votes": 28,
  "comment_count": 20,
  "views": 0,
  "content": "<p>I am making this thread with hopes of sharing what augmentations worked and did not work with the community. Looking forward to others sharing as well. I'll start\n- my latest approach used the following augmentations (library: albumentations):\n1. Resize to 320x640 first for faster processing\n2. Horizontal/vertical flip\n3. Blur\n4. ShiftScaleRotate\n5. RandomSizedCrop\n6. RandomBrightness\n7. RandomConstrast\n8. GridDistortion\n9. OpticalDistortion</p>\n\n<p>UPDATE 1: RandomGamma() did not seem to help.</p>\n\n<p>UPDATE 2: Related to <a href=\"/lightnezzofbeing\">@lightnezzofbeing</a> 's comment, I tried grayscale input (stacked to 3 channels for pre-trained weights) with CLAHE propoecssing on top of what I had. It saw an overall ~0.05 improvement in validation but not in LB. I plan to further experiment it later in comp as I don't trust LB.</p>\n\n<p>UPDATE 3: Model seems to perform better with output size closer matching submission size (320x512), perhaps receptive field idk. It performs better on validation without much change apart from this, but LB score didn't change.</p>\n\n<p>I am still configuring what values would be appropriate, but this set of augmentations got me to current score of 0.657. Another worry is that I saw overall decrease in validation, but improvement in public LB (which is a mild PTSD given I just finished APTOS 😟 )</p>\n\n<p>In terms of actually training the model I based my code from Andrew's ( <a href=\"/artgor\">@artgor</a>  ) kernel, which I thank greatly for! </p>\n\n<p>Also, <a href=\"/ratthachat\">@ratthachat</a> 's kernel helped me boost my score. Check it out at:\n<a href=\"https://www.kaggle.com/ratthachat/cloud-convexhull-polygon-postprocessing-no-gpu\">https://www.kaggle.com/ratthachat/cloud-convexhull-polygon-postprocessing-no-gpu</a></p>",
  "messages": [
    {
      "id": 630836,
      "postDate": "2019-09-20T20:19:55.453Z",
      "content": "<p>I am making this thread with hopes of sharing what augmentations worked and did not work with the community. Looking forward to others sharing as well. I'll start\n- my latest approach used the following augmentations (library: albumentations):\n1. Resize to 320x640 first for faster processing\n2. Horizontal/vertical flip\n3. Blur\n4. ShiftScaleRotate\n5. RandomSizedCrop\n6. RandomBrightness\n7. RandomConstrast\n8. GridDistortion\n9. OpticalDistortion</p>\n\n<p>UPDATE 1: RandomGamma() did not seem to help.</p>\n\n<p>UPDATE 2: Related to <a href=\"/lightnezzofbeing\">@lightnezzofbeing</a> 's comment, I tried grayscale input (stacked to 3 channels for pre-trained weights) with CLAHE propoecssing on top of what I had. It saw an overall ~0.05 improvement in validation but not in LB. I plan to further experiment it later in comp as I don't trust LB.</p>\n\n<p>UPDATE 3: Model seems to perform better with output size closer matching submission size (320x512), perhaps receptive field idk. It performs better on validation without much change apart from this, but LB score didn't change.</p>\n\n<p>I am still configuring what values would be appropriate, but this set of augmentations got me to current score of 0.657. Another worry is that I saw overall decrease in validation, but improvement in public LB (which is a mild PTSD given I just finished APTOS 😟 )</p>\n\n<p>In terms of actually training the model I based my code from Andrew's ( <a href=\"/artgor\">@artgor</a>  ) kernel, which I thank greatly for! </p>\n\n<p>Also, <a href=\"/ratthachat\">@ratthachat</a> 's kernel helped me boost my score. Check it out at:\n<a href=\"https://www.kaggle.com/ratthachat/cloud-convexhull-polygon-postprocessing-no-gpu\">https://www.kaggle.com/ratthachat/cloud-convexhull-polygon-postprocessing-no-gpu</a></p>",
      "rawMarkdown": "I am making this thread with hopes of sharing what augmentations worked and did not work with the community. Looking forward to others sharing as well. I'll start\n- my latest approach used the following augmentations (library: albumentations):\n1. Resize to 320x640 first for faster processing\n2. Horizontal/vertical flip\n3. Blur\n4. ShiftScaleRotate\n5. RandomSizedCrop\n6. RandomBrightness\n7. RandomConstrast\n8. GridDistortion\n9. OpticalDistortion\n\nUPDATE 1: RandomGamma() did not seem to help.\n\nUPDATE 2: Related to @lightnezzofbeing 's comment, I tried grayscale input (stacked to 3 channels for pre-trained weights) with CLAHE propoecssing on top of what I had. It saw an overall ~0.05 improvement in validation but not in LB. I plan to further experiment it later in comp as I don't trust LB.\n\nUPDATE 3: Model seems to perform better with output size closer matching submission size (320x512), perhaps receptive field idk. It performs better on validation without much change apart from this, but LB score didn't change.\n\nI am still configuring what values would be appropriate, but this set of augmentations got me to current score of 0.657. Another worry is that I saw overall decrease in validation, but improvement in public LB (which is a mild PTSD given I just finished APTOS 😟 )\n\nIn terms of actually training the model I based my code from Andrew's ( @artgor  ) kernel, which I thank greatly for! \n\nAlso, @ratthachat 's kernel helped me boost my score. Check it out at:\nhttps://www.kaggle.com/ratthachat/cloud-convexhull-polygon-postprocessing-no-gpu\n\n",
      "votes": 27
    },
    {
      "id": 662978,
      "postDate": "2019-11-01T09:31:44.760Z",
      "content": "<p>FWIW I'm using basic augmentation. Just flip and ShiftScaleRotate. No cropping.</p>\n\n<p>An idea ...</p>\n\n<p>The image <a href=\"https://en.wikipedia.org/wiki/Sunglint\">sunglint</a> already present in the dataset is a form of natural data augmentation. I have not had much success removing the sunglint and papers describe it as a difficult task. I wonder instead if this can be exploited by creating a sunglint augmentation that adds additional random sunglint to images as an augmentation. That shouldn't be too difficult, anyone given it a go?</p>",
      "rawMarkdown": "FWIW I'm using basic augmentation. Just flip and ShiftScaleRotate. No cropping.\n\nAn idea ...\n\nThe image [sunglint](https://en.wikipedia.org/wiki/Sunglint) already present in the dataset is a form of natural data augmentation. I have not had much success removing the sunglint and papers describe it as a difficult task. I wonder instead if this can be exploited by creating a sunglint augmentation that adds additional random sunglint to images as an augmentation. That shouldn't be too difficult, anyone given it a go?",
      "votes": 3,
      "replies": [
        {
          "id": 664478,
          "postDate": "2019-11-03T18:20:30.113Z",
          "content": "<p>That's crazy how you are only using those augmentations! In terms of \"sunlight\", I tried standard brightness aug but as we are aware that's quite different from what you meant, and it didn't help much either :/ . </p>",
          "rawMarkdown": "That's crazy how you are only using those augmentations! In terms of \"sunlight\", I tried standard brightness aug but as we are aware that's quite different from what you meant, and it didn't help much either :/ . "
        }
      ]
    },
    {
      "id": 630857,
      "postDate": "2019-09-20T21:33:54.060Z",
      "content": "<p>I’m using Albumentations with only Flip and ShiftScaleRotate. </p>\n\n<p>I’ll have to try some others. </p>",
      "rawMarkdown": "I’m using Albumentations with only Flip and ShiftScaleRotate. \n\nI’ll have to try some others. ",
      "votes": 4,
      "replies": [
        {
          "id": 630877,
          "postDate": "2019-09-20T22:39:15.643Z",
          "content": "<p>Thanks for your input! I also had to dial them down a bit, any other ones I mentioned I reduced their probability.</p>",
          "rawMarkdown": "Thanks for your input! I also had to dial them down a bit, any other ones I mentioned I reduced their probability."
        }
      ]
    },
    {
      "id": 662294,
      "postDate": "2019-10-31T11:43:38.630Z",
      "content": "<p>One trick is to resize images to one size and make random crops of another size. For example, resize all images to half size <code>700x1050</code> and then train with random crops of <code>350x525</code>. Then predict will full size images of <code>700x1050</code>. I posted a starter kernel in Keras <a href=\"https://www.kaggle.com/cdeotte/train-with-crops-cv-0-60\">here</a>.</p>\n\n<p>Additionally you can train some epochs at <code>350x525</code>, some epochs at <code>525x787</code>, some epochs at <code>700x1050</code>. Then finally predict at <code>700x1050</code>. (Of course you may need to use multiples of 32 instead).</p>",
      "rawMarkdown": "One trick is to resize images to one size and make random crops of another size. For example, resize all images to half size `700x1050` and then train with random crops of `350x525`. Then predict will full size images of `700x1050`. I posted a starter kernel in Keras [here][1].\n\nAdditionally you can train some epochs at `350x525`, some epochs at `525x787`, some epochs at `700x1050`. Then finally predict at `700x1050`. (Of course you may need to use multiples of 32 instead).\n\n[1]: https://www.kaggle.com/cdeotte/train-with-crops-cv-0-60",
      "votes": 1
    },
    {
      "id": 631107,
      "postDate": "2019-09-21T11:26:03.047Z",
      "content": "<p>I'm using fastai default augmentations + vertical flip</p>",
      "rawMarkdown": "I'm using fastai default augmentations + vertical flip",
      "votes": 1
    },
    {
      "id": 631472,
      "postDate": "2019-09-22T04:52:54.850Z",
      "content": "<p>Why using <code>OpticalDistortion</code> is good idea ? <br>\nIn Andrew's kernel we can see it does some weird distortion. Why will it help our model ?</p>",
      "rawMarkdown": "Why using `OpticalDistortion` is good idea ?  \nIn Andrew's kernel we can see it does some weird distortion. Why will it help our model ?",
      "votes": 2,
      "replies": [
        {
          "id": 631843,
          "postDate": "2019-09-22T19:50:38.150Z",
          "content": "<p>The weird distortion is exactly what it's meant to do. I personally like it since it provides a non-rectangular mask. Did you see a score boost after removing it? I'm assuming you don't use it in your approaches...</p>",
          "rawMarkdown": "The weird distortion is exactly what it's meant to do. I personally like it since it provides a non-rectangular mask. Did you see a score boost after removing it? I'm assuming you don't use it in your approaches..."
        },
        {
          "id": 631906,
          "postDate": "2019-09-22T23:39:17.673Z",
          "content": "<p>Unfortunately due to recent kaggle kernel GPU time restrictions it it nearly impossible for people like me to test these things individually :(</p>",
          "rawMarkdown": "Unfortunately due to recent kaggle kernel GPU time restrictions it it nearly impossible for people like me to test these things individually :(",
          "votes": 1
        },
        {
          "id": 632012,
          "postDate": "2019-09-23T05:45:56.930Z",
          "content": "<blockquote>\n  <p>Unfortunately due to recent kaggle kernel GPU time restrictions it it nearly impossible for people like me to test these things individually :(</p>\n</blockquote>\n\n<p>Augmentation can be tested on a much smaller dataset. Try different augmentations using, for example, just your normal validation set, and compares changes with your ocal score not the public LB.</p>",
          "rawMarkdown": "&gt; Unfortunately due to recent kaggle kernel GPU time restrictions it it nearly impossible for people like me to test these things individually :(\n\nAugmentation can be tested on a much smaller dataset. Try different augmentations using, for example, just your normal validation set, and compares changes with your ocal score not the public LB.",
          "votes": 3
        }
      ]
    },
    {
      "id": 662228,
      "postDate": "2019-10-31T09:12:13.890Z",
      "content": "<p>Did you get to 0.657 using these augs and single model? + convex hull postprocessing?</p>",
      "rawMarkdown": "Did you get to 0.657 using these augs and single model? + convex hull postprocessing?",
      "replies": [
        {
          "id": 664479,
          "postDate": "2019-11-03T18:21:55.173Z",
          "content": "<p>Yes, and classifier to remove potential FP</p>",
          "rawMarkdown": "Yes, and classifier to remove potential FP"
        }
      ]
    },
    {
      "id": 633213,
      "postDate": "2019-09-24T15:02:48.853Z",
      "content": "<p>I wonder, has anyone tried CLAHE, HueSaturationValue, RGBShift? </p>\n\n<p>I think it might be reasonable to use them as they give slightly different color of the water, which may (or may not) correspond to different regions where the images were taken.  In general these augs kinda change wheather conditions though not sure if it's useful here. I tried applying these augs to my best model, but got no improvement.</p>",
      "rawMarkdown": "I wonder, has anyone tried CLAHE, HueSaturationValue, RGBShift? \n\nI think it might be reasonable to use them as they give slightly different color of the water, which may (or may not) correspond to different regions where the images were taken.  In general these augs kinda change wheather conditions though not sure if it's useful here. I tried applying these augs to my best model, but got no improvement.",
      "replies": [
        {
          "id": 633379,
          "postDate": "2019-09-24T20:29:48.347Z",
          "content": "<p>I have tried grayscale + CLAHE pre-processing. While the validation score was higher (i guess the water does influence learning) it did not increase LB. I do plan to continue experimenting with it, however.</p>",
          "rawMarkdown": "I have tried grayscale + CLAHE pre-processing. While the validation score was higher (i guess the water does influence learning) it did not increase LB. I do plan to continue experimenting with it, however.",
          "votes": 1
        },
        {
          "id": 651221,
          "postDate": "2019-10-17T07:39:42.093Z",
          "rawMarkdown": ""
        }
      ]
    },
    {
      "id": 633039,
      "postDate": "2019-09-24T11:27:20Z",
      "content": "<p>I am using Albumentations for augmentation with Vertical, Horizontal Filp, Grid and OpticalDistortion and I gave 0.65, with more aug, my score just down to 0.645 and I didn't find out why :').</p>",
      "rawMarkdown": "I am using Albumentations for augmentation with Vertical, Horizontal Filp, Grid and OpticalDistortion and I gave 0.65, with more aug, my score just down to 0.645 and I didn't find out why :')."
    },
    {
      "id": 632656,
      "postDate": "2019-09-23T21:06:59.727Z",
      "content": "<p>We are using keras for that. Anybody else?</p>",
      "rawMarkdown": "We are using keras for that. Anybody else?\n",
      "replies": [
        {
          "id": 632675,
          "postDate": "2019-09-23T22:01:19.360Z",
          "content": "<p>Sorry, I don't get what you mean.. are you saying you are using the keras datagenerator?</p>",
          "rawMarkdown": "Sorry, I don't get what you mean.. are you saying you are using the keras datagenerator?"
        }
      ]
    },
    {
      "id": 649439,
      "postDate": "2019-10-15T10:51:03.293Z",
      "rawMarkdown": "",
      "isDeleted": true
    },
    {
      "id": 632905,
      "postDate": "2019-09-24T07:55:19.470Z",
      "content": "<p>Thank you for sharing. </p>",
      "rawMarkdown": "Thank you for sharing. "
    }
  ],
  "comments": [
    {
      "id": 662978,
      "author_name": "robga",
      "author_url": "",
      "post_date": "2019-11-01T09:31:44.760000",
      "content": "<p>FWIW I'm using basic augmentation. Just flip and ShiftScaleRotate. No cropping.</p>\n\n<p>An idea ...</p>\n\n<p>The image <a href=\"https://en.wikipedia.org/wiki/Sunglint\">sunglint</a> already present in the dataset is a form of natural data augmentation. I have not had much success removing the sunglint and papers describe it as a difficult task. I wonder instead if this can be exploited by creating a sunglint augmentation that adds additional random sunglint to images as an augmentation. That shouldn't be too difficult, anyone given it a go?</p>",
      "votes": 3,
      "replies": [
        {
          "id": 664478,
          "author_name": "Brian Lee",
          "author_url": "",
          "post_date": "2019-11-03T18:20:30.113000",
          "content": "<p>That's crazy how you are only using those augmentations! In terms of \"sunlight\", I tried standard brightness aug but as we are aware that's quite different from what you meant, and it didn't help much either :/ . </p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 630857,
      "author_name": "robga",
      "author_url": "",
      "post_date": "2019-09-20T21:33:54.060000",
      "content": "<p>I’m using Albumentations with only Flip and ShiftScaleRotate. </p>\n\n<p>I’ll have to try some others. </p>",
      "votes": 4,
      "replies": [
        {
          "id": 630877,
          "author_name": "Brian Lee",
          "author_url": "",
          "post_date": "2019-09-20T22:39:15.643000",
          "content": "<p>Thanks for your input! I also had to dial them down a bit, any other ones I mentioned I reduced their probability.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 662294,
      "author_name": "Chris Deotte",
      "author_url": "",
      "post_date": "2019-10-31T11:43:38.630000",
      "content": "<p>One trick is to resize images to one size and make random crops of another size. For example, resize all images to half size <code>700x1050</code> and then train with random crops of <code>350x525</code>. Then predict will full size images of <code>700x1050</code>. I posted a starter kernel in Keras <a href=\"https://www.kaggle.com/cdeotte/train-with-crops-cv-0-60\">here</a>.</p>\n\n<p>Additionally you can train some epochs at <code>350x525</code>, some epochs at <code>525x787</code>, some epochs at <code>700x1050</code>. Then finally predict at <code>700x1050</code>. (Of course you may need to use multiples of 32 instead).</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 631107,
      "author_name": "Miguel Pinto",
      "author_url": "",
      "post_date": "2019-09-21T11:26:03.047000",
      "content": "<p>I'm using fastai default augmentations + vertical flip</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 631472,
      "author_name": "Dhananjay Raut",
      "author_url": "",
      "post_date": "2019-09-22T04:52:54.850000",
      "content": "<p>Why using <code>OpticalDistortion</code> is good idea ? <br>\nIn Andrew's kernel we can see it does some weird distortion. Why will it help our model ?</p>",
      "votes": 2,
      "replies": [
        {
          "id": 631843,
          "author_name": "Brian Lee",
          "author_url": "",
          "post_date": "2019-09-22T19:50:38.150000",
          "content": "<p>The weird distortion is exactly what it's meant to do. I personally like it since it provides a non-rectangular mask. Did you see a score boost after removing it? I'm assuming you don't use it in your approaches...</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 631906,
          "author_name": "Dhananjay Raut",
          "author_url": "",
          "post_date": "2019-09-22T23:39:17.673000",
          "content": "<p>Unfortunately due to recent kaggle kernel GPU time restrictions it it nearly impossible for people like me to test these things individually :(</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 632012,
          "author_name": "robga",
          "author_url": "",
          "post_date": "2019-09-23T05:45:56.930000",
          "content": "<blockquote>\n  <p>Unfortunately due to recent kaggle kernel GPU time restrictions it it nearly impossible for people like me to test these things individually :(</p>\n</blockquote>\n\n<p>Augmentation can be tested on a much smaller dataset. Try different augmentations using, for example, just your normal validation set, and compares changes with your ocal score not the public LB.</p>",
          "votes": 3,
          "replies": []
        }
      ]
    },
    {
      "id": 662228,
      "author_name": "Karl Hornlund",
      "author_url": "",
      "post_date": "2019-10-31T09:12:13.890000",
      "content": "<p>Did you get to 0.657 using these augs and single model? + convex hull postprocessing?</p>",
      "votes": 0,
      "replies": [
        {
          "id": 664479,
          "author_name": "Brian Lee",
          "author_url": "",
          "post_date": "2019-11-03T18:21:55.173000",
          "content": "<p>Yes, and classifier to remove potential FP</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 633213,
      "author_name": "Cyr1ll",
      "author_url": "",
      "post_date": "2019-09-24T15:02:48.853000",
      "content": "<p>I wonder, has anyone tried CLAHE, HueSaturationValue, RGBShift? </p>\n\n<p>I think it might be reasonable to use them as they give slightly different color of the water, which may (or may not) correspond to different regions where the images were taken.  In general these augs kinda change wheather conditions though not sure if it's useful here. I tried applying these augs to my best model, but got no improvement.</p>",
      "votes": 0,
      "replies": [
        {
          "id": 633379,
          "author_name": "Brian Lee",
          "author_url": "",
          "post_date": "2019-09-24T20:29:48.347000",
          "content": "<p>I have tried grayscale + CLAHE pre-processing. While the validation score was higher (i guess the water does influence learning) it did not increase LB. I do plan to continue experimenting with it, however.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 651221,
          "author_name": "timetraveller",
          "author_url": "",
          "post_date": "2019-10-17T07:39:42.093000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 633039,
      "author_name": "L3viEvil",
      "author_url": "",
      "post_date": "2019-09-24T11:27:20",
      "content": "<p>I am using Albumentations for augmentation with Vertical, Horizontal Filp, Grid and OpticalDistortion and I gave 0.65, with more aug, my score just down to 0.645 and I didn't find out why :').</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 632656,
      "author_name": "Guilherme Uzeda",
      "author_url": "",
      "post_date": "2019-09-23T21:06:59.727000",
      "content": "<p>We are using keras for that. Anybody else?</p>",
      "votes": 0,
      "replies": [
        {
          "id": 632675,
          "author_name": "Brian Lee",
          "author_url": "",
          "post_date": "2019-09-23T22:01:19.360000",
          "content": "<p>Sorry, I don't get what you mean.. are you saying you are using the keras datagenerator?</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 649439,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-15T10:51:03.293000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 632905,
      "author_name": "zhangeng",
      "author_url": "",
      "post_date": "2019-09-24T07:55:19.470000",
      "content": "<p>Thank you for sharing. </p>",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "630836": "I am making this thread with hopes of sharing what augmentations worked and did not work with the community. Looking forward to others sharing as well. I'll start\n- my latest approach used the following augmentations (library: albumentations):\n1. Resize to 320x640 first for faster processing\n2. Horizontal/vertical flip\n3. Blur\n4. ShiftScaleRotate\n5. RandomSizedCrop\n6. RandomBrightness\n7. RandomConstrast\n8. GridDistortion\n9. OpticalDistortion\n\nUPDATE 1: RandomGamma() did not seem to help.\n\nUPDATE 2: Related to @lightnezzofbeing 's comment, I tried grayscale input (stacked to 3 channels for pre-trained weights) with CLAHE propoecssing on top of what I had. It saw an overall ~0.05 improvement in validation but not in LB. I plan to further experiment it later in comp as I don't trust LB.\n\nUPDATE 3: Model seems to perform better with output size closer matching submission size (320x512), perhaps receptive field idk. It performs better on validation without much change apart from this, but LB score didn't change.\n\nI am still configuring what values would be appropriate, but this set of augmentations got me to current score of 0.657. Another worry is that I saw overall decrease in validation, but improvement in public LB (which is a mild PTSD given I just finished APTOS 😟 )\n\nIn terms of actually training the model I based my code from Andrew's ( @artgor  ) kernel, which I thank greatly for! \n\nAlso, @ratthachat 's kernel helped me boost my score. Check it out at:\nhttps://www.kaggle.com/ratthachat/cloud-convexhull-polygon-postprocessing-no-gpu\n\n",
    "662978": "FWIW I'm using basic augmentation. Just flip and ShiftScaleRotate. No cropping.\n\nAn idea ...\n\nThe image [sunglint](https://en.wikipedia.org/wiki/Sunglint) already present in the dataset is a form of natural data augmentation. I have not had much success removing the sunglint and papers describe it as a difficult task. I wonder instead if this can be exploited by creating a sunglint augmentation that adds additional random sunglint to images as an augmentation. That shouldn't be too difficult, anyone given it a go?",
    "630857": "I’m using Albumentations with only Flip and ShiftScaleRotate. \n\nI’ll have to try some others. ",
    "662294": "One trick is to resize images to one size and make random crops of another size. For example, resize all images to half size `700x1050` and then train with random crops of `350x525`. Then predict will full size images of `700x1050`. I posted a starter kernel in Keras [here][1].\n\nAdditionally you can train some epochs at `350x525`, some epochs at `525x787`, some epochs at `700x1050`. Then finally predict at `700x1050`. (Of course you may need to use multiples of 32 instead).\n\n[1]: https://www.kaggle.com/cdeotte/train-with-crops-cv-0-60",
    "631107": "I'm using fastai default augmentations + vertical flip",
    "631472": "Why using `OpticalDistortion` is good idea ?  \nIn Andrew's kernel we can see it does some weird distortion. Why will it help our model ?",
    "662228": "Did you get to 0.657 using these augs and single model? + convex hull postprocessing?",
    "633213": "I wonder, has anyone tried CLAHE, HueSaturationValue, RGBShift? \n\nI think it might be reasonable to use them as they give slightly different color of the water, which may (or may not) correspond to different regions where the images were taken.  In general these augs kinda change wheather conditions though not sure if it's useful here. I tried applying these augs to my best model, but got no improvement.",
    "633039": "I am using Albumentations for augmentation with Vertical, Horizontal Filp, Grid and OpticalDistortion and I gave 0.65, with more aug, my score just down to 0.645 and I didn't find out why :').",
    "632656": "We are using keras for that. Anybody else?\n",
    "649439": "",
    "632905": "Thank you for sharing. "
  }
}