{
  "id": 226621,
  "title": "7th Place Solution [RaddbotnaKama 200d]",
  "url": "/competitions/ranzcr-clip-catheter-line-classification/discussion/226621",
  "author_name": "RabotniKuma",
  "post_date": "2021-03-17T05:36:49.527000",
  "votes": 86,
  "comment_count": 16,
  "views": 0,
  "content": "<p>First of all, I would like to express deep gratitude to organizers and all the teams for making this competition possible. Also, I would like to thank my teammates - <a href=\"https://www.kaggle.com/yasufuminakama\" target=\"_blank\">@yasufuminakama</a> and <a href=\"https://www.kaggle.com/raddar\" target=\"_blank\">@raddar</a> .</p>\n<p>Code will be available at: <a href=\"https://github.com/analokmaus/kaggle-ranzcr-clip-public\" target=\"_blank\">https://github.com/analokmaus/kaggle-ranzcr-clip-public</a></p>\n<p>Here is the overview of our pipeline: <br>\n<img src=\"https://pbs.twimg.com/media/EwqG7gdVcAEOmHS?format=jpg&amp;name=large\" alt=\"pipeline\"><br>\n(n=7)</p>\n<h2>Preprocessing</h2>\n<p>Input image size had a good correlation with model performance. We used 768 px input for all models, considering the training / inference time. For data augmentation, we used some common transformations such as horizontal flip, affine transform, random brightness / gamma, optical distortion etc. </p>\n<h2>Architectures</h2>\n<p>We used <strong>UNet-CNN</strong> architecture. Output of UNet was segmentation mask consisting of three channels - ETT, NGT, and CVC+SGC. UNet was supposed to play the role of spatial supervision. Thus, compared to normal CNN-only architecture it showed more robust performance and higher CV / LB correlation. </p>\n<p><img src=\"https://pbs.twimg.com/media/EwqHtBDVgAIorDd?format=jpg&amp;name=medium\" alt=\"model\"></p>\n<p>As for backbone, big model in general performed better. We used ResNet200d, EfficientNet-b7, and NFNet-F1. </p>\n<p>Since there wasn’t ResNet200d encoder for segmentation_models_pytorch, we implemented it. <a href=\"https://www.kaggle.com/analokamus/resnet200d-encoder-for-segmentation-models-pytorch?scriptVersionId=56975633\" target=\"_blank\">Implementation</a></p>\n<h2>Training procedure</h2>\n<p>For UNet-CNN model, we trained UNet on additional annotations provided by competition host. And then trained the whole network on all images. Since we were not able to build a stable NFNet UNet encoder, we trained NFNet in the same way as <a href=\"https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/207577\" target=\"_blank\">three stage training</a> by <a href=\"https://www.kaggle.com/yasufuminakama\" target=\"_blank\">@yasufuminakama</a>.</p>\n<h2>External dataset</h2>\n<p>Utilising external CXR dataset was another key to improve model performance. We pseudo-labelled NIH and MIMIC CXR dataset using our best performing model, and sampled a subset with balanced class distribution from each dataset in order to reduce data size. </p>\n<p>We trained new student model with pseudo labels on external dataset. New student model was supposed to have a different feature extractor from teacher model. We finetuned student model on original dataset, and observed better performance than teacher model (see <a href=\"https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/215910\" target=\"_blank\">this discussion</a> by <a href=\"https://www.kaggle.com/ammarali32\" target=\"_blank\">@ammarali32</a> ).</p>\n<p>We did also test conventional single stage pseudo labelling. While we observed slight uplift in performance but we gave it up because it converged quite slow.</p>",
  "messages": [
    {
      "id": 1241588,
      "postDate": "2021-03-17T05:36:49.527Z",
      "content": "<p>First of all, I would like to express deep gratitude to organizers and all the teams for making this competition possible. Also, I would like to thank my teammates - <a href=\"https://www.kaggle.com/yasufuminakama\" target=\"_blank\">@yasufuminakama</a> and <a href=\"https://www.kaggle.com/raddar\" target=\"_blank\">@raddar</a> .</p>\n<p>Code will be available at: <a href=\"https://github.com/analokmaus/kaggle-ranzcr-clip-public\" target=\"_blank\">https://github.com/analokmaus/kaggle-ranzcr-clip-public</a></p>\n<p>Here is the overview of our pipeline: <br>\n<img src=\"https://pbs.twimg.com/media/EwqG7gdVcAEOmHS?format=jpg&amp;name=large\" alt=\"pipeline\"><br>\n(n=7)</p>\n<h2>Preprocessing</h2>\n<p>Input image size had a good correlation with model performance. We used 768 px input for all models, considering the training / inference time. For data augmentation, we used some common transformations such as horizontal flip, affine transform, random brightness / gamma, optical distortion etc. </p>\n<h2>Architectures</h2>\n<p>We used <strong>UNet-CNN</strong> architecture. Output of UNet was segmentation mask consisting of three channels - ETT, NGT, and CVC+SGC. UNet was supposed to play the role of spatial supervision. Thus, compared to normal CNN-only architecture it showed more robust performance and higher CV / LB correlation. </p>\n<p><img src=\"https://pbs.twimg.com/media/EwqHtBDVgAIorDd?format=jpg&amp;name=medium\" alt=\"model\"></p>\n<p>As for backbone, big model in general performed better. We used ResNet200d, EfficientNet-b7, and NFNet-F1. </p>\n<p>Since there wasn’t ResNet200d encoder for segmentation_models_pytorch, we implemented it. <a href=\"https://www.kaggle.com/analokamus/resnet200d-encoder-for-segmentation-models-pytorch?scriptVersionId=56975633\" target=\"_blank\">Implementation</a></p>\n<h2>Training procedure</h2>\n<p>For UNet-CNN model, we trained UNet on additional annotations provided by competition host. And then trained the whole network on all images. Since we were not able to build a stable NFNet UNet encoder, we trained NFNet in the same way as <a href=\"https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/207577\" target=\"_blank\">three stage training</a> by <a href=\"https://www.kaggle.com/yasufuminakama\" target=\"_blank\">@yasufuminakama</a>.</p>\n<h2>External dataset</h2>\n<p>Utilising external CXR dataset was another key to improve model performance. We pseudo-labelled NIH and MIMIC CXR dataset using our best performing model, and sampled a subset with balanced class distribution from each dataset in order to reduce data size. </p>\n<p>We trained new student model with pseudo labels on external dataset. New student model was supposed to have a different feature extractor from teacher model. We finetuned student model on original dataset, and observed better performance than teacher model (see <a href=\"https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/215910\" target=\"_blank\">this discussion</a> by <a href=\"https://www.kaggle.com/ammarali32\" target=\"_blank\">@ammarali32</a> ).</p>\n<p>We did also test conventional single stage pseudo labelling. While we observed slight uplift in performance but we gave it up because it converged quite slow.</p>",
      "rawMarkdown": "First of all, I would like to express deep gratitude to organizers and all the teams for making this competition possible. Also, I would like to thank my teammates - @yasufuminakama and @raddar .\n\nCode will be available at: https://github.com/analokmaus/kaggle-ranzcr-clip-public\n\nHere is the overview of our pipeline: \n![pipeline](https://pbs.twimg.com/media/EwqG7gdVcAEOmHS?format=jpg&name=large)\n(n=7)\n\n## Preprocessing \n\nInput image size had a good correlation with model performance. We used 768 px input for all models, considering the training / inference time. For data augmentation, we used some common transformations such as horizontal flip, affine transform, random brightness / gamma, optical distortion etc. \n\n## Architectures \n\nWe used **UNet-CNN** architecture. Output of UNet was segmentation mask consisting of three channels - ETT, NGT, and CVC+SGC. UNet was supposed to play the role of spatial supervision. Thus, compared to normal CNN-only architecture it showed more robust performance and higher CV / LB correlation. \n\n![model](https://pbs.twimg.com/media/EwqHtBDVgAIorDd?format=jpg&name=medium)\n\nAs for backbone, big model in general performed better. We used ResNet200d, EfficientNet-b7, and NFNet-F1. \n\nSince there wasn’t ResNet200d encoder for segmentation_models_pytorch, we implemented it. [Implementation](https://www.kaggle.com/analokamus/resnet200d-encoder-for-segmentation-models-pytorch?scriptVersionId=56975633)\n\n## Training procedure \n\nFor UNet-CNN model, we trained UNet on additional annotations provided by competition host. And then trained the whole network on all images. Since we were not able to build a stable NFNet UNet encoder, we trained NFNet in the same way as [three stage training](https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/207577) by @yasufuminakama.\n\n## External dataset \n\nUtilising external CXR dataset was another key to improve model performance. We pseudo-labelled NIH and MIMIC CXR dataset using our best performing model, and sampled a subset with balanced class distribution from each dataset in order to reduce data size. \n\nWe trained new student model with pseudo labels on external dataset. New student model was supposed to have a different feature extractor from teacher model. We finetuned student model on original dataset, and observed better performance than teacher model (see [this discussion](https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/215910) by @ammarali32 ).\n\nWe did also test conventional single stage pseudo labelling. While we observed slight uplift in performance but we gave it up because it converged quite slow.",
      "votes": 86
    },
    {
      "id": 1243409,
      "postDate": "2021-03-18T07:38:29.113Z",
      "content": "<p>Code is now available at <a href=\"https://github.com/analokmaus/kaggle-ranzcr-clip-public\" target=\"_blank\">https://github.com/analokmaus/kaggle-ranzcr-clip-public</a> !<br>\nNote that the repository is WIP, and there will be some updates.</p>",
      "rawMarkdown": "Code is now available at https://github.com/analokmaus/kaggle-ranzcr-clip-public !\nNote that the repository is WIP, and there will be some updates.",
      "votes": 4
    },
    {
      "id": 1241626,
      "postDate": "2021-03-17T06:01:11.310Z",
      "content": "<p>Wish I had spent more time exploring the unet stuff. I wrote it up but never really trained it to extensively or with strong backbones and high resolution. Used it in a similar way as additional channels, but didnt see any benefit from it. </p>",
      "rawMarkdown": "Wish I had spent more time exploring the unet stuff. I wrote it up but never really trained it to extensively or with strong backbones and high resolution. Used it in a similar way as additional channels, but didnt see any benefit from it. ",
      "votes": 4,
      "replies": [
        {
          "id": 1243309,
          "postDate": "2021-03-18T06:13:26.553Z",
          "content": "<p>Our team even. we planned to do something simple</p>",
          "rawMarkdown": "Our team even. we planned to do something simple"
        }
      ]
    },
    {
      "id": 1244855,
      "postDate": "2021-03-19T09:05:54.200Z",
      "content": "<p>I like the \"n-th Place Solution\" placeholder in the pipeline schema. 😄<br>\nWell done!</p>",
      "rawMarkdown": "I like the \"n-th Place Solution\" placeholder in the pipeline schema. 😄\nWell done!",
      "votes": 1
    },
    {
      "id": 1243890,
      "postDate": "2021-03-18T14:59:09.477Z",
      "content": "<p>Congrats on 7th place!</p>\n<p>Thank you for sharing elegant solution.</p>",
      "rawMarkdown": "Congrats on 7th place!\n\nThank you for sharing elegant solution.",
      "votes": 1
    },
    {
      "id": 1242672,
      "postDate": "2021-03-17T18:28:29.477Z",
      "content": "<p>Congratulations. Eagerly waiting for your UNet training notebook and your sudo-label making technique. </p>",
      "rawMarkdown": "Congratulations. Eagerly waiting for your UNet training notebook and your sudo-label making technique. ",
      "votes": 1
    },
    {
      "id": 1242668,
      "postDate": "2021-03-17T18:27:28.797Z",
      "content": "<p>Congratz !<br>\nInteresting to see NFNets models are viable, I was skeptical when I first saw the paper but glad to see it held the test of Kaggle :)</p>",
      "rawMarkdown": "Congratz !\nInteresting to see NFNets models are viable, I was skeptical when I first saw the paper but glad to see it held the test of Kaggle :)",
      "votes": 1
    },
    {
      "id": 1242026,
      "postDate": "2021-03-17T10:56:23.010Z",
      "content": "<p><a href=\"https://www.kaggle.com/analokamus\" target=\"_blank\">@analokamus</a> Impressive Solution Pipeline . Congratulations on Gold Finish </p>",
      "rawMarkdown": "@analokamus Impressive Solution Pipeline . Congratulations on Gold Finish ",
      "votes": 1
    },
    {
      "id": 1241844,
      "postDate": "2021-03-17T08:34:00.390Z",
      "content": "<p>Congrats team for 7th place !<br>\nExcited to see your Unet training notebook.</p>",
      "rawMarkdown": "Congrats team for 7th place !\nExcited to see your Unet training notebook.",
      "votes": 1
    },
    {
      "id": 1241960,
      "postDate": "2021-03-17T09:56:38.150Z",
      "content": "<p>Amazing work. You and your team not just scored high but also helped a lot in datasets and implementations during the competition. Big thanks ))  </p>",
      "rawMarkdown": "Amazing work. You and your team not just scored high but also helped a lot in datasets and implementations during the competition. Big thanks ))  ",
      "votes": 2
    },
    {
      "id": 1241694,
      "postDate": "2021-03-17T06:52:53.343Z",
      "content": "<p>Congrats on 7th place! <a href=\"https://www.kaggle.com/analokamus\" target=\"_blank\">@analokamus</a>, <a href=\"https://www.kaggle.com/yasufuminakama\" target=\"_blank\">@yasufuminakama</a> and <a href=\"https://www.kaggle.com/raddar\" target=\"_blank\">@raddar</a>.<br>\nThe clean explanation is impressive.</p>",
      "rawMarkdown": "Congrats on 7th place! @analokamus, @yasufuminakama and @raddar.\nThe clean explanation is impressive.\n",
      "votes": 2
    },
    {
      "id": 1241593,
      "postDate": "2021-03-17T05:41:26.003Z",
      "content": "<p>Congrats <a href=\"https://www.kaggle.com/analokamus\" target=\"_blank\">@analokamus</a> and team on 7th place and thanks for the writeup</p>",
      "rawMarkdown": "Congrats @analokamus and team on 7th place and thanks for the writeup",
      "votes": 2
    },
    {
      "id": 1254829,
      "postDate": "2021-03-28T07:01:39.280Z",
      "content": "<p>Thank you <a href=\"https://www.kaggle.com/analokamus\" target=\"_blank\">@analokamus</a> for sharing this experience. This is a good knowledge base.</p>",
      "rawMarkdown": "Thank you @analokamus for sharing this experience. This is a good knowledge base."
    },
    {
      "id": 1246814,
      "postDate": "2021-03-21T06:16:40.960Z",
      "rawMarkdown": "",
      "votes": 1,
      "isDeleted": true
    },
    {
      "id": 1243216,
      "postDate": "2021-03-18T05:05:51.003Z",
      "content": "<p>Thanks for sharing.</p>",
      "rawMarkdown": "Thanks for sharing.",
      "votes": 1
    },
    {
      "id": 1241648,
      "postDate": "2021-03-17T06:18:21.627Z",
      "content": "<p>Elegant pipeline. Thanks for sharing.</p>",
      "rawMarkdown": "Elegant pipeline. Thanks for sharing.",
      "votes": 1
    }
  ],
  "comments": [
    {
      "id": 1243409,
      "author_name": "RabotniKuma",
      "author_url": "",
      "post_date": "2021-03-18T07:38:29.113000",
      "content": "<p>Code is now available at <a href=\"https://github.com/analokmaus/kaggle-ranzcr-clip-public\" target=\"_blank\">https://github.com/analokmaus/kaggle-ranzcr-clip-public</a> !<br>\nNote that the repository is WIP, and there will be some updates.</p>",
      "votes": 4,
      "replies": []
    },
    {
      "id": 1241626,
      "author_name": "ryches",
      "author_url": "",
      "post_date": "2021-03-17T06:01:11.310000",
      "content": "<p>Wish I had spent more time exploring the unet stuff. I wrote it up but never really trained it to extensively or with strong backbones and high resolution. Used it in a similar way as additional channels, but didnt see any benefit from it. </p>",
      "votes": 4,
      "replies": [
        {
          "id": 1243309,
          "author_name": "Mohammed Rizin V K",
          "author_url": "",
          "post_date": "2021-03-18T06:13:26.553000",
          "content": "<p>Our team even. we planned to do something simple</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1244855,
      "author_name": "Yassine Alouini",
      "author_url": "",
      "post_date": "2021-03-19T09:05:54.200000",
      "content": "<p>I like the \"n-th Place Solution\" placeholder in the pipeline schema. 😄<br>\nWell done!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1243890,
      "author_name": "Tawara",
      "author_url": "",
      "post_date": "2021-03-18T14:59:09.477000",
      "content": "<p>Congrats on 7th place!</p>\n<p>Thank you for sharing elegant solution.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1242672,
      "author_name": "Md. Masud Rana",
      "author_url": "",
      "post_date": "2021-03-17T18:28:29.477000",
      "content": "<p>Congratulations. Eagerly waiting for your UNet training notebook and your sudo-label making technique. </p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1242668,
      "author_name": "Theo Viel",
      "author_url": "",
      "post_date": "2021-03-17T18:27:28.797000",
      "content": "<p>Congratz !<br>\nInteresting to see NFNets models are viable, I was skeptical when I first saw the paper but glad to see it held the test of Kaggle :)</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1242026,
      "author_name": "Tensor Girl",
      "author_url": "",
      "post_date": "2021-03-17T10:56:23.010000",
      "content": "<p><a href=\"https://www.kaggle.com/analokamus\" target=\"_blank\">@analokamus</a> Impressive Solution Pipeline . Congratulations on Gold Finish </p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1241844,
      "author_name": "Aman Deep Gupta",
      "author_url": "",
      "post_date": "2021-03-17T08:34:00.390000",
      "content": "<p>Congrats team for 7th place !<br>\nExcited to see your Unet training notebook.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1241960,
      "author_name": "ammarali32",
      "author_url": "",
      "post_date": "2021-03-17T09:56:38.150000",
      "content": "<p>Amazing work. You and your team not just scored high but also helped a lot in datasets and implementations during the competition. Big thanks ))  </p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 1241694,
      "author_name": "Heroseo",
      "author_url": "",
      "post_date": "2021-03-17T06:52:53.343000",
      "content": "<p>Congrats on 7th place! <a href=\"https://www.kaggle.com/analokamus\" target=\"_blank\">@analokamus</a>, <a href=\"https://www.kaggle.com/yasufuminakama\" target=\"_blank\">@yasufuminakama</a> and <a href=\"https://www.kaggle.com/raddar\" target=\"_blank\">@raddar</a>.<br>\nThe clean explanation is impressive.</p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 1241593,
      "author_name": "KhanhVD",
      "author_url": "",
      "post_date": "2021-03-17T05:41:26.003000",
      "content": "<p>Congrats <a href=\"https://www.kaggle.com/analokamus\" target=\"_blank\">@analokamus</a> and team on 7th place and thanks for the writeup</p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 1254829,
      "author_name": "Olusesi Adebisi",
      "author_url": "",
      "post_date": "2021-03-28T07:01:39.280000",
      "content": "<p>Thank you <a href=\"https://www.kaggle.com/analokamus\" target=\"_blank\">@analokamus</a> for sharing this experience. This is a good knowledge base.</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1246814,
      "author_name": "",
      "author_url": "",
      "post_date": "2021-03-21T06:16:40.960000",
      "content": "",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1243216,
      "author_name": "nbswords",
      "author_url": "",
      "post_date": "2021-03-18T05:05:51.003000",
      "content": "<p>Thanks for sharing.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1241648,
      "author_name": "Atharva Phatak",
      "author_url": "",
      "post_date": "2021-03-17T06:18:21.627000",
      "content": "<p>Elegant pipeline. Thanks for sharing.</p>",
      "votes": 1,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1241588": "First of all, I would like to express deep gratitude to organizers and all the teams for making this competition possible. Also, I would like to thank my teammates - @yasufuminakama and @raddar .\n\nCode will be available at: https://github.com/analokmaus/kaggle-ranzcr-clip-public\n\nHere is the overview of our pipeline: \n![pipeline](https://pbs.twimg.com/media/EwqG7gdVcAEOmHS?format=jpg&name=large)\n(n=7)\n\n## Preprocessing \n\nInput image size had a good correlation with model performance. We used 768 px input for all models, considering the training / inference time. For data augmentation, we used some common transformations such as horizontal flip, affine transform, random brightness / gamma, optical distortion etc. \n\n## Architectures \n\nWe used **UNet-CNN** architecture. Output of UNet was segmentation mask consisting of three channels - ETT, NGT, and CVC+SGC. UNet was supposed to play the role of spatial supervision. Thus, compared to normal CNN-only architecture it showed more robust performance and higher CV / LB correlation. \n\n![model](https://pbs.twimg.com/media/EwqHtBDVgAIorDd?format=jpg&name=medium)\n\nAs for backbone, big model in general performed better. We used ResNet200d, EfficientNet-b7, and NFNet-F1. \n\nSince there wasn’t ResNet200d encoder for segmentation_models_pytorch, we implemented it. [Implementation](https://www.kaggle.com/analokamus/resnet200d-encoder-for-segmentation-models-pytorch?scriptVersionId=56975633)\n\n## Training procedure \n\nFor UNet-CNN model, we trained UNet on additional annotations provided by competition host. And then trained the whole network on all images. Since we were not able to build a stable NFNet UNet encoder, we trained NFNet in the same way as [three stage training](https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/207577) by @yasufuminakama.\n\n## External dataset \n\nUtilising external CXR dataset was another key to improve model performance. We pseudo-labelled NIH and MIMIC CXR dataset using our best performing model, and sampled a subset with balanced class distribution from each dataset in order to reduce data size. \n\nWe trained new student model with pseudo labels on external dataset. New student model was supposed to have a different feature extractor from teacher model. We finetuned student model on original dataset, and observed better performance than teacher model (see [this discussion](https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/215910) by @ammarali32 ).\n\nWe did also test conventional single stage pseudo labelling. While we observed slight uplift in performance but we gave it up because it converged quite slow.",
    "1243409": "Code is now available at https://github.com/analokmaus/kaggle-ranzcr-clip-public !\nNote that the repository is WIP, and there will be some updates.",
    "1241626": "Wish I had spent more time exploring the unet stuff. I wrote it up but never really trained it to extensively or with strong backbones and high resolution. Used it in a similar way as additional channels, but didnt see any benefit from it. ",
    "1244855": "I like the \"n-th Place Solution\" placeholder in the pipeline schema. 😄\nWell done!",
    "1243890": "Congrats on 7th place!\n\nThank you for sharing elegant solution.",
    "1242672": "Congratulations. Eagerly waiting for your UNet training notebook and your sudo-label making technique. ",
    "1242668": "Congratz !\nInteresting to see NFNets models are viable, I was skeptical when I first saw the paper but glad to see it held the test of Kaggle :)",
    "1242026": "@analokamus Impressive Solution Pipeline . Congratulations on Gold Finish ",
    "1241844": "Congrats team for 7th place !\nExcited to see your Unet training notebook.",
    "1241960": "Amazing work. You and your team not just scored high but also helped a lot in datasets and implementations during the competition. Big thanks ))  ",
    "1241694": "Congrats on 7th place! @analokamus, @yasufuminakama and @raddar.\nThe clean explanation is impressive.\n",
    "1241593": "Congrats @analokamus and team on 7th place and thanks for the writeup",
    "1254829": "Thank you @analokamus for sharing this experience. This is a good knowledge base.",
    "1246814": "",
    "1243216": "Thanks for sharing.",
    "1241648": "Elegant pipeline. Thanks for sharing."
  }
}