{
  "id": 430473,
  "title": "58th Place Solution (My first write-up!)",
  "url": "/competitions/google-research-identify-contrails-reduce-global-warming/discussion/430473",
  "author_name": "Bartley",
  "post_date": "2023-08-10T00:04:01.110000",
  "votes": 12,
  "comment_count": 0,
  "views": 0,
  "content": "<h3>Overview</h3>\n<p>First, thanks to Google Research for hosting an interesting and well-organized competition. I am always happy to try and build solutions that help reduce our environmental impact. Second, thanks to everyone who participated and shared ideas throughout this competition. I always learn a lot from the code and discussion tabs.</p>\n<p>My solution is an ensemble of Unet models with Timm backbones. The optimal threshold for each model was tuned using an out-of-fold validation set. No augmentation was applied to the images during training.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F5570735%2F98f1fa7711e8116a4b40933f13209bbd%2Ficrgw-v1.drawio.png?generation=1691625764325229&amp;alt=media\" alt=\"Ensemble Image\"></p>\n<p>In order of highest to lowest validation dice scores, the backbones I used were maxxvitv2_rmlp_base_rw_384, resnest269, maxvit_base_tf_512, and mit_b4. I also used stochastic weight averaging on the last 5 epochs of training for the maxvit models, and no SWA for the other models. All of my experiments were done on small models and image sizes so that I could experiment quickly. I only scaled up the image sizes and model parameters in the last week of the competition for the final submission.</p>\n<p>Please leave any criticisms/suggestions/questions. The more the better :)</p>\n<h3>Other Attempts</h3>\n<p>Each item on this list either did not improve performance or was too computationally expensive for me to pursue.</p>\n<ul>\n<li>Losses: Tversky, LogCoshDice, BCE</li>\n<li>Downsampling/Upsampling Interpolation Methods</li>\n<li>Removing Islands </li>\n<li>Openmmlab (struggled to get this working)</li>\n<li>Deep supervision</li>\n<li>MANet, Unet++, Unet+++, and others..</li>\n</ul>\n<h3>Frameworks</h3>\n<p>Models: <a href=\"https://github.com/qubvel/segmentation_models.pytorch\" target=\"_blank\">segmentation_models.pytorch</a>,<a href=\"https://github.com/huggingface/pytorch-image-models/tree/main/timm\" target=\"_blank\">Timm</a><br>\nTraining: <a href=\"https://github.com/Lightning-AI/lightning\" target=\"_blank\">Lightning-AI</a><br>\nLogging: <a href=\"https://wandb.ai/\" target=\"_blank\">WandB</a></p>\n<hr>\n<p>Finally, congrats to <a href=\"https://www.kaggle.com/tascj0\" target=\"_blank\">@tascj0</a> for 1 submission gold. Very impressive!</p>",
  "messages": [
    {
      "id": 2382663,
      "postDate": "2023-08-10T00:04:01.110Z",
      "content": "<h3>Overview</h3>\n<p>First, thanks to Google Research for hosting an interesting and well-organized competition. I am always happy to try and build solutions that help reduce our environmental impact. Second, thanks to everyone who participated and shared ideas throughout this competition. I always learn a lot from the code and discussion tabs.</p>\n<p>My solution is an ensemble of Unet models with Timm backbones. The optimal threshold for each model was tuned using an out-of-fold validation set. No augmentation was applied to the images during training.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F5570735%2F98f1fa7711e8116a4b40933f13209bbd%2Ficrgw-v1.drawio.png?generation=1691625764325229&amp;alt=media\" alt=\"Ensemble Image\"></p>\n<p>In order of highest to lowest validation dice scores, the backbones I used were maxxvitv2_rmlp_base_rw_384, resnest269, maxvit_base_tf_512, and mit_b4. I also used stochastic weight averaging on the last 5 epochs of training for the maxvit models, and no SWA for the other models. All of my experiments were done on small models and image sizes so that I could experiment quickly. I only scaled up the image sizes and model parameters in the last week of the competition for the final submission.</p>\n<p>Please leave any criticisms/suggestions/questions. The more the better :)</p>\n<h3>Other Attempts</h3>\n<p>Each item on this list either did not improve performance or was too computationally expensive for me to pursue.</p>\n<ul>\n<li>Losses: Tversky, LogCoshDice, BCE</li>\n<li>Downsampling/Upsampling Interpolation Methods</li>\n<li>Removing Islands </li>\n<li>Openmmlab (struggled to get this working)</li>\n<li>Deep supervision</li>\n<li>MANet, Unet++, Unet+++, and others..</li>\n</ul>\n<h3>Frameworks</h3>\n<p>Models: <a href=\"https://github.com/qubvel/segmentation_models.pytorch\" target=\"_blank\">segmentation_models.pytorch</a>,<a href=\"https://github.com/huggingface/pytorch-image-models/tree/main/timm\" target=\"_blank\">Timm</a><br>\nTraining: <a href=\"https://github.com/Lightning-AI/lightning\" target=\"_blank\">Lightning-AI</a><br>\nLogging: <a href=\"https://wandb.ai/\" target=\"_blank\">WandB</a></p>\n<hr>\n<p>Finally, congrats to <a href=\"https://www.kaggle.com/tascj0\" target=\"_blank\">@tascj0</a> for 1 submission gold. Very impressive!</p>",
      "rawMarkdown": "### Overview\n\nFirst, thanks to Google Research for hosting an interesting and well-organized competition. I am always happy to try and build solutions that help reduce our environmental impact. Second, thanks to everyone who participated and shared ideas throughout this competition. I always learn a lot from the code and discussion tabs.\n\nMy solution is an ensemble of Unet models with Timm backbones. The optimal threshold for each model was tuned using an out-of-fold validation set. No augmentation was applied to the images during training.\n\n![Ensemble Image](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F5570735%2F98f1fa7711e8116a4b40933f13209bbd%2Ficrgw-v1.drawio.png?generation=1691625764325229&alt=media)\n\nIn order of highest to lowest validation dice scores, the backbones I used were maxxvitv2_rmlp_base_rw_384, resnest269, maxvit_base_tf_512, and mit_b4. I also used stochastic weight averaging on the last 5 epochs of training for the maxvit models, and no SWA for the other models. All of my experiments were done on small models and image sizes so that I could experiment quickly. I only scaled up the image sizes and model parameters in the last week of the competition for the final submission.\n\nPlease leave any criticisms/suggestions/questions. The more the better :)\n\n### Other Attempts\n\nEach item on this list either did not improve performance or was too computationally expensive for me to pursue.\n\n- Losses: Tversky, LogCoshDice, BCE\n- Downsampling/Upsampling Interpolation Methods\n- Removing Islands \n- Openmmlab (struggled to get this working)\n- Deep supervision\n- MANet, Unet++, Unet+++, and others..\n\n### Frameworks\n\nModels: [segmentation_models.pytorch](https://github.com/qubvel/segmentation_models.pytorch),[Timm](https://github.com/huggingface/pytorch-image-models/tree/main/timm)\nTraining: [Lightning-AI](https://github.com/Lightning-AI/lightning)\nLogging: [WandB](https://wandb.ai/)\n\n---\n\nFinally, congrats to @tascj0 for 1 submission gold. Very impressive!\n",
      "votes": 11
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "2382663": "### Overview\n\nFirst, thanks to Google Research for hosting an interesting and well-organized competition. I am always happy to try and build solutions that help reduce our environmental impact. Second, thanks to everyone who participated and shared ideas throughout this competition. I always learn a lot from the code and discussion tabs.\n\nMy solution is an ensemble of Unet models with Timm backbones. The optimal threshold for each model was tuned using an out-of-fold validation set. No augmentation was applied to the images during training.\n\n![Ensemble Image](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F5570735%2F98f1fa7711e8116a4b40933f13209bbd%2Ficrgw-v1.drawio.png?generation=1691625764325229&alt=media)\n\nIn order of highest to lowest validation dice scores, the backbones I used were maxxvitv2_rmlp_base_rw_384, resnest269, maxvit_base_tf_512, and mit_b4. I also used stochastic weight averaging on the last 5 epochs of training for the maxvit models, and no SWA for the other models. All of my experiments were done on small models and image sizes so that I could experiment quickly. I only scaled up the image sizes and model parameters in the last week of the competition for the final submission.\n\nPlease leave any criticisms/suggestions/questions. The more the better :)\n\n### Other Attempts\n\nEach item on this list either did not improve performance or was too computationally expensive for me to pursue.\n\n- Losses: Tversky, LogCoshDice, BCE\n- Downsampling/Upsampling Interpolation Methods\n- Removing Islands \n- Openmmlab (struggled to get this working)\n- Deep supervision\n- MANet, Unet++, Unet+++, and others..\n\n### Frameworks\n\nModels: [segmentation_models.pytorch](https://github.com/qubvel/segmentation_models.pytorch),[Timm](https://github.com/huggingface/pytorch-image-models/tree/main/timm)\nTraining: [Lightning-AI](https://github.com/Lightning-AI/lightning)\nLogging: [WandB](https://wandb.ai/)\n\n---\n\nFinally, congrats to @tascj0 for 1 submission gold. Very impressive!\n"
  }
}