{
  "id": 238006,
  "title": "Single mode 0.945 solution",
  "url": "/competitions/hubmap-kidney-segmentation/writeups/hit-perceptualcomputing-single-mode-0-945-solution",
  "author_name": "",
  "post_date": "2021-05-11T01:00:49.710Z",
  "votes": 6,
  "comment_count": 1,
  "views": 0,
  "content": "<p>In this competition, I learned a set of traing techniques and pseudo-label finetune, which made my model single-mode at Private Score 0.945. Using this method, we mentioned efficientnet-b3 + Unet, efficientnet-b3 + Linknet as the same. However, we finally submitted the merge version, and his Private Score can only reach 0.943.</p>\n<p>Our backbone uses segmentation_models_pytorch's <strong>efficientnet-b3</strong>, and the structure uses <strong>Linknet and Unet.</strong></p>\n<p>dataset: 1. The image is reduced by 0.25, then cropped to 512 size, 256 steps<br>\ninput: resize 320size,<br>\nlr: 0.001, batchsize: 16, iterations: 8000<br>\nways to raise points:<br>\nUse dice loss + bce, the weight is 0.75<em>dice_loss, 0.25</em>bce_loss<br>\nUse lookahead + CosineAnnealingWarmRestarts combination to train the base model,<br>\nThen finetune the model with the highest score on the validation set.</p>\n<p>lr changed to 0.0003,<br>\ndata: Use pseudo-labels, use the model to make predictions on the test set, and use the prediction results with higher scores as labels<br>\nUse the method of adam + dice + bce for finetune.</p>\n<p>summary<br>\nThe scores of pseudo-labels in lb are actually mainly concentrated on the d48 picture, which blinds our eyes and cannot analyze the scores on other pictures, so that we cannot compare them. Through the offline verification set analysis, although the pseudo-labels will increase Dice scores, but there will be an increase in false detections. This may be caused by the inaccuracy of the pseudo-label use model prediction.Therefore, when there are some pictures or categories that are more peculiar when the game is found later in the game, the lb score is obvious, which may be a trap.</p>\n<p>The pseudo-label itself is neutral and will not cause major problems, but after the use of pseudo-labels in different models, the role of the wrong category is amplified, and other categories will be ignored, which makes a large jitter in the merge.</p>\n<hr>\n<p>这次比赛让我学到了一套调参技巧和伪标签finetune, 这使得我的模型单模在 Private Score 0.945, 利用这套方法我们将 efficientnet-b3 + Unet, efficientnet-b3 + Linknet 都提到了相同的分数, 但是我们最终提交的是merge的版本, 他在 Private Score 只能达到0.943的成绩. </p>\n<p>我们的backbone 使用 segmentation_models_pytorch的 efficientnet-b3, 结构使用 Linknet 和 Unet, <br>\ndataset: 1. 图片缩小0.25, 然后裁剪512尺寸, 256步进<br>\ninput: resize 320size, <br>\nlr: 0.001, batchsize: 16, iterations:8000<br>\n提分比较明显的方法: <br>\n使用 dice loss + bce,  权重为 0.75<em>dice_loss,  0.25</em>bce_loss<br>\n使用 lookahead + CosineAnnealingWarmRestarts 组合 训练base 模型, <br>\n然后将验证集得分最高的模型进行finetune.</p>\n<p>lr 改为0.0003, <br>\ndata: 使用伪标签, 利用模型在测试集上进行预测, 将得分较高的预测结果作为标注<br>\n使用 adam + dice + bce的方法 进行finetune. </p>\n<p>比赛总结: <br>\n伪标签在lb的提分其实主要集中在d48这张图上面, 这蒙蔽了我们的双眼, 无法分析在其他图上的得分, 让我们无法比较, 通过线下验证集分析, 虽然伪标签会增加dice得分, 但是会产生误检增多的情况, 这也许是伪标签利用模型预测的不准确导致的, 所以之后比赛当发现有一些图片或者类别较为奇特, 提分明显, 可能是一个陷阱.</p>\n<p>伪标签本身是中立的, 不会产生较大的问题, 而是不同模型使用了伪标签后, 错误类别的作用被放大, 就会忽略其他类别, 这使得在merge 的时候就会出现较大抖动</p>",
  "messages": [
    {
      "id": "1301125",
      "postDate": "05/11/2021 00:36:46",
      "content": "<p>In this competition, I learned a set of traing techniques and pseudo-label finetune, which made my model single-mode at Private Score 0.945. Using this method, we mentioned efficientnet-b3 + Unet, efficientnet-b3 + Linknet as the same. However, we finally submitted the merge version, and his Private Score can only reach 0.943.</p>\n<p>Our backbone uses segmentation_models_pytorch's <strong>efficientnet-b3</strong>, and the structure uses <strong>Linknet and Unet.</strong></p>\n<p>dataset: 1. The image is reduced by 0.25, then cropped to 512 size, 256 steps<br>\ninput: resize 320size,<br>\nlr: 0.001, batchsize: 16, iterations: 8000<br>\nways to raise points:<br>\nUse dice loss + bce, the weight is 0.75<em>dice_loss, 0.25</em>bce_loss<br>\nUse lookahead + CosineAnnealingWarmRestarts combination to train the base model,<br>\nThen finetune the model with the highest score on the validation set.</p>\n<p>lr changed to 0.0003,<br>\ndata: Use pseudo-labels, use the model to make predictions on the test set, and use the prediction results with higher scores as labels<br>\nUse the method of adam + dice + bce for finetune.</p>\n<p>summary<br>\nThe scores of pseudo-labels in lb are actually mainly concentrated on the d48 picture, which blinds our eyes and cannot analyze the scores on other pictures, so that we cannot compare them. Through the offline verification set analysis, although the pseudo-labels will increase Dice scores, but there will be an increase in false detections. This may be caused by the inaccuracy of the pseudo-label use model prediction.Therefore, when there are some pictures or categories that are more peculiar when the game is found later in the game, the lb score is obvious, which may be a trap.</p>\n<p>The pseudo-label itself is neutral and will not cause major problems, but after the use of pseudo-labels in different models, the role of the wrong category is amplified, and other categories will be ignored, which makes a large jitter in the merge.</p>\n<hr>\n<p>这次比赛让我学到了一套调参技巧和伪标签finetune, 这使得我的模型单模在 Private Score 0.945, 利用这套方法我们将 efficientnet-b3 + Unet, efficientnet-b3 + Linknet 都提到了相同的分数, 但是我们最终提交的是merge的版本, 他在 Private Score 只能达到0.943的成绩. </p>\n<p>我们的backbone 使用 segmentation_models_pytorch的 efficientnet-b3, 结构使用 Linknet 和 Unet, <br>\ndataset: 1. 图片缩小0.25, 然后裁剪512尺寸, 256步进<br>\ninput: resize 320size, <br>\nlr: 0.001, batchsize: 16, iterations:8000<br>\n提分比较明显的方法: <br>\n使用 dice loss + bce,  权重为 0.75<em>dice_loss,  0.25</em>bce_loss<br>\n使用 lookahead + CosineAnnealingWarmRestarts 组合 训练base 模型, <br>\n然后将验证集得分最高的模型进行finetune.</p>\n<p>lr 改为0.0003, <br>\ndata: 使用伪标签, 利用模型在测试集上进行预测, 将得分较高的预测结果作为标注<br>\n使用 adam + dice + bce的方法 进行finetune. </p>\n<p>比赛总结: <br>\n伪标签在lb的提分其实主要集中在d48这张图上面, 这蒙蔽了我们的双眼, 无法分析在其他图上的得分, 让我们无法比较, 通过线下验证集分析, 虽然伪标签会增加dice得分, 但是会产生误检增多的情况, 这也许是伪标签利用模型预测的不准确导致的, 所以之后比赛当发现有一些图片或者类别较为奇特, 提分明显, 可能是一个陷阱.</p>\n<p>伪标签本身是中立的, 不会产生较大的问题, 而是不同模型使用了伪标签后, 错误类别的作用被放大, 就会忽略其他类别, 这使得在merge 的时候就会出现较大抖动</p>",
      "rawMarkdown": "In this competition, I learned a set of traing techniques and pseudo-label finetune, which made my model single-mode at Private Score 0.945. Using this method, we mentioned efficientnet-b3 + Unet, efficientnet-b3 + Linknet as the same. However, we finally submitted the merge version, and his Private Score can only reach 0.943.\n\nOur backbone uses segmentation_models_pytorch's **efficientnet-b3**, and the structure uses **Linknet and Unet.**\n\ndataset: 1. The image is reduced by 0.25, then cropped to 512 size, 256 steps\ninput: resize 320size,\nlr: 0.001, batchsize: 16, iterations: 8000\nways to raise points:\nUse dice loss + bce, the weight is 0.75*dice_loss, 0.25*bce_loss\nUse lookahead + CosineAnnealingWarmRestarts combination to train the base model,\nThen finetune the model with the highest score on the validation set.\n\nlr changed to 0.0003,\ndata: Use pseudo-labels, use the model to make predictions on the test set, and use the prediction results with higher scores as labels\nUse the method of adam + dice + bce for finetune.\n\nsummary\nThe scores of pseudo-labels in lb are actually mainly concentrated on the d48 picture, which blinds our eyes and cannot analyze the scores on other pictures, so that we cannot compare them. Through the offline verification set analysis, although the pseudo-labels will increase Dice scores, but there will be an increase in false detections. This may be caused by the inaccuracy of the pseudo-label use model prediction.Therefore, when there are some pictures or categories that are more peculiar when the game is found later in the game, the lb score is obvious, which may be a trap.\n\nThe pseudo-label itself is neutral and will not cause major problems, but after the use of pseudo-labels in different models, the role of the wrong category is amplified, and other categories will be ignored, which makes a large jitter in the merge.\n\n--------\n\n这次比赛让我学到了一套调参技巧和伪标签finetune, 这使得我的模型单模在 Private Score 0.945, 利用这套方法我们将 efficientnet-b3 + Unet, efficientnet-b3 + Linknet 都提到了相同的分数, 但是我们最终提交的是merge的版本, 他在 Private Score 只能达到0.943的成绩. \n\n我们的backbone 使用 segmentation_models_pytorch的 efficientnet-b3, 结构使用 Linknet 和 Unet, \ndataset: 1. 图片缩小0.25, 然后裁剪512尺寸, 256步进\ninput: resize 320size, \nlr: 0.001, batchsize: 16, iterations:8000\n提分比较明显的方法: \n使用 dice loss + bce,  权重为 0.75*dice_loss,  0.25*bce_loss\n使用 lookahead + CosineAnnealingWarmRestarts 组合 训练base 模型, \n然后将验证集得分最高的模型进行finetune.\n\nlr 改为0.0003, \ndata: 使用伪标签, 利用模型在测试集上进行预测, 将得分较高的预测结果作为标注\n使用 adam + dice + bce的方法 进行finetune. \n\n\n\n比赛总结: \n伪标签在lb的提分其实主要集中在d48这张图上面, 这蒙蔽了我们的双眼, 无法分析在其他图上的得分, 让我们无法比较, 通过线下验证集分析, 虽然伪标签会增加dice得分, 但是会产生误检增多的情况, 这也许是伪标签利用模型预测的不准确导致的, 所以之后比赛当发现有一些图片或者类别较为奇特, 提分明显, 可能是一个陷阱.\n\n伪标签本身是中立的, 不会产生较大的问题, 而是不同模型使用了伪标签后, 错误类别的作用被放大, 就会忽略其他类别, 这使得在merge 的时候就会出现较大抖动",
      "votes": null
    },
    {
      "id": "1304668",
      "postDate": "05/12/2021 19:05:02",
      "content": "<p>Nice job team. Single model 945 is a medal. You will get a medal in your next comp. Keep up the good work!</p>",
      "rawMarkdown": "Nice job team. Single model 945 is a medal. You will get a medal in your next comp. Keep up the good work!",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1304668,
      "author_name": "cdeotte",
      "author_url": "",
      "post_date": "05/12/2021 19:05:02",
      "content": "<p>Nice job team. Single model 945 is a medal. You will get a medal in your next comp. Keep up the good work!</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1301125": "In this competition, I learned a set of traing techniques and pseudo-label finetune, which made my model single-mode at Private Score 0.945. Using this method, we mentioned efficientnet-b3 + Unet, efficientnet-b3 + Linknet as the same. However, we finally submitted the merge version, and his Private Score can only reach 0.943.\n\nOur backbone uses segmentation_models_pytorch's **efficientnet-b3**, and the structure uses **Linknet and Unet.**\n\ndataset: 1. The image is reduced by 0.25, then cropped to 512 size, 256 steps\ninput: resize 320size,\nlr: 0.001, batchsize: 16, iterations: 8000\nways to raise points:\nUse dice loss + bce, the weight is 0.75*dice_loss, 0.25*bce_loss\nUse lookahead + CosineAnnealingWarmRestarts combination to train the base model,\nThen finetune the model with the highest score on the validation set.\n\nlr changed to 0.0003,\ndata: Use pseudo-labels, use the model to make predictions on the test set, and use the prediction results with higher scores as labels\nUse the method of adam + dice + bce for finetune.\n\nsummary\nThe scores of pseudo-labels in lb are actually mainly concentrated on the d48 picture, which blinds our eyes and cannot analyze the scores on other pictures, so that we cannot compare them. Through the offline verification set analysis, although the pseudo-labels will increase Dice scores, but there will be an increase in false detections. This may be caused by the inaccuracy of the pseudo-label use model prediction.Therefore, when there are some pictures or categories that are more peculiar when the game is found later in the game, the lb score is obvious, which may be a trap.\n\nThe pseudo-label itself is neutral and will not cause major problems, but after the use of pseudo-labels in different models, the role of the wrong category is amplified, and other categories will be ignored, which makes a large jitter in the merge.\n\n--------\n\n这次比赛让我学到了一套调参技巧和伪标签finetune, 这使得我的模型单模在 Private Score 0.945, 利用这套方法我们将 efficientnet-b3 + Unet, efficientnet-b3 + Linknet 都提到了相同的分数, 但是我们最终提交的是merge的版本, 他在 Private Score 只能达到0.943的成绩. \n\n我们的backbone 使用 segmentation_models_pytorch的 efficientnet-b3, 结构使用 Linknet 和 Unet, \ndataset: 1. 图片缩小0.25, 然后裁剪512尺寸, 256步进\ninput: resize 320size, \nlr: 0.001, batchsize: 16, iterations:8000\n提分比较明显的方法: \n使用 dice loss + bce,  权重为 0.75*dice_loss,  0.25*bce_loss\n使用 lookahead + CosineAnnealingWarmRestarts 组合 训练base 模型, \n然后将验证集得分最高的模型进行finetune.\n\nlr 改为0.0003, \ndata: 使用伪标签, 利用模型在测试集上进行预测, 将得分较高的预测结果作为标注\n使用 adam + dice + bce的方法 进行finetune. \n\n\n\n比赛总结: \n伪标签在lb的提分其实主要集中在d48这张图上面, 这蒙蔽了我们的双眼, 无法分析在其他图上的得分, 让我们无法比较, 通过线下验证集分析, 虽然伪标签会增加dice得分, 但是会产生误检增多的情况, 这也许是伪标签利用模型预测的不准确导致的, 所以之后比赛当发现有一些图片或者类别较为奇特, 提分明显, 可能是一个陷阱.\n\n伪标签本身是中立的, 不会产生较大的问题, 而是不同模型使用了伪标签后, 错误类别的作用被放大, 就会忽略其他类别, 这使得在merge 的时候就会出现较大抖动",
    "1304668": "Nice job team. Single model 945 is a medal. You will get a medal in your next comp. Keep up the good work!"
  },
  "source": "meta"
}