{
  "id": 80697,
  "title": "Special Prize Winner Announcement",
  "url": "/competitions/human-protein-atlas-image-classification/discussion/80697",
  "author_name": "",
  "post_date": "2019-02-15T14:54:18.567403600Z",
  "votes": 5,
  "comment_count": 2,
  "views": 0,
  "content": "<p>The goal of the special prize competition was to develop a model that is fast during prediction while maintaining high accuracy and can run on minimum hardware resources. See the <a href=\"https://www.kaggle.com/c/human-protein-atlas-image-classification#Special-Prize-Instructions\">instructions</a> and the submission <a href=\"https://www.kaggle.com/c/human-protein-atlas-image-classification/discussion/77436\">invitation</a> for more info.</p>\n\n<p>We are now finished with evaluation and are happy to announce the winning team:</p>\n\n<p>Congratulations to team <strong>Protein Shake</strong>! Their average prediction time per FOV was 67 ms.</p>\n\n<p>They will present their solution here in the forum.</p>",
  "messages": [
    {
      "id": "472232",
      "postDate": "02/15/2019 14:54:18",
      "content": "<p>The goal of the special prize competition was to develop a model that is fast during prediction while maintaining high accuracy and can run on minimum hardware resources. See the <a href=\"https://www.kaggle.com/c/human-protein-atlas-image-classification#Special-Prize-Instructions\">instructions</a> and the submission <a href=\"https://www.kaggle.com/c/human-protein-atlas-image-classification/discussion/77436\">invitation</a> for more info.</p>\n\n<p>We are now finished with evaluation and are happy to announce the winning team:</p>\n\n<p>Congratulations to team <strong>Protein Shake</strong>! Their average prediction time per FOV was 67 ms.</p>\n\n<p>They will present their solution here in the forum.</p>",
      "rawMarkdown": "The goal of the special prize competition was to develop a model that is fast during prediction while maintaining high accuracy and can run on minimum hardware resources. See the [instructions](https://www.kaggle.com/c/human-protein-atlas-image-classification#Special-Prize-Instructions) and the submission [invitation](https://www.kaggle.com/c/human-protein-atlas-image-classification/discussion/77436) for more info.\n\nWe are now finished with evaluation and are happy to announce the winning team:\n\nCongratulations to team **Protein Shake**! Their average prediction time per FOV was 67 ms.\n\nThey will present their solution here in the forum.",
      "votes": null
    },
    {
      "id": "473253",
      "postDate": "02/17/2019 16:52:00",
      "content": "<p>Congrats\nLooking forward to the most efficient solution</p>",
      "rawMarkdown": "Congrats\nLooking forward to the most efficient solution",
      "votes": null
    },
    {
      "id": "473564",
      "postDate": "02/18/2019 07:29:47",
      "content": "<p><strong>Team Protein Shake Solution</strong>\nFirst of all congrats to all the winners and thanks to the host and Kaggle who hosted such an interesting and challenging competition. We all learned a lot from this competition.</p>\n\n<p>Looking at the requirements of the competition, it was obvious that this is going to be very difficult. Getting the whole inference in one hour on 2 core with 4GB seemed impossible. However, we decided to give it a shot as optimization is our passion and it is necessary for solving real-life problems.</p>\n\n<p>So, first we ran training with Mobilenet, it was fast but accuracy was nowhere near to what was needed. Then, we started researching into other convolution models and we found ShuffleNet could be the right one.</p>\n\n<p>We started training it on 256x256 images. It also performed much better then MobileNet. We could only speculate that it had better spatial perception and that the channel shuffle helped with preventing overfitting. However, it was not close to the competition score. So, we increased the resolution to 512x512 and started training it again. However, on the 2 core 4GB RAM, it took over 2h (no GPU).</p>\n\n<p>We have read lately that Intel has released OpenVINO, which is an optimized inference engine for Intel processors. It is a dual stage optimizer. First, it converts the input model into an intermediate model that is optimized for inference only, removing anything related to training and streamlining the layers. The second part is an actual inference engine that uses the intermediate model very efficiently (taking advantage of all the options of the processor) for inference. We didn't have much hope but decided to give it a try. It was almost 3 times faster! It was within 1-hour limit. </p>\n\n<p>We also used image augmentation in all the CNN models. A key was small rotates, as they seemed to be very effective.</p>",
      "rawMarkdown": "**Team Protein Shake Solution**\nFirst of all congrats to all the winners and thanks to the host and Kaggle who hosted such an interesting and challenging competition. We all learned a lot from this competition.\n\nLooking at the requirements of the competition, it was obvious that this is going to be very difficult. Getting the whole inference in one hour on 2 core with 4GB seemed impossible. However, we decided to give it a shot as optimization is our passion and it is necessary for solving real-life problems.\n\nSo, first we ran training with Mobilenet, it was fast but accuracy was nowhere near to what was needed. Then, we started researching into other convolution models and we found ShuffleNet could be the right one.\n\nWe started training it on 256x256 images. It also performed much better then MobileNet. We could only speculate that it had better spatial perception and that the channel shuffle helped with preventing overfitting. However, it was not close to the competition score. So, we increased the resolution to 512x512 and started training it again. However, on the 2 core 4GB RAM, it took over 2h (no GPU).\n\nWe have read lately that Intel has released OpenVINO, which is an optimized inference engine for Intel processors. It is a dual stage optimizer. First, it converts the input model into an intermediate model that is optimized for inference only, removing anything related to training and streamlining the layers. The second part is an actual inference engine that uses the intermediate model very efficiently (taking advantage of all the options of the processor) for inference. We didn't have much hope but decided to give it a try. It was almost 3 times faster! It was within 1-hour limit. \n\nWe also used image augmentation in all the CNN models. A key was small rotates, as they seemed to be very effective.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 473253,
      "author_name": "wowfattie",
      "author_url": "",
      "post_date": "02/17/2019 16:52:00",
      "content": "<p>Congrats\nLooking forward to the most efficient solution</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 473564,
      "author_name": "kevingarda7",
      "author_url": "",
      "post_date": "02/18/2019 07:29:47",
      "content": "<p><strong>Team Protein Shake Solution</strong>\nFirst of all congrats to all the winners and thanks to the host and Kaggle who hosted such an interesting and challenging competition. We all learned a lot from this competition.</p>\n\n<p>Looking at the requirements of the competition, it was obvious that this is going to be very difficult. Getting the whole inference in one hour on 2 core with 4GB seemed impossible. However, we decided to give it a shot as optimization is our passion and it is necessary for solving real-life problems.</p>\n\n<p>So, first we ran training with Mobilenet, it was fast but accuracy was nowhere near to what was needed. Then, we started researching into other convolution models and we found ShuffleNet could be the right one.</p>\n\n<p>We started training it on 256x256 images. It also performed much better then MobileNet. We could only speculate that it had better spatial perception and that the channel shuffle helped with preventing overfitting. However, it was not close to the competition score. So, we increased the resolution to 512x512 and started training it again. However, on the 2 core 4GB RAM, it took over 2h (no GPU).</p>\n\n<p>We have read lately that Intel has released OpenVINO, which is an optimized inference engine for Intel processors. It is a dual stage optimizer. First, it converts the input model into an intermediate model that is optimized for inference only, removing anything related to training and streamlining the layers. The second part is an actual inference engine that uses the intermediate model very efficiently (taking advantage of all the options of the processor) for inference. We didn't have much hope but decided to give it a try. It was almost 3 times faster! It was within 1-hour limit. </p>\n\n<p>We also used image augmentation in all the CNN models. A key was small rotates, as they seemed to be very effective.</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "472232": "The goal of the special prize competition was to develop a model that is fast during prediction while maintaining high accuracy and can run on minimum hardware resources. See the [instructions](https://www.kaggle.com/c/human-protein-atlas-image-classification#Special-Prize-Instructions) and the submission [invitation](https://www.kaggle.com/c/human-protein-atlas-image-classification/discussion/77436) for more info.\n\nWe are now finished with evaluation and are happy to announce the winning team:\n\nCongratulations to team **Protein Shake**! Their average prediction time per FOV was 67 ms.\n\nThey will present their solution here in the forum.",
    "473253": "Congrats\nLooking forward to the most efficient solution",
    "473564": "**Team Protein Shake Solution**\nFirst of all congrats to all the winners and thanks to the host and Kaggle who hosted such an interesting and challenging competition. We all learned a lot from this competition.\n\nLooking at the requirements of the competition, it was obvious that this is going to be very difficult. Getting the whole inference in one hour on 2 core with 4GB seemed impossible. However, we decided to give it a shot as optimization is our passion and it is necessary for solving real-life problems.\n\nSo, first we ran training with Mobilenet, it was fast but accuracy was nowhere near to what was needed. Then, we started researching into other convolution models and we found ShuffleNet could be the right one.\n\nWe started training it on 256x256 images. It also performed much better then MobileNet. We could only speculate that it had better spatial perception and that the channel shuffle helped with preventing overfitting. However, it was not close to the competition score. So, we increased the resolution to 512x512 and started training it again. However, on the 2 core 4GB RAM, it took over 2h (no GPU).\n\nWe have read lately that Intel has released OpenVINO, which is an optimized inference engine for Intel processors. It is a dual stage optimizer. First, it converts the input model into an intermediate model that is optimized for inference only, removing anything related to training and streamlining the layers. The second part is an actual inference engine that uses the intermediate model very efficiently (taking advantage of all the options of the processor) for inference. We didn't have much hope but decided to give it a try. It was almost 3 times faster! It was within 1-hour limit. \n\nWe also used image augmentation in all the CNN models. A key was small rotates, as they seemed to be very effective."
  },
  "source": "meta"
}