{
  "id": 122167,
  "title": "3rd place Solution",
  "content": "<p>Thanks a lot to Kaggle and <a href=\"/higgstachyon\">@higgstachyon</a> for hosting this competition, it's suitable for me to start kaggle competitions, congratulations to all the winners!</p>\n\n<p>My method is very sample, just try to avoid overfitting. \nAnd the two versions code are available in my github: there are 10 tricks in the code, 3 final used.\n<a href=\"https://github.com/HaiyangLiu1997/Kaggle_Kannada_MNIST_Pytorch\">https://github.com/HaiyangLiu1997/Kaggle_Kannada_MNIST_Pytorch</a></p>\n\n<h3>What worked for me:</h3>\n\n<ol>\n<li>pseudo-labeling, increase my score from 99.280 to 99.420(private score)</li>\n<li>5 model embedding, average voting. increase my score from 99.180 to 99.280(private score)</li>\n<li>using all data to train, after choosing best model base on my local 5 KFold CV </li>\n<li>fix the random seed at first. </li>\n</ol>\n\n<h3>What didn't worked for me:</h3>\n\n<p><strong>the didn't work, just mean no significant improve, of course the result will increase 00.020 sometimes</strong>\n1. warm-up\n2. multi-lr in different layers\n3. more complex model, such MobileNetV3, DenseNet\n4. small batchsize\n5. TTA\n6. Focus loss\n7. label smoothing</p>\n\n<h3>My consideration</h3>\n\n<p><strong>I'm curious about the First and Second place methods, I think it will have more useful things than my simple solution</strong>\nMore details are in github. Thanks for reading!</p>",
  "comments": [
    {
      "id": 700540,
      "author_name": "ravi tanwar",
      "author_url": "",
      "post_date": "2019-12-22T07:07:20.650000",
      "content": "<p>really insightful , thanks and would love to connect !</p>",
      "votes": 3,
      "replies": []
    },
    {
      "id": 697780,
      "author_name": "pleaseenjoy",
      "author_url": "",
      "post_date": "2019-12-18T11:53:12.390000",
      "content": "<p>nice sharing, so many useful trials in the code!</p>",
      "votes": 3,
      "replies": []
    },
    {
      "id": 698601,
      "author_name": "Miyabon",
      "author_url": "",
      "post_date": "2019-12-19T13:03:53.957000",
      "content": "<p>Congrats!🎉  and Thanks for sharing!!😄 👍 </p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 698598,
      "author_name": "Christian Abiode",
      "author_url": "",
      "post_date": "2019-12-19T12:54:02.867000",
      "content": "<p>This is nice...</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 698004,
      "author_name": "MichaelP",
      "author_url": "",
      "post_date": "2019-12-18T16:54:06.847000",
      "content": "<p>Thanks for sharing your solution details and your code. Congratulations!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 697881,
      "author_name": "ysuzuki",
      "author_url": "",
      "post_date": "2019-12-18T14:08:41.673000",
      "content": "<p>good work!!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 697787,
      "author_name": "Ricardo Ferreira",
      "author_url": "",
      "post_date": "2019-12-18T12:06:39.747000",
      "content": "<p>Very interesting, thank you for sharing! </p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 700616,
      "author_name": "corochann",
      "author_url": "",
      "post_date": "2019-12-22T10:06:26.183000",
      "content": "<p>Congrats! and thaks for sharing.</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 699761,
      "author_name": "ahmed.t.elgammal",
      "author_url": "",
      "post_date": "2019-12-20T21:30:44.200000",
      "content": "<p>nice effort...</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 699314,
      "author_name": "Dr. Hemanth Kumar",
      "author_url": "",
      "post_date": "2019-12-20T10:00:08.133000",
      "content": "<p>Congratulations !\nLooks like pseudo-labeling was the key here</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 697847,
      "author_name": "Jenhao Ou",
      "author_url": "",
      "post_date": "2019-12-18T13:39:53.933000",
      "content": "<p>Thanks for sharing</p>",
      "votes": 1,
      "replies": []
    }
  ],
  "comment_count": 11,
  "messages": [
    {
      "id": 697629,
      "postDate": "2019-12-18T07:40:06.973Z",
      "content": "<p>Thanks a lot to Kaggle and <a href=\"/higgstachyon\">@higgstachyon</a> for hosting this competition, it's suitable for me to start kaggle competitions, congratulations to all the winners!</p>\n\n<p>My method is very sample, just try to avoid overfitting. \nAnd the two versions code are available in my github: there are 10 tricks in the code, 3 final used.\n<a href=\"https://github.com/HaiyangLiu1997/Kaggle_Kannada_MNIST_Pytorch\">https://github.com/HaiyangLiu1997/Kaggle_Kannada_MNIST_Pytorch</a></p>\n\n<h3>What worked for me:</h3>\n\n<ol>\n<li>pseudo-labeling, increase my score from 99.280 to 99.420(private score)</li>\n<li>5 model embedding, average voting. increase my score from 99.180 to 99.280(private score)</li>\n<li>using all data to train, after choosing best model base on my local 5 KFold CV </li>\n<li>fix the random seed at first. </li>\n</ol>\n\n<h3>What didn't worked for me:</h3>\n\n<p><strong>the didn't work, just mean no significant improve, of course the result will increase 00.020 sometimes</strong>\n1. warm-up\n2. multi-lr in different layers\n3. more complex model, such MobileNetV3, DenseNet\n4. small batchsize\n5. TTA\n6. Focus loss\n7. label smoothing</p>\n\n<h3>My consideration</h3>\n\n<p><strong>I'm curious about the First and Second place methods, I think it will have more useful things than my simple solution</strong>\nMore details are in github. Thanks for reading!</p>",
      "rawMarkdown": "Thanks a lot to Kaggle and @higgstachyon for hosting this competition, it's suitable for me to start kaggle competitions, congratulations to all the winners!\n\nMy method is very sample, just try to avoid overfitting. \nAnd the two versions code are available in my github: there are 10 tricks in the code, 3 final used.\nhttps://github.com/HaiyangLiu1997/Kaggle_Kannada_MNIST_Pytorch\n\n### What worked for me:\n1. pseudo-labeling, increase my score from 99.280 to 99.420(private score)\n2. 5 model embedding, average voting. increase my score from 99.180 to 99.280(private score)\n3. using all data to train, after choosing best model base on my local 5 KFold CV \n4. fix the random seed at first. \n\n### What didn't worked for me:\n**the didn't work, just mean no significant improve, of course the result will increase 00.020 sometimes**\n1. warm-up\n2. multi-lr in different layers\n3. more complex model, such MobileNetV3, DenseNet\n4. small batchsize\n5. TTA\n6. Focus loss\n7. label smoothing\n\n### My consideration\n**I'm curious about the First and Second place methods, I think it will have more useful things than my simple solution**\nMore details are in github. Thanks for reading!\n\n",
      "votes": 30
    },
    {
      "id": 700540,
      "postDate": "2019-12-22T07:07:20.650Z",
      "content": "<p>really insightful , thanks and would love to connect !</p>",
      "rawMarkdown": "really insightful , thanks and would love to connect !",
      "votes": 3
    },
    {
      "id": 697780,
      "postDate": "2019-12-18T11:53:12.390Z",
      "content": "<p>nice sharing, so many useful trials in the code!</p>",
      "rawMarkdown": "nice sharing, so many useful trials in the code!",
      "votes": 3
    },
    {
      "id": 698601,
      "postDate": "2019-12-19T13:03:53.957Z",
      "content": "<p>Congrats!🎉  and Thanks for sharing!!😄 👍 </p>",
      "rawMarkdown": "Congrats!🎉  and Thanks for sharing!!😄 👍 ",
      "votes": 1
    },
    {
      "id": 698598,
      "postDate": "2019-12-19T12:54:02.867Z",
      "content": "<p>This is nice...</p>",
      "rawMarkdown": "This is nice...",
      "votes": 1
    },
    {
      "id": 698004,
      "postDate": "2019-12-18T16:54:06.847Z",
      "content": "<p>Thanks for sharing your solution details and your code. Congratulations!</p>",
      "rawMarkdown": "Thanks for sharing your solution details and your code. Congratulations!",
      "votes": 1
    },
    {
      "id": 697881,
      "postDate": "2019-12-18T14:08:41.673Z",
      "content": "<p>good work!!</p>",
      "rawMarkdown": "good work!!",
      "votes": 1
    },
    {
      "id": 697787,
      "postDate": "2019-12-18T12:06:39.747Z",
      "content": "<p>Very interesting, thank you for sharing! </p>",
      "rawMarkdown": "Very interesting, thank you for sharing! ",
      "votes": 1
    },
    {
      "id": 700616,
      "postDate": "2019-12-22T10:06:26.183Z",
      "content": "<p>Congrats! and thaks for sharing.</p>",
      "rawMarkdown": "Congrats! and thaks for sharing."
    },
    {
      "id": 699761,
      "postDate": "2019-12-20T21:30:44.200Z",
      "content": "<p>nice effort...</p>",
      "rawMarkdown": "nice effort..."
    },
    {
      "id": 699314,
      "postDate": "2019-12-20T10:00:08.133Z",
      "content": "<p>Congratulations !\nLooks like pseudo-labeling was the key here</p>",
      "rawMarkdown": "Congratulations !\nLooks like pseudo-labeling was the key here"
    },
    {
      "id": 697847,
      "postDate": "2019-12-18T13:39:53.933Z",
      "content": "<p>Thanks for sharing</p>",
      "rawMarkdown": "Thanks for sharing",
      "votes": 1
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-19T11:35:20Z",
  "competition_id": 16017,
  "competition_slug": "Kannada-MNIST",
  "team_id": 4010679,
  "solution_url": "/competitions/Kannada-MNIST/writeups/haiyang-liu-3rd-place-solution"
}