{
  "id": 105639,
  "title": "3rd solution",
  "url": "/competitions/2019-3rd-ml-month-with-kakr/writeups/ikhee-shin-3rd-solution",
  "author_name": "",
  "post_date": "2019-08-25T04:53:38.450Z",
  "votes": 4,
  "comment_count": 1,
  "views": 0,
  "content": "<p>늦어서 죄송합니다 최근에 정신이 없었습니다ㅠㅠ</p>\n\n<p>우선 kaggle korea 3rd 대회를 주최해주신 분께 정말 감사드립니다!!\n매번 kaggle을 해봐야지 해봐야지 하면서 미뤘었는데 (2년전에 가입을 하고 그때부터 미뤘었드라구요ㅋㅋ) 좋은 대회를 열어주셔서 즐겁게 참여할 수 있었습니다.\n또 커널과 디스커션에서 아낌없이 자료를 공유해주신 분들 정말 감사합니다!! 정말 많이 배웠습니다.</p>\n\n<p>저는 세원님이 올려주신 커널과 디스커션 자료들을 그대로 따라갔습니다ㅎㅎ</p>\n\n<ol>\n<li>kfold\nStratifiedKFold 사용해서 4fold, 8fold 둘다 만들어뒀습니다.\n4fold, 8fold로 한 이유는 세원님이 말씀하셨듯 commit gpu를 4개 쓸 수 있다보니 4의 배수로 했습니다.\n12fold 도 해봤는데 8fold보다 성능이 높아지지 않아서 4fold, 8fold만 했습니다. \n<a href=\"https://www.kaggle.com/ikheeshin/car-fold-48\">fold csv</a> 파일입니다.</li>\n</ol>\n\n<p>2.모델 \n제가 대회 시작부터 쓴 <a href=\"https://www.kaggle.com/ikheeshin/3rd-solution\">실험 노트</a>입니다.\n의식의 흐름대로 쓰다보니 엉망인데.. 저는 이렇게 쓰는 과정이 도움된것 같습니다</p>\n\n<p>제가 실험하면서 했던 가장 큰 잘못은\na. 트레이닝할 때 validation에 flip, rotate 등 random한 transform을 가한 것\nb. inference할 때 seed 고정을 안한 것</p>\n\n<p>그래서 8월 5일부터 한 실험이 가장 의미있는 실험입니다. \n모델을 트레이닝할 때 썼던 코드는 이 <a href=\"https://www.kaggle.com/ikheeshin/3rd-ml-month-various-model-k-fold-1\">커널</a> 입니다. 커밋해서 kfold 트레이닝을 하면 9시간 제한 때문에 중간에 멈추는 문제가 생겨서 <a href=\"https://www.kaggle.com/seriousran/what-0-95121-model-failed\">세원님이 얘기하신대로</a>  저 커널 4개를 만들고 fold별로 커밋했습니다.</p>\n\n<p>a. mixup은 성능을 저하시켜서 뺐습니다.\nb. SGDR 은 논문에서 얘기한 것 처럼 t_max=10, t_mult=2가 성능이 가장 좋았습니다. t_max=10, t_mult=2 로 할 경우 30, 70, 150 epoch 번째를 논문에서 언급한것처럼 snapshot ensemble할 수 있는데 이걸 시도해보지 못해서 아쉽습니다. \nc. cifar autoaugmentation 사용했습니다.\nd. <a href=\"https://www.kaggle.com/tmheo74/3rd-ml-month-car-image-cropping-updated-7-10\">태명님의 crop dataset</a> 사용했습니다.</p>\n\n<p>tta없이 resnet50 으로 얻은 LB score는 4fold/0.95408/fResNet-50 였고\ntta없이 <a href=\"https://www.kaggle.com/c/2019-3rd-ml-month-with-kakr/discussion/97814#latest-567186\">WSL resnext101</a> 로 얻은 LB score는 8fold/0.96221/bResNext101_wsl였습니다.\n저는 오히려 tta를 하면 성능이 떨어졌습니다.</p>\n\n<p>최종 score는 <a href=\"https://www.kaggle.com/ikheeshin/3rd-ml-month-models-ensemble-inference\">inference kernel</a> 를 사용해서\naResNext50(4fold) + bResNext101_32x8d_wsl(8fold) + aResNext101_32x8d_wsl(4fold) ensemble한\npublic : 0.96413, private : 0.95984 입니다.</p>\n\n<p>training 후에 저장한 모델들 (실험노트의 aResNet50 등)은 제 데이터셋에 공개되어있습니다</p>\n\n<p>끝으로 이 competition 덕분에 정말 즐거운 시간 보냈습니다!!\n모두들 정말 감사합니다!</p>",
  "messages": [
    {
      "id": "607318",
      "postDate": "08/25/2019 02:41:29",
      "content": "<p>늦어서 죄송합니다 최근에 정신이 없었습니다ㅠㅠ</p>\n\n<p>우선 kaggle korea 3rd 대회를 주최해주신 분께 정말 감사드립니다!!\n매번 kaggle을 해봐야지 해봐야지 하면서 미뤘었는데 (2년전에 가입을 하고 그때부터 미뤘었드라구요ㅋㅋ) 좋은 대회를 열어주셔서 즐겁게 참여할 수 있었습니다.\n또 커널과 디스커션에서 아낌없이 자료를 공유해주신 분들 정말 감사합니다!! 정말 많이 배웠습니다.</p>\n\n<p>저는 세원님이 올려주신 커널과 디스커션 자료들을 그대로 따라갔습니다ㅎㅎ</p>\n\n<ol>\n<li>kfold\nStratifiedKFold 사용해서 4fold, 8fold 둘다 만들어뒀습니다.\n4fold, 8fold로 한 이유는 세원님이 말씀하셨듯 commit gpu를 4개 쓸 수 있다보니 4의 배수로 했습니다.\n12fold 도 해봤는데 8fold보다 성능이 높아지지 않아서 4fold, 8fold만 했습니다. \n<a href=\"https://www.kaggle.com/ikheeshin/car-fold-48\">fold csv</a> 파일입니다.</li>\n</ol>\n\n<p>2.모델 \n제가 대회 시작부터 쓴 <a href=\"https://www.kaggle.com/ikheeshin/3rd-solution\">실험 노트</a>입니다.\n의식의 흐름대로 쓰다보니 엉망인데.. 저는 이렇게 쓰는 과정이 도움된것 같습니다</p>\n\n<p>제가 실험하면서 했던 가장 큰 잘못은\na. 트레이닝할 때 validation에 flip, rotate 등 random한 transform을 가한 것\nb. inference할 때 seed 고정을 안한 것</p>\n\n<p>그래서 8월 5일부터 한 실험이 가장 의미있는 실험입니다. \n모델을 트레이닝할 때 썼던 코드는 이 <a href=\"https://www.kaggle.com/ikheeshin/3rd-ml-month-various-model-k-fold-1\">커널</a> 입니다. 커밋해서 kfold 트레이닝을 하면 9시간 제한 때문에 중간에 멈추는 문제가 생겨서 <a href=\"https://www.kaggle.com/seriousran/what-0-95121-model-failed\">세원님이 얘기하신대로</a>  저 커널 4개를 만들고 fold별로 커밋했습니다.</p>\n\n<p>a. mixup은 성능을 저하시켜서 뺐습니다.\nb. SGDR 은 논문에서 얘기한 것 처럼 t_max=10, t_mult=2가 성능이 가장 좋았습니다. t_max=10, t_mult=2 로 할 경우 30, 70, 150 epoch 번째를 논문에서 언급한것처럼 snapshot ensemble할 수 있는데 이걸 시도해보지 못해서 아쉽습니다. \nc. cifar autoaugmentation 사용했습니다.\nd. <a href=\"https://www.kaggle.com/tmheo74/3rd-ml-month-car-image-cropping-updated-7-10\">태명님의 crop dataset</a> 사용했습니다.</p>\n\n<p>tta없이 resnet50 으로 얻은 LB score는 4fold/0.95408/fResNet-50 였고\ntta없이 <a href=\"https://www.kaggle.com/c/2019-3rd-ml-month-with-kakr/discussion/97814#latest-567186\">WSL resnext101</a> 로 얻은 LB score는 8fold/0.96221/bResNext101_wsl였습니다.\n저는 오히려 tta를 하면 성능이 떨어졌습니다.</p>\n\n<p>최종 score는 <a href=\"https://www.kaggle.com/ikheeshin/3rd-ml-month-models-ensemble-inference\">inference kernel</a> 를 사용해서\naResNext50(4fold) + bResNext101_32x8d_wsl(8fold) + aResNext101_32x8d_wsl(4fold) ensemble한\npublic : 0.96413, private : 0.95984 입니다.</p>\n\n<p>training 후에 저장한 모델들 (실험노트의 aResNet50 등)은 제 데이터셋에 공개되어있습니다</p>\n\n<p>끝으로 이 competition 덕분에 정말 즐거운 시간 보냈습니다!!\n모두들 정말 감사합니다!</p>",
      "rawMarkdown": "늦어서 죄송합니다 최근에 정신이 없었습니다ㅠㅠ\n\n우선 kaggle korea 3rd 대회를 주최해주신 분께 정말 감사드립니다!!\n매번 kaggle을 해봐야지 해봐야지 하면서 미뤘었는데 (2년전에 가입을 하고 그때부터 미뤘었드라구요ㅋㅋ) 좋은 대회를 열어주셔서 즐겁게 참여할 수 있었습니다.\n또 커널과 디스커션에서 아낌없이 자료를 공유해주신 분들 정말 감사합니다!! 정말 많이 배웠습니다.\n\n저는 세원님이 올려주신 커널과 디스커션 자료들을 그대로 따라갔습니다ㅎㅎ\n\n1. kfold\nStratifiedKFold 사용해서 4fold, 8fold 둘다 만들어뒀습니다.\n4fold, 8fold로 한 이유는 세원님이 말씀하셨듯 commit gpu를 4개 쓸 수 있다보니 4의 배수로 했습니다.\n12fold 도 해봤는데 8fold보다 성능이 높아지지 않아서 4fold, 8fold만 했습니다. \n[fold csv](https://www.kaggle.com/ikheeshin/car-fold-48) 파일입니다.\n\n2.모델 \n제가 대회 시작부터 쓴 [실험 노트](https://www.kaggle.com/ikheeshin/3rd-solution)입니다.\n의식의 흐름대로 쓰다보니 엉망인데.. 저는 이렇게 쓰는 과정이 도움된것 같습니다\n\n제가 실험하면서 했던 가장 큰 잘못은\na. 트레이닝할 때 validation에 flip, rotate 등 random한 transform을 가한 것\nb. inference할 때 seed 고정을 안한 것\n\n그래서 8월 5일부터 한 실험이 가장 의미있는 실험입니다. \n모델을 트레이닝할 때 썼던 코드는 이 [커널](https://www.kaggle.com/ikheeshin/3rd-ml-month-various-model-k-fold-1) 입니다. 커밋해서 kfold 트레이닝을 하면 9시간 제한 때문에 중간에 멈추는 문제가 생겨서 [세원님이 얘기하신대로]( https://www.kaggle.com/seriousran/what-0-95121-model-failed)  저 커널 4개를 만들고 fold별로 커밋했습니다.\n\na. mixup은 성능을 저하시켜서 뺐습니다.\nb. SGDR 은 논문에서 얘기한 것 처럼 t_max=10, t_mult=2가 성능이 가장 좋았습니다. t_max=10, t_mult=2 로 할 경우 30, 70, 150 epoch 번째를 논문에서 언급한것처럼 snapshot ensemble할 수 있는데 이걸 시도해보지 못해서 아쉽습니다. \nc. cifar autoaugmentation 사용했습니다.\nd. [태명님의 crop dataset](https://www.kaggle.com/tmheo74/3rd-ml-month-car-image-cropping-updated-7-10) 사용했습니다.\n\n\ntta없이 resnet50 으로 얻은 LB score는 4fold/0.95408/fResNet-50 였고\ntta없이 [WSL resnext101](https://www.kaggle.com/c/2019-3rd-ml-month-with-kakr/discussion/97814#latest-567186) 로 얻은 LB score는 8fold/0.96221/bResNext101_wsl였습니다.\n저는 오히려 tta를 하면 성능이 떨어졌습니다.\n\n최종 score는 [inference kernel](https://www.kaggle.com/ikheeshin/3rd-ml-month-models-ensemble-inference) 를 사용해서\naResNext50(4fold) + bResNext101_32x8d_wsl(8fold) + aResNext101_32x8d_wsl(4fold) ensemble한\npublic : 0.96413, private : 0.95984 입니다.\n\ntraining 후에 저장한 모델들 (실험노트의 aResNet50 등)은 제 데이터셋에 공개되어있습니다\n\n끝으로 이 competition 덕분에 정말 즐거운 시간 보냈습니다!!\n모두들 정말 감사합니다!",
      "votes": null
    },
    {
      "id": "607828",
      "postDate": "08/26/2019 00:03:56",
      "content": "<p>실험노트의 고민의 흔적들이 도움이 되었습니다 감사합니다</p>",
      "rawMarkdown": "실험노트의 고민의 흔적들이 도움이 되었습니다 감사합니다",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 607828,
      "author_name": "mnnclub",
      "author_url": "",
      "post_date": "08/26/2019 00:03:56",
      "content": "<p>실험노트의 고민의 흔적들이 도움이 되었습니다 감사합니다</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "607318": "늦어서 죄송합니다 최근에 정신이 없었습니다ㅠㅠ\n\n우선 kaggle korea 3rd 대회를 주최해주신 분께 정말 감사드립니다!!\n매번 kaggle을 해봐야지 해봐야지 하면서 미뤘었는데 (2년전에 가입을 하고 그때부터 미뤘었드라구요ㅋㅋ) 좋은 대회를 열어주셔서 즐겁게 참여할 수 있었습니다.\n또 커널과 디스커션에서 아낌없이 자료를 공유해주신 분들 정말 감사합니다!! 정말 많이 배웠습니다.\n\n저는 세원님이 올려주신 커널과 디스커션 자료들을 그대로 따라갔습니다ㅎㅎ\n\n1. kfold\nStratifiedKFold 사용해서 4fold, 8fold 둘다 만들어뒀습니다.\n4fold, 8fold로 한 이유는 세원님이 말씀하셨듯 commit gpu를 4개 쓸 수 있다보니 4의 배수로 했습니다.\n12fold 도 해봤는데 8fold보다 성능이 높아지지 않아서 4fold, 8fold만 했습니다. \n[fold csv](https://www.kaggle.com/ikheeshin/car-fold-48) 파일입니다.\n\n2.모델 \n제가 대회 시작부터 쓴 [실험 노트](https://www.kaggle.com/ikheeshin/3rd-solution)입니다.\n의식의 흐름대로 쓰다보니 엉망인데.. 저는 이렇게 쓰는 과정이 도움된것 같습니다\n\n제가 실험하면서 했던 가장 큰 잘못은\na. 트레이닝할 때 validation에 flip, rotate 등 random한 transform을 가한 것\nb. inference할 때 seed 고정을 안한 것\n\n그래서 8월 5일부터 한 실험이 가장 의미있는 실험입니다. \n모델을 트레이닝할 때 썼던 코드는 이 [커널](https://www.kaggle.com/ikheeshin/3rd-ml-month-various-model-k-fold-1) 입니다. 커밋해서 kfold 트레이닝을 하면 9시간 제한 때문에 중간에 멈추는 문제가 생겨서 [세원님이 얘기하신대로]( https://www.kaggle.com/seriousran/what-0-95121-model-failed)  저 커널 4개를 만들고 fold별로 커밋했습니다.\n\na. mixup은 성능을 저하시켜서 뺐습니다.\nb. SGDR 은 논문에서 얘기한 것 처럼 t_max=10, t_mult=2가 성능이 가장 좋았습니다. t_max=10, t_mult=2 로 할 경우 30, 70, 150 epoch 번째를 논문에서 언급한것처럼 snapshot ensemble할 수 있는데 이걸 시도해보지 못해서 아쉽습니다. \nc. cifar autoaugmentation 사용했습니다.\nd. [태명님의 crop dataset](https://www.kaggle.com/tmheo74/3rd-ml-month-car-image-cropping-updated-7-10) 사용했습니다.\n\n\ntta없이 resnet50 으로 얻은 LB score는 4fold/0.95408/fResNet-50 였고\ntta없이 [WSL resnext101](https://www.kaggle.com/c/2019-3rd-ml-month-with-kakr/discussion/97814#latest-567186) 로 얻은 LB score는 8fold/0.96221/bResNext101_wsl였습니다.\n저는 오히려 tta를 하면 성능이 떨어졌습니다.\n\n최종 score는 [inference kernel](https://www.kaggle.com/ikheeshin/3rd-ml-month-models-ensemble-inference) 를 사용해서\naResNext50(4fold) + bResNext101_32x8d_wsl(8fold) + aResNext101_32x8d_wsl(4fold) ensemble한\npublic : 0.96413, private : 0.95984 입니다.\n\ntraining 후에 저장한 모델들 (실험노트의 aResNet50 등)은 제 데이터셋에 공개되어있습니다\n\n끝으로 이 competition 덕분에 정말 즐거운 시간 보냈습니다!!\n모두들 정말 감사합니다!",
    "607828": "실험노트의 고민의 흔적들이 도움이 되었습니다 감사합니다"
  },
  "source": "meta"
}