{
  "id": 136870,
  "title": "22 place Solution",
  "url": "/competitions/bengaliai-cv19/writeups/vishy-22-place-solution",
  "author_name": "",
  "post_date": "2020-03-18T12:20:52.323Z",
  "votes": 7,
  "comment_count": 7,
  "views": 0,
  "content": "<p>I almost gave up hope, cos no matter what i tried the accuracy was not improving on public LB. Regardless the learning here is deeply trust in your local CV and so much more to learn since the accuracy gap between (1, 2, 3, 4th place) and the rest is significant.</p>\n\n<p>Solution Outline -\n- Start with transfer learning, Densenet201, One cycle learning\n- Unfreeze layers and re-train (Included custom learning rate for individual layers)\n- 3 separate model approach\n- Albumentation Image Augmentation\n- Local CV</p>\n\n<p>Other details -\n- Training epochs - 5 fold CV with callback each fold training with min-20, max-32 epochs\n- Pre-processing - Converted the image to size 256*256 and applied \n- Image Aug - basic image augmentation like VerticalFlip=False, img_size of 256*256, - - - BrightnessContrast, RandomGamma, fastai's jitter\n- Error_metric - Default fastai error_metric for each class\n- No post processing except used the average of the 5 fold probabilities</p>",
  "messages": [
    {
      "id": "778019",
      "postDate": "03/18/2020 04:47:15",
      "content": "<p>I almost gave up hope, cos no matter what i tried the accuracy was not improving on public LB. Regardless the learning here is deeply trust in your local CV and so much more to learn since the accuracy gap between (1, 2, 3, 4th place) and the rest is significant.</p>\n\n<p>Solution Outline -\n- Start with transfer learning, Densenet201, One cycle learning\n- Unfreeze layers and re-train (Included custom learning rate for individual layers)\n- 3 separate model approach\n- Albumentation Image Augmentation\n- Local CV</p>\n\n<p>Other details -\n- Training epochs - 5 fold CV with callback each fold training with min-20, max-32 epochs\n- Pre-processing - Converted the image to size 256*256 and applied \n- Image Aug - basic image augmentation like VerticalFlip=False, img_size of 256*256, - - - BrightnessContrast, RandomGamma, fastai's jitter\n- Error_metric - Default fastai error_metric for each class\n- No post processing except used the average of the 5 fold probabilities</p>",
      "rawMarkdown": "I almost gave up hope, cos no matter what i tried the accuracy was not improving on public LB. Regardless the learning here is deeply trust in your local CV and so much more to learn since the accuracy gap between (1, 2, 3, 4th place) and the rest is significant.\n\nSolution Outline -\n- Start with transfer learning, Densenet201, One cycle learning\n- Unfreeze layers and re-train (Included custom learning rate for individual layers)\n- 3 separate model approach\n- Albumentation Image Augmentation\n- Local CV\n\nOther details -\n- Training epochs - 5 fold CV with callback each fold training with min-20, max-32 epochs\n- Pre-processing - Converted the image to size 256*256 and applied \n- Image Aug - basic image augmentation like VerticalFlip=False, img_size of 256*256, - - - BrightnessContrast, RandomGamma, fastai's jitter\n- Error_metric - Default fastai error_metric for each class\n- No post processing except used the average of the 5 fold probabilities",
      "votes": null
    },
    {
      "id": "778054",
      "postDate": "03/18/2020 05:39:19",
      "content": "<p>Densenet might be a big factor to get over everyone else using seresnext</p>",
      "rawMarkdown": "Densenet might be a big factor to get over everyone else using seresnext",
      "votes": null
    },
    {
      "id": "778067",
      "postDate": "03/18/2020 05:54:51",
      "content": "<p>backbone was not the deciding factor here. If you check top solution, people use densenet, seresnext, efficientnet... </p>",
      "rawMarkdown": "backbone was not the deciding factor here. If you check top solution, people use densenet, seresnext, efficientnet...",
      "votes": null
    },
    {
      "id": "778159",
      "postDate": "03/18/2020 07:40:59",
      "content": "<p>Interesting..</p>",
      "rawMarkdown": "Interesting..",
      "votes": null
    },
    {
      "id": "778323",
      "postDate": "03/18/2020 10:46:35",
      "content": "<p>How many epochs did you use? What were the hyperparms? Which augmentations did you use please? What was the metric you used to train? Did you do any preprocessing/post processing?</p>",
      "rawMarkdown": "How many epochs did you use? What were the hyperparms? Which augmentations did you use please? What was the metric you used to train? Did you do any preprocessing/post processing?",
      "votes": null
    },
    {
      "id": "778415",
      "postDate": "03/18/2020 12:21:11",
      "content": "<p>Thanks, I have updated those</p>",
      "rawMarkdown": "Thanks, I have updated those",
      "votes": null
    },
    {
      "id": "778685",
      "postDate": "03/18/2020 16:36:38",
      "content": "<p>Would you be interested in sharing the source code as well? </p>",
      "rawMarkdown": "Would you be interested in sharing the source code as well?",
      "votes": null
    },
    {
      "id": "778740",
      "postDate": "03/18/2020 17:28:02",
      "content": "<p><a href=\"/christofhenkel\">@christofhenkel</a> but i think without a lot of operations to deal with unseen graphemes, simpler models such as densenet underfit a bit and perform better.</p>",
      "rawMarkdown": "christofhenkel but i think without a lot of operations to deal with unseen graphemes, simpler models such as densenet underfit a bit and perform better.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 778054,
      "author_name": "tonychenxyz",
      "author_url": "",
      "post_date": "03/18/2020 05:39:19",
      "content": "<p>Densenet might be a big factor to get over everyone else using seresnext</p>",
      "votes": null,
      "replies": [
        {
          "id": 778067,
          "author_name": "christofhenkel",
          "author_url": "",
          "post_date": "03/18/2020 05:54:51",
          "content": "<p>backbone was not the deciding factor here. If you check top solution, people use densenet, seresnext, efficientnet... </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 778159,
          "author_name": "viswanathravindran",
          "author_url": "",
          "post_date": "03/18/2020 07:40:59",
          "content": "<p>Interesting..</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 778740,
          "author_name": "tonychenxyz",
          "author_url": "",
          "post_date": "03/18/2020 17:28:02",
          "content": "<p><a href=\"/christofhenkel\">@christofhenkel</a> but i think without a lot of operations to deal with unseen graphemes, simpler models such as densenet underfit a bit and perform better.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 778323,
      "author_name": "aroraaman",
      "author_url": "",
      "post_date": "03/18/2020 10:46:35",
      "content": "<p>How many epochs did you use? What were the hyperparms? Which augmentations did you use please? What was the metric you used to train? Did you do any preprocessing/post processing?</p>",
      "votes": null,
      "replies": [
        {
          "id": 778415,
          "author_name": "viswanathravindran",
          "author_url": "",
          "post_date": "03/18/2020 12:21:11",
          "content": "<p>Thanks, I have updated those</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 778685,
          "author_name": "aroraaman",
          "author_url": "",
          "post_date": "03/18/2020 16:36:38",
          "content": "<p>Would you be interested in sharing the source code as well? </p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "778019": "I almost gave up hope, cos no matter what i tried the accuracy was not improving on public LB. Regardless the learning here is deeply trust in your local CV and so much more to learn since the accuracy gap between (1, 2, 3, 4th place) and the rest is significant.\n\nSolution Outline -\n- Start with transfer learning, Densenet201, One cycle learning\n- Unfreeze layers and re-train (Included custom learning rate for individual layers)\n- 3 separate model approach\n- Albumentation Image Augmentation\n- Local CV\n\nOther details -\n- Training epochs - 5 fold CV with callback each fold training with min-20, max-32 epochs\n- Pre-processing - Converted the image to size 256*256 and applied \n- Image Aug - basic image augmentation like VerticalFlip=False, img_size of 256*256, - - - BrightnessContrast, RandomGamma, fastai's jitter\n- Error_metric - Default fastai error_metric for each class\n- No post processing except used the average of the 5 fold probabilities",
    "778054": "Densenet might be a big factor to get over everyone else using seresnext",
    "778067": "backbone was not the deciding factor here. If you check top solution, people use densenet, seresnext, efficientnet...",
    "778159": "Interesting..",
    "778323": "How many epochs did you use? What were the hyperparms? Which augmentations did you use please? What was the metric you used to train? Did you do any preprocessing/post processing?",
    "778415": "Thanks, I have updated those",
    "778685": "Would you be interested in sharing the source code as well?",
    "778740": "christofhenkel but i think without a lot of operations to deal with unseen graphemes, simpler models such as densenet underfit a bit and perform better."
  },
  "source": "meta"
}