{
  "id": 64796,
  "title": "86th place solution, with full source code of keras-yolo3",
  "url": "/competitions/google-ai-open-images-object-detection-track/discussion/64796",
  "author_name": "Jiun-Kuei Jung",
  "post_date": "2018-09-02T12:08:35.802000",
  "votes": 13,
  "comment_count": 0,
  "views": 0,
  "content": "<p>This is the first Kaggle competition I formally participated in. I used a Keras implementation of YOLOv3 on the problem. Limited by time and GPU resources, I did not do particularly well in the end. My final private leaderboard score is only 0.16889 (86th place).</p>\n\n<p>Anyway, I wrote a blog post about what I've learned from this competition. And I'm willing to share all source code I used to work on the problem. That includes:</p>\n\n<ul>\n<li>code to convert Open Images dataset annotations to YOLOv3 format.</li>\n<li>use of LRFinder to find better learning rate ranges for training the model.</li>\n<li>use of Cyclic Learning Rate (CLR) scheduler.</li>\n<li>use of SGDAccum to accumulate gradients over multiple batches (which is not formally supported by Keras). </li>\n<li>code to test, visualize and verify the trained YOLOv3 model.</li>\n<li>code to generate the csv files for Kaggle submission.</li>\n</ul>\n\n<p>Hopefully, the code could benefit other people who are new to Kaggle competitions. You could find links to my blog post and GitHub repo below.</p>\n\n<p><a href=\"https://jkjung-avt.github.io/kaggle-open-images/\">Kaggle 2018 Google AI Open Images - Object Detection Track</a></p>\n\n<p><a href=\"https://github.com/jkjung-avt/keras-yolo3\">jkjung-avt/keras-yolo3</a></p>",
  "messages": [
    {
      "id": 380346,
      "postDate": "2018-09-02T12:08:35.803Z",
      "content": "<p>This is the first Kaggle competition I formally participated in. I used a Keras implementation of YOLOv3 on the problem. Limited by time and GPU resources, I did not do particularly well in the end. My final private leaderboard score is only 0.16889 (86th place).</p>\n\n<p>Anyway, I wrote a blog post about what I've learned from this competition. And I'm willing to share all source code I used to work on the problem. That includes:</p>\n\n<ul>\n<li>code to convert Open Images dataset annotations to YOLOv3 format.</li>\n<li>use of LRFinder to find better learning rate ranges for training the model.</li>\n<li>use of Cyclic Learning Rate (CLR) scheduler.</li>\n<li>use of SGDAccum to accumulate gradients over multiple batches (which is not formally supported by Keras). </li>\n<li>code to test, visualize and verify the trained YOLOv3 model.</li>\n<li>code to generate the csv files for Kaggle submission.</li>\n</ul>\n\n<p>Hopefully, the code could benefit other people who are new to Kaggle competitions. You could find links to my blog post and GitHub repo below.</p>\n\n<p><a href=\"https://jkjung-avt.github.io/kaggle-open-images/\">Kaggle 2018 Google AI Open Images - Object Detection Track</a></p>\n\n<p><a href=\"https://github.com/jkjung-avt/keras-yolo3\">jkjung-avt/keras-yolo3</a></p>",
      "rawMarkdown": "This is the first Kaggle competition I formally participated in. I used a Keras implementation of YOLOv3 on the problem. Limited by time and GPU resources, I did not do particularly well in the end. My final private leaderboard score is only 0.16889 (86th place).\n\nAnyway, I wrote a blog post about what I've learned from this competition. And I'm willing to share all source code I used to work on the problem. That includes:\n\n* code to convert Open Images dataset annotations to YOLOv3 format.\n* use of LRFinder to find better learning rate ranges for training the model.\n* use of Cyclic Learning Rate (CLR) scheduler.\n* use of SGDAccum to accumulate gradients over multiple batches (which is not formally supported by Keras). \n* code to test, visualize and verify the trained YOLOv3 model.\n* code to generate the csv files for Kaggle submission.\n\nHopefully, the code could benefit other people who are new to Kaggle competitions. You could find links to my blog post and GitHub repo below.\n\n[Kaggle 2018 Google AI Open Images - Object Detection Track][1]\n\n[jkjung-avt/keras-yolo3][2]\n\n  [1]: https://jkjung-avt.github.io/kaggle-open-images/\n  [2]: https://github.com/jkjung-avt/keras-yolo3",
      "votes": 12
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "380346": "This is the first Kaggle competition I formally participated in. I used a Keras implementation of YOLOv3 on the problem. Limited by time and GPU resources, I did not do particularly well in the end. My final private leaderboard score is only 0.16889 (86th place).\n\nAnyway, I wrote a blog post about what I've learned from this competition. And I'm willing to share all source code I used to work on the problem. That includes:\n\n* code to convert Open Images dataset annotations to YOLOv3 format.\n* use of LRFinder to find better learning rate ranges for training the model.\n* use of Cyclic Learning Rate (CLR) scheduler.\n* use of SGDAccum to accumulate gradients over multiple batches (which is not formally supported by Keras). \n* code to test, visualize and verify the trained YOLOv3 model.\n* code to generate the csv files for Kaggle submission.\n\nHopefully, the code could benefit other people who are new to Kaggle competitions. You could find links to my blog post and GitHub repo below.\n\n[Kaggle 2018 Google AI Open Images - Object Detection Track][1]\n\n[jkjung-avt/keras-yolo3][2]\n\n  [1]: https://jkjung-avt.github.io/kaggle-open-images/\n  [2]: https://github.com/jkjung-avt/keras-yolo3"
  }
}