{
  "id": 135998,
  "title": "Gold medal - 12 place solution",
  "url": "/competitions/bengaliai-cv19/writeups/idriveai-gold-medal-12-place-solution",
  "author_name": "",
  "post_date": "2020-03-17T02:21:47.937233500Z",
  "votes": 40,
  "comment_count": 17,
  "views": 0,
  "content": "<p>First I want to thank the organizers for an awesome competition. It was really challenging\nMy team got a good result, we have our first gold medal and most important than that, there were a lot of useful things to learn</p>\n\n<p>And a quick overview of our solution</p>\n\n<p>We used 3 different types of architectures  </p>\n\n<p><strong>First Architecture Details:</strong>\n- 5 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: 128x128\n- Augmentation: Cutmix (0.4) / Mixup (0.4), choosing by random one of them\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 100 epochs\n- One head with 186 results than split the results into 3 softmax</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2Fff5d567efb67719ae9c74fd1c7204fdc%2F1.png?generation=1584410546592180&amp;alt=media\" alt=\"\"></p>\n\n<p><strong>Second Architecture Details:</strong>\n- 5 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: original image\n- Augmentation: Cutmix (choose random from 0.3, 0.4 ,0.5, 0.6, 0.7) + Cutout(max_holes=6, max_height=12, max_width=12, p=0.5 )\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 150 epochs\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2F39752ea74f035ab413744a7dada0717f%2F2.png?generation=1584410030146832&amp;alt=media\" alt=\"\"></p>\n\n<p><strong>Third Architecture Details</strong>\n- 2 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: 300x300\n- Augmentation: Cutmix (choose random from 0.3, 0.4 ,0.5, 0.6, 0.7) + Cutout(max_holes=6, max_height=12, max_width=12, p=0.5 )\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 150 epochs\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2Fbc442d6921d47e44b5bd97fb2a7efc46%2F3.png?generation=1584410773226026&amp;alt=media\" alt=\"\"></p>\n\n<p>The final submission was the mean of all the folds from the 3 architectures  (12 folds) each with the same weight\nThe difference from public to private was 0.9784 -&gt; 0.9507</p>\n\n<p><strong>Conclusions</strong>\nIn the end, I can say that our solution did not use any unusual ace in the sleeve, not any unusual trick, just respecting the good practices in computer vision.</p>",
  "messages": [
    {
      "id": "775890",
      "postDate": "03/17/2020 02:21:47",
      "content": "<p>First I want to thank the organizers for an awesome competition. It was really challenging\nMy team got a good result, we have our first gold medal and most important than that, there were a lot of useful things to learn</p>\n\n<p>And a quick overview of our solution</p>\n\n<p>We used 3 different types of architectures  </p>\n\n<p><strong>First Architecture Details:</strong>\n- 5 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: 128x128\n- Augmentation: Cutmix (0.4) / Mixup (0.4), choosing by random one of them\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 100 epochs\n- One head with 186 results than split the results into 3 softmax</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2Fff5d567efb67719ae9c74fd1c7204fdc%2F1.png?generation=1584410546592180&amp;alt=media\" alt=\"\"></p>\n\n<p><strong>Second Architecture Details:</strong>\n- 5 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: original image\n- Augmentation: Cutmix (choose random from 0.3, 0.4 ,0.5, 0.6, 0.7) + Cutout(max_holes=6, max_height=12, max_width=12, p=0.5 )\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 150 epochs\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2F39752ea74f035ab413744a7dada0717f%2F2.png?generation=1584410030146832&amp;alt=media\" alt=\"\"></p>\n\n<p><strong>Third Architecture Details</strong>\n- 2 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: 300x300\n- Augmentation: Cutmix (choose random from 0.3, 0.4 ,0.5, 0.6, 0.7) + Cutout(max_holes=6, max_height=12, max_width=12, p=0.5 )\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 150 epochs\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2Fbc442d6921d47e44b5bd97fb2a7efc46%2F3.png?generation=1584410773226026&amp;alt=media\" alt=\"\"></p>\n\n<p>The final submission was the mean of all the folds from the 3 architectures  (12 folds) each with the same weight\nThe difference from public to private was 0.9784 -&gt; 0.9507</p>\n\n<p><strong>Conclusions</strong>\nIn the end, I can say that our solution did not use any unusual ace in the sleeve, not any unusual trick, just respecting the good practices in computer vision.</p>",
      "rawMarkdown": "First I want to thank the organizers for an awesome competition. It was really challenging\nMy team got a good result, we have our first gold medal and most important than that, there were a lot of useful things to learn\n\nAnd a quick overview of our solution\n\nWe used 3 different types of architectures  \n\n**First Architecture Details:**\n- 5 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: 128x128\n- Augmentation: Cutmix (0.4) / Mixup (0.4), choosing by random one of them\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 100 epochs\n- One head with 186 results than split the results into 3 softmax\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2Fff5d567efb67719ae9c74fd1c7204fdc%2F1.png?generation=1584410546592180&amp;alt=media)\n\n\n\n**Second Architecture Details:**\n- 5 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: original image\n- Augmentation: Cutmix (choose random from 0.3, 0.4 ,0.5, 0.6, 0.7) + Cutout(max_holes=6, max_height=12, max_width=12, p=0.5 )\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 150 epochs\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2F39752ea74f035ab413744a7dada0717f%2F2.png?generation=1584410030146832&amp;alt=media)\n\n**Third Architecture Details**\n- 2 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: 300x300\n- Augmentation: Cutmix (choose random from 0.3, 0.4 ,0.5, 0.6, 0.7) + Cutout(max_holes=6, max_height=12, max_width=12, p=0.5 )\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 150 epochs\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2Fbc442d6921d47e44b5bd97fb2a7efc46%2F3.png?generation=1584410773226026&amp;alt=media)\n\nThe final submission was the mean of all the folds from the 3 architectures  (12 folds) each with the same weight\nThe difference from public to private was 0.9784 -&gt; 0.9507\n\n**Conclusions**\nIn the end, I can say that our solution did not use any unusual ace in the sleeve, not any unusual trick, just respecting the good practices in computer vision.",
      "votes": null
    },
    {
      "id": "775894",
      "postDate": "03/17/2020 02:23:33",
      "content": "<p>Congrats! Amazing jump! Thanks for all the sharing you did, you deserve it!</p>",
      "rawMarkdown": "Congrats! Amazing jump! Thanks for all the sharing you did, you deserve it!",
      "votes": null
    },
    {
      "id": "775896",
      "postDate": "03/17/2020 02:24:30",
      "content": "<p>Wow glad to see you models work so well on unseen grapheme (which I struggled with for past couple of days). Congratulations 🥇</p>",
      "rawMarkdown": "Wow glad to see you models work so well on unseen grapheme (which I struggled with for past couple of days). Congratulations 🥇",
      "votes": null
    },
    {
      "id": "775901",
      "postDate": "03/17/2020 02:29:29",
      "content": "<p>Thank you <a href=\"/quandapro\">@quandapro</a> . To be honest, in the last days I kind of lose hope of getting a good result but I sticked to the planned methodology and continue</p>",
      "rawMarkdown": "Thank you @quandapro . To be honest, in the last days I kind of lose hope of getting a good result but I sticked to the planned methodology and continue",
      "votes": null
    },
    {
      "id": "775903",
      "postDate": "03/17/2020 02:29:52",
      "content": "<p>Thank you <a href=\"/greatgamedota\">@greatgamedota</a> </p>",
      "rawMarkdown": "Thank you @greatgamedota",
      "votes": null
    },
    {
      "id": "775937",
      "postDate": "03/17/2020 03:09:41",
      "content": "<p>Congrats! Huge jump! Great job!</p>",
      "rawMarkdown": "Congrats! Huge jump! Great job!",
      "votes": null
    },
    {
      "id": "775968",
      "postDate": "03/17/2020 03:49:27",
      "content": "<p>Happy to see you actively after 2019 DSB ;) <br>\nIt quite simple but get amazing result. I'm confused about your score of public lb yesterday. What are you doing? But as the result released that your model is robust enough👍 </p>",
      "rawMarkdown": "Happy to see you actively after 2019 DSB ;)  \nIt quite simple but get amazing result. I'm confused about your score of public lb yesterday. What are you doing? But as the result released that your model is robust enough👍",
      "votes": null
    },
    {
      "id": "776130",
      "postDate": "03/17/2020 06:18:44",
      "content": "<p>I think densenet is an important factor. For me, densenet's private score is much higher than seresnext. May I know your densenet single model private score?</p>",
      "rawMarkdown": "I think densenet is an important factor. For me, densenet's private score is much higher than seresnext. May I know your densenet single model private score?",
      "votes": null
    },
    {
      "id": "776149",
      "postDate": "03/17/2020 06:44:05",
      "content": "<p>Congrats!</p>",
      "rawMarkdown": "Congrats!",
      "votes": null
    },
    {
      "id": "776182",
      "postDate": "03/17/2020 07:19:58",
      "content": "<p>Congrats! Thanks for detailed solution!</p>",
      "rawMarkdown": "Congrats! Thanks for detailed solution!",
      "votes": null
    },
    {
      "id": "776196",
      "postDate": "03/17/2020 07:33:27",
      "content": "<p>can you release the code <a href=\"/vladvdv\">@vladvdv</a> ?</p>",
      "rawMarkdown": "can you release the code @vladvdv ?",
      "votes": null
    },
    {
      "id": "776311",
      "postDate": "03/17/2020 09:49:54",
      "content": "<p><a href=\"/tonychenxyz\">@tonychenxyz</a> The mean of all 5 densenet201 folds was 0.9390 (private score).\nI was courious about efficientnets, but I could not get the gpu's to test them also, I am sure many guys had success with them</p>",
      "rawMarkdown": "tonychenxyz The mean of all 5 densenet201 folds was 0.9390 (private score).\nI was courious about efficientnets, but I could not get the gpu's to test them also, I am sure many guys had success with them",
      "votes": null
    },
    {
      "id": "776312",
      "postDate": "03/17/2020 09:50:14",
      "content": "<p>Thank you <a href=\"/yuanlin08\">@yuanlin08</a> </p>",
      "rawMarkdown": "Thank you @yuanlin08",
      "votes": null
    },
    {
      "id": "776317",
      "postDate": "03/17/2020 09:52:26",
      "content": "<p>Hi <a href=\"/cnzengshiyuan\">@cnzengshiyuan</a> \nI was looking for a revenge to myself for that enormous drop in private leaderboard on 2019 DSB.\nI found my peace now ! :D</p>",
      "rawMarkdown": "Hi @cnzengshiyuan \nI was looking for a revenge to myself for that enormous drop in private leaderboard on 2019 DSB.\nI found my peace now ! :D",
      "votes": null
    },
    {
      "id": "776889",
      "postDate": "03/17/2020 17:54:36",
      "content": "<p>Thank you</p>",
      "rawMarkdown": "Thank you",
      "votes": null
    },
    {
      "id": "776890",
      "postDate": "03/17/2020 17:54:44",
      "content": "<p>Thank you</p>",
      "rawMarkdown": "Thank you",
      "votes": null
    },
    {
      "id": "777799",
      "postDate": "03/18/2020 00:19:51",
      "content": "<p><a href=\"/vladvdv\">@vladvdv</a> <br>\nYou deserve it, wait for your next 'things didn't work for me' 😜  lol</p>",
      "rawMarkdown": "vladvdv   \nYou deserve it, wait for your next 'things didn't work for me' 😜  lol",
      "votes": null
    },
    {
      "id": "777849",
      "postDate": "03/18/2020 01:50:55",
      "content": "<p>Congrats!</p>",
      "rawMarkdown": "Congrats!",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 775894,
      "author_name": "greatgamedota",
      "author_url": "",
      "post_date": "03/17/2020 02:23:33",
      "content": "<p>Congrats! Amazing jump! Thanks for all the sharing you did, you deserve it!</p>",
      "votes": null,
      "replies": [
        {
          "id": 775903,
          "author_name": "vladvdv",
          "author_url": "",
          "post_date": "03/17/2020 02:29:52",
          "content": "<p>Thank you <a href=\"/greatgamedota\">@greatgamedota</a> </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 775896,
      "author_name": "quandapro",
      "author_url": "",
      "post_date": "03/17/2020 02:24:30",
      "content": "<p>Wow glad to see you models work so well on unseen grapheme (which I struggled with for past couple of days). Congratulations 🥇</p>",
      "votes": null,
      "replies": [
        {
          "id": 775901,
          "author_name": "vladvdv",
          "author_url": "",
          "post_date": "03/17/2020 02:29:29",
          "content": "<p>Thank you <a href=\"/quandapro\">@quandapro</a> . To be honest, in the last days I kind of lose hope of getting a good result but I sticked to the planned methodology and continue</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 775937,
      "author_name": "yuanlin08",
      "author_url": "",
      "post_date": "03/17/2020 03:09:41",
      "content": "<p>Congrats! Huge jump! Great job!</p>",
      "votes": null,
      "replies": [
        {
          "id": 776312,
          "author_name": "vladvdv",
          "author_url": "",
          "post_date": "03/17/2020 09:50:14",
          "content": "<p>Thank you <a href=\"/yuanlin08\">@yuanlin08</a> </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 775968,
      "author_name": "cnzengshiyuan",
      "author_url": "",
      "post_date": "03/17/2020 03:49:27",
      "content": "<p>Happy to see you actively after 2019 DSB ;) <br>\nIt quite simple but get amazing result. I'm confused about your score of public lb yesterday. What are you doing? But as the result released that your model is robust enough👍 </p>",
      "votes": null,
      "replies": [
        {
          "id": 776317,
          "author_name": "vladvdv",
          "author_url": "",
          "post_date": "03/17/2020 09:52:26",
          "content": "<p>Hi <a href=\"/cnzengshiyuan\">@cnzengshiyuan</a> \nI was looking for a revenge to myself for that enormous drop in private leaderboard on 2019 DSB.\nI found my peace now ! :D</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 777799,
          "author_name": "cnzengshiyuan",
          "author_url": "",
          "post_date": "03/18/2020 00:19:51",
          "content": "<p><a href=\"/vladvdv\">@vladvdv</a> <br>\nYou deserve it, wait for your next 'things didn't work for me' 😜  lol</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 776130,
      "author_name": "tonychenxyz",
      "author_url": "",
      "post_date": "03/17/2020 06:18:44",
      "content": "<p>I think densenet is an important factor. For me, densenet's private score is much higher than seresnext. May I know your densenet single model private score?</p>",
      "votes": null,
      "replies": [
        {
          "id": 776311,
          "author_name": "vladvdv",
          "author_url": "",
          "post_date": "03/17/2020 09:49:54",
          "content": "<p><a href=\"/tonychenxyz\">@tonychenxyz</a> The mean of all 5 densenet201 folds was 0.9390 (private score).\nI was courious about efficientnets, but I could not get the gpu's to test them also, I am sure many guys had success with them</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 776149,
      "author_name": "bryce1010",
      "author_url": "",
      "post_date": "03/17/2020 06:44:05",
      "content": "<p>Congrats!</p>",
      "votes": null,
      "replies": [
        {
          "id": 776890,
          "author_name": "vladvdv",
          "author_url": "",
          "post_date": "03/17/2020 17:54:44",
          "content": "<p>Thank you</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 776182,
      "author_name": "duykhanh99",
      "author_url": "",
      "post_date": "03/17/2020 07:19:58",
      "content": "<p>Congrats! Thanks for detailed solution!</p>",
      "votes": null,
      "replies": [
        {
          "id": 776889,
          "author_name": "vladvdv",
          "author_url": "",
          "post_date": "03/17/2020 17:54:36",
          "content": "<p>Thank you</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 776196,
      "author_name": "kurianbenoy",
      "author_url": "",
      "post_date": "03/17/2020 07:33:27",
      "content": "<p>can you release the code <a href=\"/vladvdv\">@vladvdv</a> ?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 777849,
      "author_name": "corochann",
      "author_url": "",
      "post_date": "03/18/2020 01:50:55",
      "content": "<p>Congrats!</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "775890": "First I want to thank the organizers for an awesome competition. It was really challenging\nMy team got a good result, we have our first gold medal and most important than that, there were a lot of useful things to learn\n\nAnd a quick overview of our solution\n\nWe used 3 different types of architectures  \n\n**First Architecture Details:**\n- 5 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: 128x128\n- Augmentation: Cutmix (0.4) / Mixup (0.4), choosing by random one of them\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 100 epochs\n- One head with 186 results than split the results into 3 softmax\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2Fff5d567efb67719ae9c74fd1c7204fdc%2F1.png?generation=1584410546592180&amp;alt=media)\n\n\n\n**Second Architecture Details:**\n- 5 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: original image\n- Augmentation: Cutmix (choose random from 0.3, 0.4 ,0.5, 0.6, 0.7) + Cutout(max_holes=6, max_height=12, max_width=12, p=0.5 )\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 150 epochs\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2F39752ea74f035ab413744a7dada0717f%2F2.png?generation=1584410030146832&amp;alt=media)\n\n**Third Architecture Details**\n- 2 folds created with MultilabelStratifiedKFold  (mixed up by mean for final prediction)\n- Image size: 300x300\n- Augmentation: Cutmix (choose random from 0.3, 0.4 ,0.5, 0.6, 0.7) + Cutout(max_holes=6, max_height=12, max_width=12, p=0.5 )\n- Label Smoothing\n- Adam (lr=0.001, ReduceLROnPlateau(factor=0.8, patience=5))\n- Trained for 150 epochs\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4005865%2Fbc442d6921d47e44b5bd97fb2a7efc46%2F3.png?generation=1584410773226026&amp;alt=media)\n\nThe final submission was the mean of all the folds from the 3 architectures  (12 folds) each with the same weight\nThe difference from public to private was 0.9784 -&gt; 0.9507\n\n**Conclusions**\nIn the end, I can say that our solution did not use any unusual ace in the sleeve, not any unusual trick, just respecting the good practices in computer vision.",
    "775894": "Congrats! Amazing jump! Thanks for all the sharing you did, you deserve it!",
    "775896": "Wow glad to see you models work so well on unseen grapheme (which I struggled with for past couple of days). Congratulations 🥇",
    "775901": "Thank you @quandapro . To be honest, in the last days I kind of lose hope of getting a good result but I sticked to the planned methodology and continue",
    "775903": "Thank you @greatgamedota",
    "775937": "Congrats! Huge jump! Great job!",
    "775968": "Happy to see you actively after 2019 DSB ;)  \nIt quite simple but get amazing result. I'm confused about your score of public lb yesterday. What are you doing? But as the result released that your model is robust enough👍",
    "776130": "I think densenet is an important factor. For me, densenet's private score is much higher than seresnext. May I know your densenet single model private score?",
    "776149": "Congrats!",
    "776182": "Congrats! Thanks for detailed solution!",
    "776196": "can you release the code @vladvdv ?",
    "776311": "tonychenxyz The mean of all 5 densenet201 folds was 0.9390 (private score).\nI was courious about efficientnets, but I could not get the gpu's to test them also, I am sure many guys had success with them",
    "776312": "Thank you @yuanlin08",
    "776317": "Hi @cnzengshiyuan \nI was looking for a revenge to myself for that enormous drop in private leaderboard on 2019 DSB.\nI found my peace now ! :D",
    "776889": "Thank you",
    "776890": "Thank you",
    "777799": "vladvdv   \nYou deserve it, wait for your next 'things didn't work for me' 😜  lol",
    "777849": "Congrats!"
  },
  "source": "meta"
}