{
  "id": 289033,
  "title": "Best Single Model",
  "url": "/competitions/sartorius-cell-instance-segmentation/discussion/289033",
  "author_name": "Trushant Kalyanpur",
  "post_date": "2021-11-19T03:00:46.542000",
  "votes": 50,
  "comment_count": 85,
  "views": 0,
  "content": "<p>Anyone willing to share their best single model? I will go first:</p>\n<p>-EDIT- Thanks to the suggestion by <a href=\"https://www.kaggle.com/omallo\" target=\"_blank\">@omallo</a>,  I am adding more information here</p>\n<p><code>library</code>: mmdetection<br>\n<code>model</code>: mask_rcnn_r50_fpn (single fold)<br>\n<code>epochs</code>: 12<br>\n<code>img_size</code>: 1280 x 800<br>\n<code>lb w/ standard thresholds (0.5 for each class)</code>: 0.284<br>\n<code>lb w/ tuned thresholds</code>: Not tried yet</p>",
  "messages": [
    {
      "id": 1587877,
      "postDate": "2021-11-19T03:00:46.543Z",
      "content": "<p>Anyone willing to share their best single model? I will go first:</p>\n<p>-EDIT- Thanks to the suggestion by <a href=\"https://www.kaggle.com/omallo\" target=\"_blank\">@omallo</a>,  I am adding more information here</p>\n<p><code>library</code>: mmdetection<br>\n<code>model</code>: mask_rcnn_r50_fpn (single fold)<br>\n<code>epochs</code>: 12<br>\n<code>img_size</code>: 1280 x 800<br>\n<code>lb w/ standard thresholds (0.5 for each class)</code>: 0.284<br>\n<code>lb w/ tuned thresholds</code>: Not tried yet</p>",
      "rawMarkdown": "Anyone willing to share their best single model? I will go first:\n\n-EDIT- Thanks to the suggestion by @omallo,  I am adding more information here\n\n`library`: mmdetection\n`model`: mask_rcnn_r50_fpn (single fold)\n`epochs`: 12\n`img_size`: 1280 x 800\n`lb w/ standard thresholds (0.5 for each class)`: 0.284\n`lb w/ tuned thresholds`: Not tried yet",
      "votes": 50
    },
    {
      "id": 1589499,
      "postDate": "2021-11-20T10:46:46.747Z",
      "content": "<p>I think that the number of trained epochs is also relevant for people so they know how much they might have to invest to get a good model so I'm also including that information (others might want to include that as well):</p>\n<p>library: detectron2<br>\nmodel: mask_rcnn_x101_fpn (single fold)<br>\nepochs: 50<br>\ntraining time: 8h<br>\ntrain image sizes (short edge, multi scale): 480, 520, 560, 640, 672, 704, 736, 768, 800<br>\ntest image size (short edge): 800<br>\nlb w/ standard thresholds (0.5 for each class): 0.299<br>\nlb w/ tuned thresholds: 0.306</p>",
      "rawMarkdown": "I think that the number of trained epochs is also relevant for people so they know how much they might have to invest to get a good model so I'm also including that information (others might want to include that as well):\n\nlibrary: detectron2\nmodel: mask_rcnn_x101_fpn (single fold)\nepochs: 50\ntraining time: 8h\ntrain image sizes (short edge, multi scale): 480, 520, 560, 640, 672, 704, 736, 768, 800\ntest image size (short edge): 800\nlb w/ standard thresholds (0.5 for each class): 0.299\nlb w/ tuned thresholds: 0.306",
      "votes": 21,
      "replies": [
        {
          "id": 1589539,
          "postDate": "2021-11-20T11:25:35.383Z",
          "content": "<p>Here is my model, i think i should try with larger backbone</p>\n<p>library: detectron2<br>\nmodel: mask_rcnn_r50_fpn (single fold)<br>\nepochs: ~40<br>\ntraining time: 3h<br>\nlb w/ standard threshold: 0.291<br>\nlb w/ tuned thresholds: 0.296</p>",
          "rawMarkdown": "Here is my model, i think i should try with larger backbone\n \nlibrary: detectron2\nmodel: mask_rcnn_r50_fpn (single fold)\nepochs: ~40\ntraining time: 3h\nlb w/ standard threshold: 0.291\nlb w/ tuned thresholds: 0.296",
          "votes": 2
        },
        {
          "id": 1589633,
          "postDate": "2021-11-20T12:58:46.153Z",
          "content": "<p>where to setup epochs?</p>\n<p>I just set  the iteration number.</p>",
          "rawMarkdown": "where to setup epochs?\n\nI just set  the iteration number."
        },
        {
          "id": 1589647,
          "postDate": "2021-11-20T13:17:39.090Z",
          "content": "<p>detectron doesn't specify epochs number, you can calculate by: <br>\nMAX_ITER * IMS_PER_BATCH / TOTAL_NUM_IMAGES</p>",
          "rawMarkdown": "detectron doesn't specify epochs number, you can calculate by: \nMAX_ITER * IMS_PER_BATCH / TOTAL_NUM_IMAGES",
          "votes": 4
        },
        {
          "id": 1589711,
          "postDate": "2021-11-20T14:18:10.887Z",
          "content": "<p>When you say standard threshold ,what does it mean ? No threshold per class ? Or 0.5 for all class … ? </p>",
          "rawMarkdown": "When you say standard threshold ,what does it mean ? No threshold per class ? Or 0.5 for all class ... ? "
        },
        {
          "id": 1589840,
          "postDate": "2021-11-20T16:26:15.533Z",
          "content": "<p>By default I meant 0.5 for each class. I updated my comment accordingly.</p>",
          "rawMarkdown": "By default I meant 0.5 for each class. I updated my comment accordingly.",
          "votes": 1
        },
        {
          "id": 1589860,
          "postDate": "2021-11-20T16:45:19.463Z",
          "content": "<p>Thanks much </p>",
          "rawMarkdown": "Thanks much "
        },
        {
          "id": 1589864,
          "postDate": "2021-11-20T16:48:21.073Z",
          "content": "<p>I am curious about the epoch config in detectron2.  if It is computed as you said, then I understand it. Thanks</p>",
          "rawMarkdown": "I am curious about the epoch config in detectron2.  if It is computed as you said, then I understand it. Thanks"
        },
        {
          "id": 1589908,
          "postDate": "2021-11-20T17:26:42.177Z",
          "content": "<p>Thanks for sharing <a href=\"https://www.kaggle.com/omallo\" target=\"_blank\">@omallo</a>. Great idea on including epochs as this is important. I think image size is also relevant so I updated the main thread with that information. </p>",
          "rawMarkdown": "Thanks for sharing @omallo. Great idea on including epochs as this is important. I think image size is also relevant so I updated the main thread with that information. "
        },
        {
          "id": 1590033,
          "postDate": "2021-11-20T20:47:04.247Z",
          "content": "<p><a href=\"https://www.kaggle.com/trushk\" target=\"_blank\">@trushk</a> , I also added mine :) I'm using multi scale image sizes for training, in the hope that it also prevents overfitting.</p>",
          "rawMarkdown": "@trushk , I also added mine :) I'm using multi scale image sizes for training, in the hope that it also prevents overfitting.",
          "votes": 1
        },
        {
          "id": 1590037,
          "postDate": "2021-11-20T20:50:35.670Z",
          "content": "<p><a href=\"https://www.kaggle.com/omallo\" target=\"_blank\">@omallo</a> thanks. what is your long edge 1333? </p>",
          "rawMarkdown": "@omallo thanks. what is your long edge 1333? "
        },
        {
          "id": 1590046,
          "postDate": "2021-11-20T21:13:23.843Z",
          "content": "<p><a href=\"https://www.kaggle.com/trushk\" target=\"_blank\">@trushk</a> , I've set <code>MAX_SIZE_TRAIN</code> and <code>MAX_SIZE_TEST</code> to 1333 but from my understanding, this just limits the image size when scaling. The long edge is always derived from the short edge and it can never exceed 1333. As an example, if the short edge is set to 800 (my biggest size), then the long edge will be <code>(800 / 520) * 704 = 1083</code> where 520 and 704 are the dimensions of the original images.</p>",
          "rawMarkdown": "@trushk , I've set `MAX_SIZE_TRAIN` and `MAX_SIZE_TEST` to 1333 but from my understanding, this just limits the image size when scaling. The long edge is always derived from the short edge and it can never exceed 1333. As an example, if the short edge is set to 800 (my biggest size), then the long edge will be `(800 / 520) * 704 = 1083` where 520 and 704 are the dimensions of the original images.",
          "votes": 4
        },
        {
          "id": 1594936,
          "postDate": "2021-11-25T09:06:41.027Z",
          "content": "<p>Hi! <br>\nThanks!<br>\nWhat learning rate did you set?</p>",
          "rawMarkdown": "Hi! \nThanks!\nWhat learning rate did you set?"
        },
        {
          "id": 1594954,
          "postDate": "2021-11-25T09:16:44.703Z",
          "content": "<p>I'm currently using a learning rate of 0.01 and a batch size of 2 but, to be honest, I don't think that those are ideal values. Currently, I'm a bit forced to use a small batch size due to the GPU memory consumption. So I think you might want to experiment with other values if you have the possibility.</p>",
          "rawMarkdown": "I'm currently using a learning rate of 0.01 and a batch size of 2 but, to be honest, I don't think that those are ideal values. Currently, I'm a bit forced to use a small batch size due to the GPU memory consumption. So I think you might want to experiment with other values if you have the possibility."
        },
        {
          "id": 1596278,
          "postDate": "2021-11-26T10:40:22.637Z",
          "content": "<p>Hi, do you lower the learning rate after some iterations or using any kind of learning schedule ?<br>\nStrangely, my CV increased with a learning rate of 0.01 but LB decreased.<br>\nSee this for instance (left column indicates CV and right LB)<br>\n<img src=\"https://github.com/Gladiator07/Kaggle-images/blob/main/sartorius_scheduler.png\" alt=\"\"></p>",
          "rawMarkdown": "Hi, do you lower the learning rate after some iterations or using any kind of learning schedule ?\nStrangely, my CV increased with a learning rate of 0.01 but LB decreased.\nSee this for instance (left column indicates CV and right LB)\n![](https://github.com/Gladiator07/Kaggle-images/blob/main/sartorius_scheduler.png)"
        },
        {
          "id": 1596529,
          "postDate": "2021-11-26T15:46:46.697Z",
          "content": "<p><a href=\"https://www.kaggle.com/atharvaingle\" target=\"_blank\">@atharvaingle</a> , I'm using the default LR schedule of Detectron2: There is a warm up period at the beginning (~5 epochs) where the LR is continually incremented from 0.0001 to 0.01. Then I train with 0.01 and in the last ~5 epochs, I lower the LR to 0.001. But I haven't made any comparisons with other LR schedules yet so I'm not sure whether this is a particularly good approach or not.</p>",
          "rawMarkdown": "@atharvaingle , I'm using the default LR schedule of Detectron2: There is a warm up period at the beginning (~5 epochs) where the LR is continually incremented from 0.0001 to 0.01. Then I train with 0.01 and in the last ~5 epochs, I lower the LR to 0.001. But I haven't made any comparisons with other LR schedules yet so I'm not sure whether this is a particularly good approach or not.",
          "votes": 4
        },
        {
          "id": 1607538,
          "postDate": "2021-12-06T00:47:45.507Z",
          "content": "<p>You, my sir, is the real hero. Thank you for the generous information, very helpful indeed.</p>",
          "rawMarkdown": "You, my sir, is the real hero. Thank you for the generous information, very helpful indeed."
        },
        {
          "id": 1618834,
          "postDate": "2021-12-15T11:51:21.980Z",
          "content": "<p>hey, why would you want to use a larger batch size doesn't that reduce accuracy?</p>",
          "rawMarkdown": "hey, why would you want to use a larger batch size doesn't that reduce accuracy?",
          "votes": 1
        },
        {
          "id": 1629777,
          "postDate": "2021-12-26T14:34:21.403Z",
          "content": "<p><code>train image sizes (short edge, multi scale): 480, 520, 560, 640, 672, 704, 736, 768, 800</code><br>\nHi, <a href=\"https://www.kaggle.com/omallo\" target=\"_blank\">@omallo</a> What do you mean by this? it would be really helpful, if you can give a hint. Thank you😇.</p>",
          "rawMarkdown": "`train image sizes (short edge, multi scale): 480, 520, 560, 640, 672, 704, 736, 768, 800`\nHi, @omallo What do you mean by this? it would be really helpful, if you can give a hint. Thank you😇."
        },
        {
          "id": 1630017,
          "postDate": "2021-12-26T21:51:12.270Z",
          "content": "<p><a href=\"https://www.kaggle.com/soumya9977\" target=\"_blank\">@soumya9977</a> , this is an augmentation method where the short edge of the images is rescaled to one of the given sizes. One of the sizes is picked at random for each batch.</p>\n<p>More concretely, the original images in this competition have the shape <code>(520, 704)</code>. If e.g. the scale <code>640</code> is chosen for a given batch, then all images within that batch are scaled to the shape <code>(640, 866)</code>, i.e. the short edge is set to <code>640</code> and the long edge is calculated so that the original image ratio is preserved. In this case, the long edge is calculated as <code>(640 / 520) * 704 = 866</code>.</p>\n<p>The multi scale training is a feature supported by detectron2 and also other deep learning libraries.</p>\n<p>I hope this helps :-)</p>",
          "rawMarkdown": "@soumya9977 , this is an augmentation method where the short edge of the images is rescaled to one of the given sizes. One of the sizes is picked at random for each batch.\n\nMore concretely, the original images in this competition have the shape `(520, 704)`. If e.g. the scale `640` is chosen for a given batch, then all images within that batch are scaled to the shape `(640, 866)`, i.e. the short edge is set to `640` and the long edge is calculated so that the original image ratio is preserved. In this case, the long edge is calculated as `(640 / 520) * 704 = 866`.\n\nThe multi scale training is a feature supported by detectron2 and also other deep learning libraries.\n\nI hope this helps :-)",
          "votes": 1
        },
        {
          "id": 1630883,
          "postDate": "2021-12-27T20:06:41.963Z",
          "content": "<p>Thank you for explaining <a href=\"https://www.kaggle.com/omallo\" target=\"_blank\">@omallo</a> , I will try to add this in my augmentations.<br>\n<strong>Quick questions:</strong></p>\n<ul>\n<li>Did you try transformations like CLAHE, Random Brightness, Gaussian Blur? Or did you find geometric transformations to be better?</li>\n</ul>",
          "rawMarkdown": "Thank you for explaining @omallo , I will try to add this in my augmentations.\n**Quick questions:**\n- Did you try transformations like CLAHE, Random Brightness, Gaussian Blur? Or did you find geometric transformations to be better?"
        },
        {
          "id": 1630926,
          "postDate": "2021-12-27T21:13:30.550Z",
          "content": "<p><a href=\"https://www.kaggle.com/somu159776\" target=\"_blank\">@somu159776</a> , you're welcome.</p>\n<p>I'm only using basic augmentations, i.e. the described multi-scale resizing, horizontal/vertical flipping, and cropping. However, I have not experimented with other augmentations so I cannot really say whether the help or not.</p>",
          "rawMarkdown": "@somu159776 , you're welcome.\n\nI'm only using basic augmentations, i.e. the described multi-scale resizing, horizontal/vertical flipping, and cropping. However, I have not experimented with other augmentations so I cannot really say whether the help or not.",
          "votes": 1
        },
        {
          "id": 1630951,
          "postDate": "2021-12-27T21:28:46.013Z",
          "content": "<p>Thank you, your explanations really helped😇. </p>",
          "rawMarkdown": "Thank you, your explanations really helped😇. ",
          "votes": 1
        }
      ]
    },
    {
      "id": 1595076,
      "postDate": "2021-11-25T11:39:33.910Z",
      "content": "<p>library: mmdetection<br>\nmodel: cascade mask rcnn (single fold)<br>\nepochs: 20<br>\nCV 0.2746 - LB 0.315<br>\nCV 0.2827 - LB 0.320<br>\nCV 0.2880 - LB 0.324</p>\n<p>[update-1]<br>\nCV 0.2983 - LB 0.327<br>\nCV 0.2995 - LB 0.328</p>\n<p>[update-2]<br>\nCV 0.3002 - LB 0.330<br>\nCV 0.3013 - LB 0.331<br>\nCV 0.3038 - LB 0.332</p>\n<p>[update-3]<br>\nCV 0.3047 - LB 0.335<br>\nCV 0.3049 - LB 0.336</p>",
      "rawMarkdown": "library: mmdetection\nmodel: cascade mask rcnn (single fold)\nepochs: 20\nCV 0.2746 - LB 0.315\nCV 0.2827 - LB 0.320\nCV 0.2880 - LB 0.324\n\n[update-1]\nCV 0.2983 - LB 0.327\nCV 0.2995 - LB 0.328\n\n[update-2]\nCV 0.3002 - LB 0.330\nCV 0.3013 - LB 0.331\nCV 0.3038 - LB 0.332\n\n[update-3]\nCV 0.3047 - LB 0.335\nCV 0.3049 - LB 0.336",
      "votes": 11,
      "replies": [
        {
          "id": 1595358,
          "postDate": "2021-11-25T16:05:10.847Z",
          "content": "<p>That shows great correlation. Thanks for sharing!  Is this with original train or after some mask fixes. </p>",
          "rawMarkdown": "That shows great correlation. Thanks for sharing!  Is this with original train or after some mask fixes. "
        },
        {
          "id": 1595868,
          "postDate": "2021-11-26T04:00:10.657Z",
          "content": "<p>with original train</p>",
          "rawMarkdown": "with original train",
          "votes": 1
        },
        {
          "id": 1596091,
          "postDate": "2021-11-26T07:32:38.107Z",
          "content": "<p>Do you apply any post-processing?</p>",
          "rawMarkdown": "Do you apply any post-processing?"
        },
        {
          "id": 1596186,
          "postDate": "2021-11-26T08:48:14.200Z",
          "content": "<p><a href=\"https://www.kaggle.com/tyaiga\" target=\"_blank\">@tyaiga</a> did u use resent50 as backbone?</p>",
          "rawMarkdown": "@tyaiga did u use resent50 as backbone?"
        },
        {
          "id": 1596206,
          "postDate": "2021-11-26T09:00:52.130Z",
          "content": "<p>No, bigger one.</p>",
          "rawMarkdown": "No, bigger one.",
          "votes": 1
        },
        {
          "id": 1597255,
          "postDate": "2021-11-27T10:56:26.090Z",
          "content": "<p><a href=\"https://www.kaggle.com/tyaiga\" target=\"_blank\">@tyaiga</a> , your performance is really nice since you get a great score with a low number of epochs. Also, the gain on the LB is quite big.</p>\n<p>May I ask what you think brought you extra performance, i.e. was it the choice of the right model, LR schedule, augmentations, post-processing, …? Of course, you don't have to disclose any details.</p>",
          "rawMarkdown": "@tyaiga , your performance is really nice since you get a great score with a low number of epochs. Also, the gain on the LB is quite big.\n\nMay I ask what you think brought you extra performance, i.e. was it the choice of the right model, LR schedule, augmentations, post-processing, ...? Of course, you don't have to disclose any details."
        },
        {
          "id": 1597350,
          "postDate": "2021-11-27T12:42:07.037Z",
          "content": "<p>pretty cool! which metric do you use in mmdet about CV0.2995?</p>",
          "rawMarkdown": "pretty cool! which metric do you use in mmdet about CV0.2995?"
        },
        {
          "id": 1597365,
          "postDate": "2021-11-27T12:50:57.823Z",
          "content": "<p>I use <a href=\"https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook\" target=\"_blank\">this</a> after mmdet training.</p>",
          "rawMarkdown": "I use [this](https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook) after mmdet training.",
          "votes": 1
        },
        {
          "id": 1597370,
          "postDate": "2021-11-27T12:56:49.703Z",
          "content": "<p>thanks😊.  you mean you evaluate the model one by one by the metric after all the training end?</p>",
          "rawMarkdown": "thanks😊.  you mean you evaluate the model one by one by the metric after all the training end?"
        },
        {
          "id": 1597802,
          "postDate": "2021-11-27T23:19:39.793Z",
          "content": "<p>Could you please share,your method to convert .csv to COCO for mmdet? I used <a href=\"https://www.kaggle.com/mistag/sartorius-create-coco-annotations\" target=\"_blank\">this</a> to 5-fold split, but always get:</p>\n<p>**Average Precision  (AP) @[ IoU=0.50:0.95  area= large  maxDets=1000 ] = -1.000 **</p>\n<p>during COCOEval. </p>",
          "rawMarkdown": "Could you please share,your method to convert .csv to COCO for mmdet? I used [this](https://www.kaggle.com/mistag/sartorius-create-coco-annotations) to 5-fold split, but always get:\n\n**Average Precision  (AP) @[ IoU=0.50:0.95  area= large  maxDets=1000 ] = -1.000 **\n\nduring COCOEval. \n\n"
        },
        {
          "id": 1598594,
          "postDate": "2021-11-28T16:03:40.030Z",
          "content": "<p>I haven't tried yet</p>",
          "rawMarkdown": "I haven't tried yet"
        },
        {
          "id": 1601237,
          "postDate": "2021-12-01T05:40:51.827Z",
          "content": "<p>CV/LB updated</p>",
          "rawMarkdown": "CV/LB updated"
        },
        {
          "id": 1601258,
          "postDate": "2021-12-01T06:15:58.967Z",
          "content": "<p>great scores and correlation! so all of these have been generated using one of a k-fold split of  \"cascade mask rcnn 20 epoch\" model? Ofourse your pre/postporcess techniques may have been varied but I just wanted to know whether you use the same base throughout</p>",
          "rawMarkdown": "great scores and correlation! so all of these have been generated using one of a k-fold split of  \"cascade mask rcnn 20 epoch\" model? Ofourse your pre/postporcess techniques may have been varied but I just wanted to know whether you use the same base throughout\n "
        },
        {
          "id": 1601261,
          "postDate": "2021-12-01T06:25:45.907Z",
          "content": "<p>Yes, the above scores are generated by \"one of a k-fold split of cascade mask rcnn 20 epoch model\".</p>",
          "rawMarkdown": "Yes, the above scores are generated by \"one of a k-fold split of cascade mask rcnn 20 epoch model\"."
        },
        {
          "id": 1601267,
          "postDate": "2021-12-01T06:30:26.837Z",
          "content": "<p>okay thanks for the share :)</p>",
          "rawMarkdown": "okay thanks for the share :)"
        },
        {
          "id": 1604838,
          "postDate": "2021-12-03T18:54:56.167Z",
          "content": "<p><a href=\"https://www.kaggle.com/tyaiga\" target=\"_blank\">@tyaiga</a> I wrote this for eval for mmdet. It will be great if you can provide insights: <a href=\"https://www.kaggle.com/c/sartorius-cell-instance-segmentation/discussion/292852\" target=\"_blank\">https://www.kaggle.com/c/sartorius-cell-instance-segmentation/discussion/292852</a></p>",
          "rawMarkdown": "@tyaiga I wrote this for eval for mmdet. It will be great if you can provide insights: https://www.kaggle.com/c/sartorius-cell-instance-segmentation/discussion/292852",
          "votes": 1
        }
      ]
    },
    {
      "id": 1592871,
      "postDate": "2021-11-23T12:35:26.913Z",
      "content": "<p>library: mmdetection<br>\nmodel: mask_rcnn_r50_fpn (single fold)<br>\nCV 0.301 - LB 0.314</p>",
      "rawMarkdown": "library: mmdetection\nmodel: mask_rcnn_r50_fpn (single fold)\nCV 0.301 - LB 0.314",
      "votes": 11,
      "replies": [
        {
          "id": 1593045,
          "postDate": "2021-11-23T15:27:33.720Z",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/ren4yu\" target=\"_blank\">@ren4yu</a>   Do you use a custom eval function for mmdet? </p>",
          "rawMarkdown": "Thanks @ren4yu   Do you use a custom eval function for mmdet? "
        },
        {
          "id": 1593062,
          "postDate": "2021-11-23T15:45:39.383Z",
          "content": "<p>I evaluated the best model after training with<br>\n<a href=\"https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook\" target=\"_blank\">https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook</a></p>",
          "rawMarkdown": "I evaluated the best model after training with\nhttps://www.kaggle.com/theoviel/competition-metric-map-iou/notebook",
          "votes": 4
        },
        {
          "id": 1593167,
          "postDate": "2021-11-23T17:25:51.887Z",
          "content": "<p>Did you calculate CV score after eliminating pixel overlap process?</p>",
          "rawMarkdown": "Did you calculate CV score after eliminating pixel overlap process?"
        },
        {
          "id": 1593470,
          "postDate": "2021-11-24T00:41:30.077Z",
          "content": "<blockquote>\n  <p>Did you calculate CV score after eliminating pixel overlap process?</p>\n</blockquote>\n<p>Yes. It is evaluated after some post processing including pixel overlap elimination because I want to evaluate whole submission pipeline.</p>",
          "rawMarkdown": "> Did you calculate CV score after eliminating pixel overlap process?\n\nYes. It is evaluated after some post processing including pixel overlap elimination because I want to evaluate whole submission pipeline.",
          "votes": 4
        },
        {
          "id": 1593537,
          "postDate": "2021-11-24T03:34:00.347Z",
          "content": "<p>Do you use LiveCell dataset or external data in train_semi_supervised directory?</p>",
          "rawMarkdown": "Do you use LiveCell dataset or external data in train_semi_supervised directory?"
        },
        {
          "id": 1593538,
          "postDate": "2021-11-24T03:36:32.533Z",
          "content": "<p>No, I used only train.csv and train images.</p>",
          "rawMarkdown": "No, I used only train.csv and train images.",
          "votes": 4
        },
        {
          "id": 1595353,
          "postDate": "2021-11-25T16:02:42.343Z",
          "rawMarkdown": "",
          "isDeleted": true
        },
        {
          "id": 1597354,
          "postDate": "2021-11-27T12:44:34.183Z",
          "content": "<p>I'm new to mmdet.😭 Can I know how do you add the evaluate metric <a href=\"https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook\" target=\"_blank\">https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook</a> to mmdet to evaluate your model</p>",
          "rawMarkdown": "I'm new to mmdet.😭 Can I know how do you add the evaluate metric https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook to mmdet to evaluate your model"
        }
      ]
    },
    {
      "id": 1596964,
      "postDate": "2021-11-27T03:51:20.663Z",
      "content": "<p>library: mmdetection<br>\nmodel: mask rcnn (single fold)<br>\ntrain_size: 484 images<br>\ntest_size: 122 images<br>\nCV: 0.2587  LB: 0.299<br>\nNo model modified. No preprocessing. No postprocessing except for overlap fixed. </p>",
      "rawMarkdown": "library: mmdetection\nmodel: mask rcnn (single fold)\ntrain_size: 484 images\ntest_size: 122 images\nCV: 0.2587  LB: 0.299\nNo model modified. No preprocessing. No postprocessing except for overlap fixed. ",
      "votes": 7,
      "replies": [
        {
          "id": 1597347,
          "postDate": "2021-11-27T12:40:18.750Z",
          "content": "<p>that's cool. Can I know which metric do you use in mmdetection for CV0.2587, do you mean map or official metric </p>",
          "rawMarkdown": "that's cool. Can I know which metric do you use in mmdetection for CV0.2587, do you mean map or official metric "
        },
        {
          "id": 1597490,
          "postDate": "2021-11-27T14:58:54.523Z",
          "content": "<p>I use metric from the public notebook (<a href=\"https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook\" target=\"_blank\">here</a>).</p>",
          "rawMarkdown": "I use metric from the public notebook ([here](https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook))."
        }
      ]
    },
    {
      "id": 1601463,
      "postDate": "2021-12-01T10:03:04.273Z",
      "content": "<p>single model,CV0.3223, LB0.332, detectron2</p>",
      "rawMarkdown": "single model,CV0.3223, LB0.332, detectron2",
      "votes": 8,
      "replies": [
        {
          "id": 1605605,
          "postDate": "2021-12-04T11:55:57.607Z",
          "content": "<p>is this your  Test train split cv or  N fold cv ? <a href=\"https://www.kaggle.com/guohey\" target=\"_blank\">@guohey</a> </p>",
          "rawMarkdown": "is this your  Test train split cv or  N fold cv ? @guohey "
        },
        {
          "id": 1605736,
          "postDate": "2021-12-04T13:56:13.320Z",
          "content": "<p>well, i use Test train split</p>",
          "rawMarkdown": "well, i use Test train split"
        },
        {
          "id": 1608423,
          "postDate": "2021-12-06T11:38:34.407Z",
          "rawMarkdown": "",
          "isDeleted": true
        }
      ]
    },
    {
      "id": 1615641,
      "postDate": "2021-12-12T13:53:06.603Z",
      "content": "<p>Detectron Mask R-CNN. Public LB score is 0.32. I'm still trying to figure out an efficient way to ensemble predictions.</p>\n<pre><code>Fold 1 - mAP: 0.313467 ({'astro': 0.20072195936428244, 'cort': 0.4026399670002614, 'shsy5y': 0.22756584415732165})\nFold 2 - mAP: 0.297655 ({'astro': 0.16545075040715596, 'cort': 0.3963139150087539, 'shsy5y': 0.20485488471168073})\nFold 3 - mAP: 0.306650 ({'astro': 0.1683234036456997, 'cort': 0.4000650243514869, 'shsy5y': 0.22981052684883063})\nFold 4 - mAP: 0.301520 ({'astro': 0.1767558512239449, 'cort': 0.3947693877607034, 'shsy5y': 0.21364495836951708})\nFold 5 - mAP: 0.298685 ({'astro': 0.18354330953728468, 'cort': 0.3803528848335181, 'shsy5y': 0.22665148818681236})\n------------------------------\nOOF mAP: 0.303612 ({'astro': 0.17912518387787665, 'cort': 0.3948282357909447, 'shsy5y': 0.2205055404548325})\n</code></pre>",
      "rawMarkdown": "Detectron Mask R-CNN. Public LB score is 0.32. I'm still trying to figure out an efficient way to ensemble predictions.\n\n```\nFold 1 - mAP: 0.313467 ({'astro': 0.20072195936428244, 'cort': 0.4026399670002614, 'shsy5y': 0.22756584415732165})\nFold 2 - mAP: 0.297655 ({'astro': 0.16545075040715596, 'cort': 0.3963139150087539, 'shsy5y': 0.20485488471168073})\nFold 3 - mAP: 0.306650 ({'astro': 0.1683234036456997, 'cort': 0.4000650243514869, 'shsy5y': 0.22981052684883063})\nFold 4 - mAP: 0.301520 ({'astro': 0.1767558512239449, 'cort': 0.3947693877607034, 'shsy5y': 0.21364495836951708})\nFold 5 - mAP: 0.298685 ({'astro': 0.18354330953728468, 'cort': 0.3803528848335181, 'shsy5y': 0.22665148818681236})\n------------------------------\nOOF mAP: 0.303612 ({'astro': 0.17912518387787665, 'cort': 0.3948282357909447, 'shsy5y': 0.2205055404548325})\n```",
      "votes": 6,
      "replies": [
        {
          "id": 1615718,
          "postDate": "2021-12-12T15:41:33.987Z",
          "content": "<p>👀the mAP is so high，you mean mAP score or official metric socre？</p>",
          "rawMarkdown": "👀the mAP is so high，you mean mAP score or official metric socre？"
        },
        {
          "id": 1615722,
          "postDate": "2021-12-12T15:44:16.433Z",
          "content": "<p>indeed good job <a href=\"https://www.kaggle.com/gunesevitan\" target=\"_blank\">@gunesevitan</a> - would you mind if you share your evaluator setup (and per class scores) </p>",
          "rawMarkdown": "indeed good job @gunesevitan - would you mind if you share your evaluator setup (and per class scores) "
        },
        {
          "id": 1615723,
          "postDate": "2021-12-12T15:44:21.190Z",
          "content": "<p>I think a lot of competitors have shifted to using the mAP metric provided in the livecell github repo</p>",
          "rawMarkdown": "I think a lot of competitors have shifted to using the mAP metric provided in the livecell github repo"
        },
        {
          "id": 1615757,
          "postDate": "2021-12-12T16:36:14.977Z",
          "content": "<p>umm mAP is official metric of this competition?</p>\n<p><a href=\"https://www.kaggle.com/imeintanis\" target=\"_blank\">@imeintanis</a> Yes, I can share my evaluator, but the scores above is produced by my inference pipeline which I can't share. My evaluator is very similar to one that is shared. I only added couple lines to store labels in order to calculate per class scores.</p>\n<pre><code>class InstanceSegmentationEvaluator(DatasetEvaluator):\n\n    def __init__(self, dataset_name, segmentation_format='bitmask'):\n\n        dataset = DatasetCatalog.get(dataset_name)\n        self.annotations_cache = {item['image_id']: item['annotations'] for item in dataset}\n        self.segmentation_format = segmentation_format\n\n    def reset(self):\n\n        self.scores = []\n        self.labels = []\n\n    def process(self, inputs, outputs):\n\n        for input_, output in zip(inputs, outputs):\n            if len(output['instances']) == 0:\n                # Set 0 mAP when there are no objects predicted by model\n                self.scores.append(0)\n                annotation = self.annotations_cache[input_['image_id']]\n                label = np.unique(list(map(lambda x: x['category_id'], annotation)))[0]\n                self.labels.append(label)\n            else:\n                # Calculate mAP with predicted objects\n                annotation = self.annotations_cache[input_['image_id']]\n                prediction_masks = output['instances'].pred_masks.cpu().numpy()\n                average_precision = metrics.get_average_precision_detectron(\n                    ground_truth_masks=annotation,\n                    prediction_masks=prediction_masks,\n                    ground_truth_mask_format=self.segmentation_format,\n                    verbose=False\n                )\n                self.scores.append(average_precision)\n                label = np.unique(list(map(lambda x: x['category_id'], annotation)))[0]\n                self.labels.append(label)\n\n    def evaluate(self):\n\n        df_scores = pd.DataFrame(columns=['scores', 'labels'])\n        df_scores['scores'] = np.array(self.scores)\n        df_scores['labels'] = np.array(self.labels)\n        df_scores = df_scores.groupby('labels')['scores'].mean().to_dict()\n\n        return {'mAP': np.mean(self.scores), 'mAP cort': df_scores[0], 'mAP shsy5y': df_scores[1], 'mAP astro': df_scores[2]}\n</code></pre>",
          "rawMarkdown": "umm mAP is official metric of this competition?\n\n@imeintanis Yes, I can share my evaluator, but the scores above is produced by my inference pipeline which I can't share. My evaluator is very similar to one that is shared. I only added couple lines to store labels in order to calculate per class scores.\n\n```\nclass InstanceSegmentationEvaluator(DatasetEvaluator):\n\n    def __init__(self, dataset_name, segmentation_format='bitmask'):\n\n        dataset = DatasetCatalog.get(dataset_name)\n        self.annotations_cache = {item['image_id']: item['annotations'] for item in dataset}\n        self.segmentation_format = segmentation_format\n\n    def reset(self):\n\n        self.scores = []\n        self.labels = []\n\n    def process(self, inputs, outputs):\n\n        for input_, output in zip(inputs, outputs):\n            if len(output['instances']) == 0:\n                # Set 0 mAP when there are no objects predicted by model\n                self.scores.append(0)\n                annotation = self.annotations_cache[input_['image_id']]\n                label = np.unique(list(map(lambda x: x['category_id'], annotation)))[0]\n                self.labels.append(label)\n            else:\n                # Calculate mAP with predicted objects\n                annotation = self.annotations_cache[input_['image_id']]\n                prediction_masks = output['instances'].pred_masks.cpu().numpy()\n                average_precision = metrics.get_average_precision_detectron(\n                    ground_truth_masks=annotation,\n                    prediction_masks=prediction_masks,\n                    ground_truth_mask_format=self.segmentation_format,\n                    verbose=False\n                )\n                self.scores.append(average_precision)\n                label = np.unique(list(map(lambda x: x['category_id'], annotation)))[0]\n                self.labels.append(label)\n\n    def evaluate(self):\n\n        df_scores = pd.DataFrame(columns=['scores', 'labels'])\n        df_scores['scores'] = np.array(self.scores)\n        df_scores['labels'] = np.array(self.labels)\n        df_scores = df_scores.groupby('labels')['scores'].mean().to_dict()\n\n        return {'mAP': np.mean(self.scores), 'mAP cort': df_scores[0], 'mAP shsy5y': df_scores[1], 'mAP astro': df_scores[2]}\n```",
          "votes": 6
        },
        {
          "id": 1615761,
          "postDate": "2021-12-12T16:41:07.250Z",
          "rawMarkdown": "",
          "isDeleted": true
        },
        {
          "id": 1616002,
          "postDate": "2021-12-13T03:37:37.633Z",
          "content": "<p><a href=\"https://www.kaggle.com/gunesevitan\" target=\"_blank\">@gunesevitan</a> how many epochs do you train. </p>",
          "rawMarkdown": "@gunesevitan how many epochs do you train. "
        }
      ]
    },
    {
      "id": 1589283,
      "postDate": "2021-11-20T05:41:48.083Z",
      "content": "<p>detectron: mask_rcnn_r50_fpn(single-fold)<br>\nlb: 0.299</p>\n<p>Update(2021-12-06)<br>\ndetectron: mask_rcnn_r50_fpn(single-fold)<br>\ncv: 0.319 <br>\nlb: 0.322</p>",
      "rawMarkdown": "detectron: mask_rcnn_r50_fpn(single-fold)\nlb: 0.299\n\nUpdate(2021-12-06)\ndetectron: mask_rcnn_r50_fpn(single-fold)\ncv: 0.319 \nlb: 0.322",
      "votes": 5,
      "replies": [
        {
          "id": 1631268,
          "postDate": "2021-12-28T08:03:47.823Z",
          "content": "<p><a href=\"https://www.kaggle.com/Roc\" target=\"_blank\">@Roc</a>, what hyper-parameters did you tune in detectron2? <br>\nI am not getting more than 0.252 in lb<br>\nWhat is your ensembling strategy for the models from different folds?</p>",
          "rawMarkdown": "@Roc, what hyper-parameters did you tune in detectron2? \nI am not getting more than 0.252 in lb\nWhat is your ensembling strategy for the models from different folds?"
        }
      ]
    },
    {
      "id": 1588420,
      "postDate": "2021-11-19T11:48:17.543Z",
      "content": "<p>Torch Mask-RCNN R50 (single fold) </p>\n<ul>\n<li><code>mAP IoU: 0.249</code>  --&gt;  <code>LB: 0.266 - 0.268</code> (depends on thresholds per class) </li>\n</ul>\n<p>Detectron Mask-RCNN R50 (single fold) </p>\n<ul>\n<li><code>mAP IoU: 0.260</code>  --&gt;  <code>LB: 0.246 - 0.294</code> (depends on thresholds per class) </li>\n</ul>",
      "rawMarkdown": "Torch Mask-RCNN R50 (single fold) \n-  `mAP IoU: 0.249`  -->  `LB: 0.266 - 0.268` (depends on thresholds per class) \n\nDetectron Mask-RCNN R50 (single fold) \n-  `mAP IoU: 0.260`  -->  `LB: 0.246 - 0.294` (depends on thresholds per class) ",
      "votes": 6,
      "replies": [
        {
          "id": 1588693,
          "postDate": "2021-11-19T15:02:55.667Z",
          "content": "<p>Thanks for making this comparison. Performance gap is kinda significant. What is the difference between torchvision and detectron implementations? </p>",
          "rawMarkdown": "Thanks for making this comparison. Performance gap is kinda significant. What is the difference between torchvision and detectron implementations? ",
          "votes": 1
        },
        {
          "id": 1588781,
          "postDate": "2021-11-19T16:16:21.790Z",
          "content": "<p>Indeed, to be honest I haven't dig too much in the details between the two, I started with Torch for my convenience and then moved quickly to Detectron framework, it's the first time I use it so I'm still in exploration mode :) </p>\n<p>Backbones and fold data are same however epochs/iter and LR schedules were different.  </p>",
          "rawMarkdown": "Indeed, to be honest I haven't dig too much in the details between the two, I started with Torch for my convenience and then moved quickly to Detectron framework, it's the first time I use it so I'm still in exploration mode :) \n\nBackbones and fold data are same however epochs/iter and LR schedules were different.  ",
          "votes": 1
        }
      ]
    },
    {
      "id": 1608131,
      "postDate": "2021-12-06T08:41:25.697Z",
      "content": "<p>library: torchvision<br>\nmodel: mask_rcnn_r50_fpn (single fold)<br>\nCV 0.303 - LB 0.308</p>\n<p>[update]<br>\nlibrary: detectron2<br>\nmodel: mask_rcnn_r50_fpn (single fold)<br>\nCV 0.309 - LB 0.319</p>",
      "rawMarkdown": "library: torchvision\nmodel: mask_rcnn_r50_fpn (single fold)\nCV 0.303 - LB 0.308\n\n[update]\nlibrary: detectron2\nmodel: mask_rcnn_r50_fpn (single fold)\nCV 0.309 - LB 0.319",
      "votes": 4
    },
    {
      "id": 1589541,
      "postDate": "2021-11-20T11:26:27.903Z",
      "content": "<p>detectron2: mask rcnn r50 fpn(single-fold)<br>\nstandard thresholds: 0.291<br>\ntuned thresholds: 0.301</p>",
      "rawMarkdown": "detectron2: mask rcnn r50 fpn(single-fold)\nstandard thresholds: 0.291\ntuned thresholds: 0.301",
      "votes": 4,
      "replies": [
        {
          "id": 1589685,
          "postDate": "2021-11-20T13:58:08.050Z",
          "content": "<p>How to tune Thresholds?</p>",
          "rawMarkdown": "How to tune Thresholds?"
        },
        {
          "id": 1589842,
          "postDate": "2021-11-20T16:29:02.647Z",
          "content": "<p>you may check this discussion <br>\n<a href=\"https://www.kaggle.com/c/sartorius-cell-instance-segmentation/discussion/284215\" target=\"_blank\">here</a></p>",
          "rawMarkdown": "you may check this discussion \n[here](https://www.kaggle.com/c/sartorius-cell-instance-segmentation/discussion/284215)",
          "votes": 1
        },
        {
          "id": 1590290,
          "postDate": "2021-11-21T04:25:18.087Z",
          "content": "<p><a href=\"https://www.kaggle.com/iwrbeverly\" target=\"_blank\">@iwrbeverly</a> Yes. I was inspired by the discussion written by <a href=\"https://www.kaggle.com/slawekbiel\" target=\"_blank\">@slawekbiel</a> <a href=\"https://www.kaggle.com/c/sartorius-cell-instance-segmentation/discussion/284215\" target=\"_blank\">Threshold by class</a></p>",
          "rawMarkdown": "@iwrbeverly Yes. I was inspired by the discussion written by @slawekbiel [Threshold by class](https://www.kaggle.com/c/sartorius-cell-instance-segmentation/discussion/284215)",
          "votes": 1
        },
        {
          "id": 1590297,
          "postDate": "2021-11-21T04:33:14.937Z",
          "content": "<p>BTW, has anyone tried Swin-Transformer backbone? The resnet backbone is just dominating this competition + fine-tuning tricks/ensemble. I think maybe the backbone still has the room for improvement? </p>",
          "rawMarkdown": "BTW, has anyone tried Swin-Transformer backbone? The resnet backbone is just dominating this competition + fine-tuning tricks/ensemble. I think maybe the backbone still has the room for improvement? "
        },
        {
          "id": 1590968,
          "postDate": "2021-11-21T19:48:43.003Z",
          "content": "<p>The Swin Transformer I have tried under detectron2 was underperforming.</p>",
          "rawMarkdown": "The Swin Transformer I have tried under detectron2 was underperforming.",
          "votes": 1
        },
        {
          "id": 1591157,
          "postDate": "2021-11-22T03:38:39.530Z",
          "content": "<p><a href=\"https://www.kaggle.com/hsadeghian\" target=\"_blank\">@hsadeghian</a> I am trying it under detectron2, too. May I know how much did u score on LB by Swin Transformer? ( I got .295 with this single model + simple tuned thresholds.)</p>",
          "rawMarkdown": "@hsadeghian I am trying it under detectron2, too. May I know how much did u score on LB by Swin Transformer? ( I got .295 with this single model + simple tuned thresholds.)",
          "votes": 1
        },
        {
          "id": 1591169,
          "postDate": "2021-11-22T03:58:48.413Z",
          "content": "<p>I got less than you, LB=.285 with swinT with tuned thresholds</p>",
          "rawMarkdown": "I got less than you, LB=.285 with swinT with tuned thresholds",
          "votes": 1
        },
        {
          "id": 1596422,
          "postDate": "2021-11-26T13:35:48.083Z",
          "content": "<p>What is your learning rate set?</p>",
          "rawMarkdown": "What is your learning rate set?"
        },
        {
          "id": 1620851,
          "postDate": "2021-12-17T07:10:28.977Z",
          "content": "<p>I can got cv 303, lb303 using SwinT.</p>",
          "rawMarkdown": "I can got cv 303, lb303 using SwinT.",
          "votes": 1
        },
        {
          "id": 1620958,
          "postDate": "2021-12-17T09:34:46.100Z",
          "content": "<p><a href=\"https://www.kaggle.com/tiandaye\" target=\"_blank\">@tiandaye</a>  Hi, How do you evaluate model for getting CV 0.303? In training and inference? My CV did not exceed 0.273. Thanks!</p>",
          "rawMarkdown": "@tiandaye  Hi, How do you evaluate model for getting CV 0.303? In training and inference? My CV did not exceed 0.273. Thanks!"
        }
      ]
    },
    {
      "id": 1620904,
      "postDate": "2021-12-17T08:15:23.030Z",
      "content": "<p>library: detectron2<br>\nmodel: mask_rcnn_r50_fpn (single fold)<br>\nCV 0.273 - LB 0.308</p>",
      "rawMarkdown": "library: detectron2\nmodel: mask_rcnn_r50_fpn (single fold)\nCV 0.273 - LB 0.308",
      "votes": 1
    },
    {
      "id": 1588636,
      "postDate": "2021-11-19T14:11:03.120Z",
      "content": "<p>mmdet:cascade_mask_rcnn_r50_fpn(single fold) <br>\nlb:0.294</p>",
      "rawMarkdown": "mmdet:cascade_mask_rcnn_r50_fpn(single fold) \nlb:0.294",
      "votes": 2
    },
    {
      "id": 1626893,
      "postDate": "2021-12-23T09:53:48.327Z",
      "content": "<p>model: 5-Layer-U-Net as described by Ronneberger et al. (but no augmentations)</p>\n<p>LB: 0.177</p>",
      "rawMarkdown": "model: 5-Layer-U-Net as described by Ronneberger et al. (but no augmentations)\n\nLB: 0.177"
    },
    {
      "id": 1597416,
      "postDate": "2021-11-27T13:47:07.987Z",
      "rawMarkdown": "",
      "isDeleted": true
    },
    {
      "id": 1608286,
      "postDate": "2021-12-06T10:32:59.343Z",
      "content": "<p>thanks for sharing <a href=\"https://www.kaggle.com/trushk\" target=\"_blank\">@trushk</a> </p>",
      "rawMarkdown": "thanks for sharing @trushk ",
      "votes": -2
    }
  ],
  "comments": [
    {
      "id": 1589499,
      "author_name": "omallo",
      "author_url": "",
      "post_date": "2021-11-20T10:46:46.747000",
      "content": "<p>I think that the number of trained epochs is also relevant for people so they know how much they might have to invest to get a good model so I'm also including that information (others might want to include that as well):</p>\n<p>library: detectron2<br>\nmodel: mask_rcnn_x101_fpn (single fold)<br>\nepochs: 50<br>\ntraining time: 8h<br>\ntrain image sizes (short edge, multi scale): 480, 520, 560, 640, 672, 704, 736, 768, 800<br>\ntest image size (short edge): 800<br>\nlb w/ standard thresholds (0.5 for each class): 0.299<br>\nlb w/ tuned thresholds: 0.306</p>",
      "votes": 21,
      "replies": [
        {
          "id": 1589539,
          "author_name": "Vu",
          "author_url": "",
          "post_date": "2021-11-20T11:25:35.383000",
          "content": "<p>Here is my model, i think i should try with larger backbone</p>\n<p>library: detectron2<br>\nmodel: mask_rcnn_r50_fpn (single fold)<br>\nepochs: ~40<br>\ntraining time: 3h<br>\nlb w/ standard threshold: 0.291<br>\nlb w/ tuned thresholds: 0.296</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 1589633,
          "author_name": "dragon zhang",
          "author_url": "",
          "post_date": "2021-11-20T12:58:46.153000",
          "content": "<p>where to setup epochs?</p>\n<p>I just set  the iteration number.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1589647,
          "author_name": "Vu",
          "author_url": "",
          "post_date": "2021-11-20T13:17:39.090000",
          "content": "<p>detectron doesn't specify epochs number, you can calculate by: <br>\nMAX_ITER * IMS_PER_BATCH / TOTAL_NUM_IMAGES</p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 1589711,
          "author_name": "Nirjhar Roy",
          "author_url": "",
          "post_date": "2021-11-20T14:18:10.887000",
          "content": "<p>When you say standard threshold ,what does it mean ? No threshold per class ? Or 0.5 for all class … ? </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1589840,
          "author_name": "omallo",
          "author_url": "",
          "post_date": "2021-11-20T16:26:15.533000",
          "content": "<p>By default I meant 0.5 for each class. I updated my comment accordingly.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1589860,
          "author_name": "Nirjhar Roy",
          "author_url": "",
          "post_date": "2021-11-20T16:45:19.463000",
          "content": "<p>Thanks much </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1589864,
          "author_name": "dragon zhang",
          "author_url": "",
          "post_date": "2021-11-20T16:48:21.073000",
          "content": "<p>I am curious about the epoch config in detectron2.  if It is computed as you said, then I understand it. Thanks</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1589908,
          "author_name": "Trushant Kalyanpur",
          "author_url": "",
          "post_date": "2021-11-20T17:26:42.177000",
          "content": "<p>Thanks for sharing <a href=\"https://www.kaggle.com/omallo\" target=\"_blank\">@omallo</a>. Great idea on including epochs as this is important. I think image size is also relevant so I updated the main thread with that information. </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1590033,
          "author_name": "omallo",
          "author_url": "",
          "post_date": "2021-11-20T20:47:04.247000",
          "content": "<p><a href=\"https://www.kaggle.com/trushk\" target=\"_blank\">@trushk</a> , I also added mine :) I'm using multi scale image sizes for training, in the hope that it also prevents overfitting.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1590037,
          "author_name": "Trushant Kalyanpur",
          "author_url": "",
          "post_date": "2021-11-20T20:50:35.670000",
          "content": "<p><a href=\"https://www.kaggle.com/omallo\" target=\"_blank\">@omallo</a> thanks. what is your long edge 1333? </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1590046,
          "author_name": "omallo",
          "author_url": "",
          "post_date": "2021-11-20T21:13:23.843000",
          "content": "<p><a href=\"https://www.kaggle.com/trushk\" target=\"_blank\">@trushk</a> , I've set <code>MAX_SIZE_TRAIN</code> and <code>MAX_SIZE_TEST</code> to 1333 but from my understanding, this just limits the image size when scaling. The long edge is always derived from the short edge and it can never exceed 1333. As an example, if the short edge is set to 800 (my biggest size), then the long edge will be <code>(800 / 520) * 704 = 1083</code> where 520 and 704 are the dimensions of the original images.</p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 1594936,
          "author_name": "denred0",
          "author_url": "",
          "post_date": "2021-11-25T09:06:41.027000",
          "content": "<p>Hi! <br>\nThanks!<br>\nWhat learning rate did you set?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1594954,
          "author_name": "omallo",
          "author_url": "",
          "post_date": "2021-11-25T09:16:44.703000",
          "content": "<p>I'm currently using a learning rate of 0.01 and a batch size of 2 but, to be honest, I don't think that those are ideal values. Currently, I'm a bit forced to use a small batch size due to the GPU memory consumption. So I think you might want to experiment with other values if you have the possibility.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1596278,
          "author_name": "Atharva Ingle",
          "author_url": "",
          "post_date": "2021-11-26T10:40:22.637000",
          "content": "<p>Hi, do you lower the learning rate after some iterations or using any kind of learning schedule ?<br>\nStrangely, my CV increased with a learning rate of 0.01 but LB decreased.<br>\nSee this for instance (left column indicates CV and right LB)<br>\n<img src=\"https://github.com/Gladiator07/Kaggle-images/blob/main/sartorius_scheduler.png\" alt=\"\"></p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1596529,
          "author_name": "omallo",
          "author_url": "",
          "post_date": "2021-11-26T15:46:46.697000",
          "content": "<p><a href=\"https://www.kaggle.com/atharvaingle\" target=\"_blank\">@atharvaingle</a> , I'm using the default LR schedule of Detectron2: There is a warm up period at the beginning (~5 epochs) where the LR is continually incremented from 0.0001 to 0.01. Then I train with 0.01 and in the last ~5 epochs, I lower the LR to 0.001. But I haven't made any comparisons with other LR schedules yet so I'm not sure whether this is a particularly good approach or not.</p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 1607538,
          "author_name": "Woprime",
          "author_url": "",
          "post_date": "2021-12-06T00:47:45.507000",
          "content": "<p>You, my sir, is the real hero. Thank you for the generous information, very helpful indeed.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1618834,
          "author_name": "Hannah B",
          "author_url": "",
          "post_date": "2021-12-15T11:51:21.980000",
          "content": "<p>hey, why would you want to use a larger batch size doesn't that reduce accuracy?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1629777,
          "author_name": "somuSan",
          "author_url": "",
          "post_date": "2021-12-26T14:34:21.403000",
          "content": "<p><code>train image sizes (short edge, multi scale): 480, 520, 560, 640, 672, 704, 736, 768, 800</code><br>\nHi, <a href=\"https://www.kaggle.com/omallo\" target=\"_blank\">@omallo</a> What do you mean by this? it would be really helpful, if you can give a hint. Thank you😇.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1630017,
          "author_name": "omallo",
          "author_url": "",
          "post_date": "2021-12-26T21:51:12.270000",
          "content": "<p><a href=\"https://www.kaggle.com/soumya9977\" target=\"_blank\">@soumya9977</a> , this is an augmentation method where the short edge of the images is rescaled to one of the given sizes. One of the sizes is picked at random for each batch.</p>\n<p>More concretely, the original images in this competition have the shape <code>(520, 704)</code>. If e.g. the scale <code>640</code> is chosen for a given batch, then all images within that batch are scaled to the shape <code>(640, 866)</code>, i.e. the short edge is set to <code>640</code> and the long edge is calculated so that the original image ratio is preserved. In this case, the long edge is calculated as <code>(640 / 520) * 704 = 866</code>.</p>\n<p>The multi scale training is a feature supported by detectron2 and also other deep learning libraries.</p>\n<p>I hope this helps :-)</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1630883,
          "author_name": "somuSan",
          "author_url": "",
          "post_date": "2021-12-27T20:06:41.963000",
          "content": "<p>Thank you for explaining <a href=\"https://www.kaggle.com/omallo\" target=\"_blank\">@omallo</a> , I will try to add this in my augmentations.<br>\n<strong>Quick questions:</strong></p>\n<ul>\n<li>Did you try transformations like CLAHE, Random Brightness, Gaussian Blur? Or did you find geometric transformations to be better?</li>\n</ul>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1630926,
          "author_name": "omallo",
          "author_url": "",
          "post_date": "2021-12-27T21:13:30.550000",
          "content": "<p><a href=\"https://www.kaggle.com/somu159776\" target=\"_blank\">@somu159776</a> , you're welcome.</p>\n<p>I'm only using basic augmentations, i.e. the described multi-scale resizing, horizontal/vertical flipping, and cropping. However, I have not experimented with other augmentations so I cannot really say whether the help or not.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1630951,
          "author_name": "somuSan",
          "author_url": "",
          "post_date": "2021-12-27T21:28:46.013000",
          "content": "<p>Thank you, your explanations really helped😇. </p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 1595076,
      "author_name": "Yamame🐟",
      "author_url": "",
      "post_date": "2021-11-25T11:39:33.910000",
      "content": "<p>library: mmdetection<br>\nmodel: cascade mask rcnn (single fold)<br>\nepochs: 20<br>\nCV 0.2746 - LB 0.315<br>\nCV 0.2827 - LB 0.320<br>\nCV 0.2880 - LB 0.324</p>\n<p>[update-1]<br>\nCV 0.2983 - LB 0.327<br>\nCV 0.2995 - LB 0.328</p>\n<p>[update-2]<br>\nCV 0.3002 - LB 0.330<br>\nCV 0.3013 - LB 0.331<br>\nCV 0.3038 - LB 0.332</p>\n<p>[update-3]<br>\nCV 0.3047 - LB 0.335<br>\nCV 0.3049 - LB 0.336</p>",
      "votes": 11,
      "replies": [
        {
          "id": 1595358,
          "author_name": "Trushant Kalyanpur",
          "author_url": "",
          "post_date": "2021-11-25T16:05:10.847000",
          "content": "<p>That shows great correlation. Thanks for sharing!  Is this with original train or after some mask fixes. </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1595868,
          "author_name": "Yamame🐟",
          "author_url": "",
          "post_date": "2021-11-26T04:00:10.657000",
          "content": "<p>with original train</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1596091,
          "author_name": "Phat Tran",
          "author_url": "",
          "post_date": "2021-11-26T07:32:38.107000",
          "content": "<p>Do you apply any post-processing?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1596186,
          "author_name": "Zhikun Xu",
          "author_url": "",
          "post_date": "2021-11-26T08:48:14.200000",
          "content": "<p><a href=\"https://www.kaggle.com/tyaiga\" target=\"_blank\">@tyaiga</a> did u use resent50 as backbone?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1596206,
          "author_name": "Yamame🐟",
          "author_url": "",
          "post_date": "2021-11-26T09:00:52.130000",
          "content": "<p>No, bigger one.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1597255,
          "author_name": "omallo",
          "author_url": "",
          "post_date": "2021-11-27T10:56:26.090000",
          "content": "<p><a href=\"https://www.kaggle.com/tyaiga\" target=\"_blank\">@tyaiga</a> , your performance is really nice since you get a great score with a low number of epochs. Also, the gain on the LB is quite big.</p>\n<p>May I ask what you think brought you extra performance, i.e. was it the choice of the right model, LR schedule, augmentations, post-processing, …? Of course, you don't have to disclose any details.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1597350,
          "author_name": "zw",
          "author_url": "",
          "post_date": "2021-11-27T12:42:07.037000",
          "content": "<p>pretty cool! which metric do you use in mmdet about CV0.2995?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1597365,
          "author_name": "Yamame🐟",
          "author_url": "",
          "post_date": "2021-11-27T12:50:57.823000",
          "content": "<p>I use <a href=\"https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook\" target=\"_blank\">this</a> after mmdet training.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1597370,
          "author_name": "zw",
          "author_url": "",
          "post_date": "2021-11-27T12:56:49.703000",
          "content": "<p>thanks😊.  you mean you evaluate the model one by one by the metric after all the training end?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1597802,
          "author_name": "Mark",
          "author_url": "",
          "post_date": "2021-11-27T23:19:39.793000",
          "content": "<p>Could you please share,your method to convert .csv to COCO for mmdet? I used <a href=\"https://www.kaggle.com/mistag/sartorius-create-coco-annotations\" target=\"_blank\">this</a> to 5-fold split, but always get:</p>\n<p>**Average Precision  (AP) @[ IoU=0.50:0.95  area= large  maxDets=1000 ] = -1.000 **</p>\n<p>during COCOEval. </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1598594,
          "author_name": "zw",
          "author_url": "",
          "post_date": "2021-11-28T16:03:40.030000",
          "content": "<p>I haven't tried yet</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1601237,
          "author_name": "Yamame🐟",
          "author_url": "",
          "post_date": "2021-12-01T05:40:51.827000",
          "content": "<p>CV/LB updated</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1601258,
          "author_name": "Hannah B",
          "author_url": "",
          "post_date": "2021-12-01T06:15:58.967000",
          "content": "<p>great scores and correlation! so all of these have been generated using one of a k-fold split of  \"cascade mask rcnn 20 epoch\" model? Ofourse your pre/postporcess techniques may have been varied but I just wanted to know whether you use the same base throughout</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1601261,
          "author_name": "Yamame🐟",
          "author_url": "",
          "post_date": "2021-12-01T06:25:45.907000",
          "content": "<p>Yes, the above scores are generated by \"one of a k-fold split of cascade mask rcnn 20 epoch model\".</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1601267,
          "author_name": "Hannah B",
          "author_url": "",
          "post_date": "2021-12-01T06:30:26.837000",
          "content": "<p>okay thanks for the share :)</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1604838,
          "author_name": "Trushant Kalyanpur",
          "author_url": "",
          "post_date": "2021-12-03T18:54:56.167000",
          "content": "<p><a href=\"https://www.kaggle.com/tyaiga\" target=\"_blank\">@tyaiga</a> I wrote this for eval for mmdet. It will be great if you can provide insights: <a href=\"https://www.kaggle.com/c/sartorius-cell-instance-segmentation/discussion/292852\" target=\"_blank\">https://www.kaggle.com/c/sartorius-cell-instance-segmentation/discussion/292852</a></p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 1592871,
      "author_name": "yu4u",
      "author_url": "",
      "post_date": "2021-11-23T12:35:26.913000",
      "content": "<p>library: mmdetection<br>\nmodel: mask_rcnn_r50_fpn (single fold)<br>\nCV 0.301 - LB 0.314</p>",
      "votes": 11,
      "replies": [
        {
          "id": 1593045,
          "author_name": "Trushant Kalyanpur",
          "author_url": "",
          "post_date": "2021-11-23T15:27:33.720000",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/ren4yu\" target=\"_blank\">@ren4yu</a>   Do you use a custom eval function for mmdet? </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1593062,
          "author_name": "yu4u",
          "author_url": "",
          "post_date": "2021-11-23T15:45:39.383000",
          "content": "<p>I evaluated the best model after training with<br>\n<a href=\"https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook\" target=\"_blank\">https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook</a></p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 1593167,
          "author_name": "Yamame🐟",
          "author_url": "",
          "post_date": "2021-11-23T17:25:51.887000",
          "content": "<p>Did you calculate CV score after eliminating pixel overlap process?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1593470,
          "author_name": "yu4u",
          "author_url": "",
          "post_date": "2021-11-24T00:41:30.077000",
          "content": "<blockquote>\n  <p>Did you calculate CV score after eliminating pixel overlap process?</p>\n</blockquote>\n<p>Yes. It is evaluated after some post processing including pixel overlap elimination because I want to evaluate whole submission pipeline.</p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 1593537,
          "author_name": "HungNT",
          "author_url": "",
          "post_date": "2021-11-24T03:34:00.347000",
          "content": "<p>Do you use LiveCell dataset or external data in train_semi_supervised directory?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1593538,
          "author_name": "yu4u",
          "author_url": "",
          "post_date": "2021-11-24T03:36:32.533000",
          "content": "<p>No, I used only train.csv and train images.</p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 1595353,
          "author_name": "",
          "author_url": "",
          "post_date": "2021-11-25T16:02:42.343000",
          "content": "",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1597354,
          "author_name": "zw",
          "author_url": "",
          "post_date": "2021-11-27T12:44:34.183000",
          "content": "<p>I'm new to mmdet.😭 Can I know how do you add the evaluate metric <a href=\"https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook\" target=\"_blank\">https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook</a> to mmdet to evaluate your model</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1596964,
      "author_name": "blueboy-97",
      "author_url": "",
      "post_date": "2021-11-27T03:51:20.663000",
      "content": "<p>library: mmdetection<br>\nmodel: mask rcnn (single fold)<br>\ntrain_size: 484 images<br>\ntest_size: 122 images<br>\nCV: 0.2587  LB: 0.299<br>\nNo model modified. No preprocessing. No postprocessing except for overlap fixed. </p>",
      "votes": 7,
      "replies": [
        {
          "id": 1597347,
          "author_name": "zw",
          "author_url": "",
          "post_date": "2021-11-27T12:40:18.750000",
          "content": "<p>that's cool. Can I know which metric do you use in mmdetection for CV0.2587, do you mean map or official metric </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1597490,
          "author_name": "blueboy-97",
          "author_url": "",
          "post_date": "2021-11-27T14:58:54.523000",
          "content": "<p>I use metric from the public notebook (<a href=\"https://www.kaggle.com/theoviel/competition-metric-map-iou/notebook\" target=\"_blank\">here</a>).</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1601463,
      "author_name": "Ctrl_CV",
      "author_url": "",
      "post_date": "2021-12-01T10:03:04.273000",
      "content": "<p>single model,CV0.3223, LB0.332, detectron2</p>",
      "votes": 8,
      "replies": [
        {
          "id": 1605605,
          "author_name": "Jaideep",
          "author_url": "",
          "post_date": "2021-12-04T11:55:57.607000",
          "content": "<p>is this your  Test train split cv or  N fold cv ? <a href=\"https://www.kaggle.com/guohey\" target=\"_blank\">@guohey</a> </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1605736,
          "author_name": "Ctrl_CV",
          "author_url": "",
          "post_date": "2021-12-04T13:56:13.320000",
          "content": "<p>well, i use Test train split</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1608423,
          "author_name": "",
          "author_url": "",
          "post_date": "2021-12-06T11:38:34.407000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1615641,
      "author_name": "Gunes Evitan",
      "author_url": "",
      "post_date": "2021-12-12T13:53:06.603000",
      "content": "<p>Detectron Mask R-CNN. Public LB score is 0.32. I'm still trying to figure out an efficient way to ensemble predictions.</p>\n<pre><code>Fold 1 - mAP: 0.313467 ({'astro': 0.20072195936428244, 'cort': 0.4026399670002614, 'shsy5y': 0.22756584415732165})\nFold 2 - mAP: 0.297655 ({'astro': 0.16545075040715596, 'cort': 0.3963139150087539, 'shsy5y': 0.20485488471168073})\nFold 3 - mAP: 0.306650 ({'astro': 0.1683234036456997, 'cort': 0.4000650243514869, 'shsy5y': 0.22981052684883063})\nFold 4 - mAP: 0.301520 ({'astro': 0.1767558512239449, 'cort': 0.3947693877607034, 'shsy5y': 0.21364495836951708})\nFold 5 - mAP: 0.298685 ({'astro': 0.18354330953728468, 'cort': 0.3803528848335181, 'shsy5y': 0.22665148818681236})\n------------------------------\nOOF mAP: 0.303612 ({'astro': 0.17912518387787665, 'cort': 0.3948282357909447, 'shsy5y': 0.2205055404548325})\n</code></pre>",
      "votes": 6,
      "replies": [
        {
          "id": 1615718,
          "author_name": "zw",
          "author_url": "",
          "post_date": "2021-12-12T15:41:33.987000",
          "content": "<p>👀the mAP is so high，you mean mAP score or official metric socre？</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1615722,
          "author_name": "Ioannis M",
          "author_url": "",
          "post_date": "2021-12-12T15:44:16.433000",
          "content": "<p>indeed good job <a href=\"https://www.kaggle.com/gunesevitan\" target=\"_blank\">@gunesevitan</a> - would you mind if you share your evaluator setup (and per class scores) </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1615723,
          "author_name": "Hannah B",
          "author_url": "",
          "post_date": "2021-12-12T15:44:21.190000",
          "content": "<p>I think a lot of competitors have shifted to using the mAP metric provided in the livecell github repo</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1615757,
          "author_name": "Gunes Evitan",
          "author_url": "",
          "post_date": "2021-12-12T16:36:14.977000",
          "content": "<p>umm mAP is official metric of this competition?</p>\n<p><a href=\"https://www.kaggle.com/imeintanis\" target=\"_blank\">@imeintanis</a> Yes, I can share my evaluator, but the scores above is produced by my inference pipeline which I can't share. My evaluator is very similar to one that is shared. I only added couple lines to store labels in order to calculate per class scores.</p>\n<pre><code>class InstanceSegmentationEvaluator(DatasetEvaluator):\n\n    def __init__(self, dataset_name, segmentation_format='bitmask'):\n\n        dataset = DatasetCatalog.get(dataset_name)\n        self.annotations_cache = {item['image_id']: item['annotations'] for item in dataset}\n        self.segmentation_format = segmentation_format\n\n    def reset(self):\n\n        self.scores = []\n        self.labels = []\n\n    def process(self, inputs, outputs):\n\n        for input_, output in zip(inputs, outputs):\n            if len(output['instances']) == 0:\n                # Set 0 mAP when there are no objects predicted by model\n                self.scores.append(0)\n                annotation = self.annotations_cache[input_['image_id']]\n                label = np.unique(list(map(lambda x: x['category_id'], annotation)))[0]\n                self.labels.append(label)\n            else:\n                # Calculate mAP with predicted objects\n                annotation = self.annotations_cache[input_['image_id']]\n                prediction_masks = output['instances'].pred_masks.cpu().numpy()\n                average_precision = metrics.get_average_precision_detectron(\n                    ground_truth_masks=annotation,\n                    prediction_masks=prediction_masks,\n                    ground_truth_mask_format=self.segmentation_format,\n                    verbose=False\n                )\n                self.scores.append(average_precision)\n                label = np.unique(list(map(lambda x: x['category_id'], annotation)))[0]\n                self.labels.append(label)\n\n    def evaluate(self):\n\n        df_scores = pd.DataFrame(columns=['scores', 'labels'])\n        df_scores['scores'] = np.array(self.scores)\n        df_scores['labels'] = np.array(self.labels)\n        df_scores = df_scores.groupby('labels')['scores'].mean().to_dict()\n\n        return {'mAP': np.mean(self.scores), 'mAP cort': df_scores[0], 'mAP shsy5y': df_scores[1], 'mAP astro': df_scores[2]}\n</code></pre>",
          "votes": 6,
          "replies": []
        },
        {
          "id": 1615761,
          "author_name": "",
          "author_url": "",
          "post_date": "2021-12-12T16:41:07.250000",
          "content": "",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1616002,
          "author_name": "Trushant Kalyanpur",
          "author_url": "",
          "post_date": "2021-12-13T03:37:37.633000",
          "content": "<p><a href=\"https://www.kaggle.com/gunesevitan\" target=\"_blank\">@gunesevitan</a> how many epochs do you train. </p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1589283,
      "author_name": "Roc",
      "author_url": "",
      "post_date": "2021-11-20T05:41:48.083000",
      "content": "<p>detectron: mask_rcnn_r50_fpn(single-fold)<br>\nlb: 0.299</p>\n<p>Update(2021-12-06)<br>\ndetectron: mask_rcnn_r50_fpn(single-fold)<br>\ncv: 0.319 <br>\nlb: 0.322</p>",
      "votes": 5,
      "replies": [
        {
          "id": 1631268,
          "author_name": "Ronaldinho",
          "author_url": "",
          "post_date": "2021-12-28T08:03:47.823000",
          "content": "<p><a href=\"https://www.kaggle.com/Roc\" target=\"_blank\">@Roc</a>, what hyper-parameters did you tune in detectron2? <br>\nI am not getting more than 0.252 in lb<br>\nWhat is your ensembling strategy for the models from different folds?</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1588420,
      "author_name": "Ioannis M",
      "author_url": "",
      "post_date": "2021-11-19T11:48:17.543000",
      "content": "<p>Torch Mask-RCNN R50 (single fold) </p>\n<ul>\n<li><code>mAP IoU: 0.249</code>  --&gt;  <code>LB: 0.266 - 0.268</code> (depends on thresholds per class) </li>\n</ul>\n<p>Detectron Mask-RCNN R50 (single fold) </p>\n<ul>\n<li><code>mAP IoU: 0.260</code>  --&gt;  <code>LB: 0.246 - 0.294</code> (depends on thresholds per class) </li>\n</ul>",
      "votes": 6,
      "replies": [
        {
          "id": 1588693,
          "author_name": "Gunes Evitan",
          "author_url": "",
          "post_date": "2021-11-19T15:02:55.667000",
          "content": "<p>Thanks for making this comparison. Performance gap is kinda significant. What is the difference between torchvision and detectron implementations? </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1588781,
          "author_name": "Ioannis M",
          "author_url": "",
          "post_date": "2021-11-19T16:16:21.790000",
          "content": "<p>Indeed, to be honest I haven't dig too much in the details between the two, I started with Torch for my convenience and then moved quickly to Detectron framework, it's the first time I use it so I'm still in exploration mode :) </p>\n<p>Backbones and fold data are same however epochs/iter and LR schedules were different.  </p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 1608131,
      "author_name": "Qingyao Shuai",
      "author_url": "",
      "post_date": "2021-12-06T08:41:25.697000",
      "content": "<p>library: torchvision<br>\nmodel: mask_rcnn_r50_fpn (single fold)<br>\nCV 0.303 - LB 0.308</p>\n<p>[update]<br>\nlibrary: detectron2<br>\nmodel: mask_rcnn_r50_fpn (single fold)<br>\nCV 0.309 - LB 0.319</p>",
      "votes": 4,
      "replies": []
    },
    {
      "id": 1589541,
      "author_name": "Zhikun Xu",
      "author_url": "",
      "post_date": "2021-11-20T11:26:27.903000",
      "content": "<p>detectron2: mask rcnn r50 fpn(single-fold)<br>\nstandard thresholds: 0.291<br>\ntuned thresholds: 0.301</p>",
      "votes": 4,
      "replies": [
        {
          "id": 1589685,
          "author_name": "iwrbeverly",
          "author_url": "",
          "post_date": "2021-11-20T13:58:08.050000",
          "content": "<p>How to tune Thresholds?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1589842,
          "author_name": "Ioannis M",
          "author_url": "",
          "post_date": "2021-11-20T16:29:02.647000",
          "content": "<p>you may check this discussion <br>\n<a href=\"https://www.kaggle.com/c/sartorius-cell-instance-segmentation/discussion/284215\" target=\"_blank\">here</a></p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1590290,
          "author_name": "Zhikun Xu",
          "author_url": "",
          "post_date": "2021-11-21T04:25:18.087000",
          "content": "<p><a href=\"https://www.kaggle.com/iwrbeverly\" target=\"_blank\">@iwrbeverly</a> Yes. I was inspired by the discussion written by <a href=\"https://www.kaggle.com/slawekbiel\" target=\"_blank\">@slawekbiel</a> <a href=\"https://www.kaggle.com/c/sartorius-cell-instance-segmentation/discussion/284215\" target=\"_blank\">Threshold by class</a></p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1590297,
          "author_name": "Zhikun Xu",
          "author_url": "",
          "post_date": "2021-11-21T04:33:14.937000",
          "content": "<p>BTW, has anyone tried Swin-Transformer backbone? The resnet backbone is just dominating this competition + fine-tuning tricks/ensemble. I think maybe the backbone still has the room for improvement? </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1590968,
          "author_name": "Hoda",
          "author_url": "",
          "post_date": "2021-11-21T19:48:43.003000",
          "content": "<p>The Swin Transformer I have tried under detectron2 was underperforming.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1591157,
          "author_name": "Zhikun Xu",
          "author_url": "",
          "post_date": "2021-11-22T03:38:39.530000",
          "content": "<p><a href=\"https://www.kaggle.com/hsadeghian\" target=\"_blank\">@hsadeghian</a> I am trying it under detectron2, too. May I know how much did u score on LB by Swin Transformer? ( I got .295 with this single model + simple tuned thresholds.)</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1591169,
          "author_name": "Hoda",
          "author_url": "",
          "post_date": "2021-11-22T03:58:48.413000",
          "content": "<p>I got less than you, LB=.285 with swinT with tuned thresholds</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1596422,
          "author_name": "yerongg",
          "author_url": "",
          "post_date": "2021-11-26T13:35:48.083000",
          "content": "<p>What is your learning rate set?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1620851,
          "author_name": "Tian",
          "author_url": "",
          "post_date": "2021-12-17T07:10:28.977000",
          "content": "<p>I can got cv 303, lb303 using SwinT.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1620958,
          "author_name": "NoChanged",
          "author_url": "",
          "post_date": "2021-12-17T09:34:46.100000",
          "content": "<p><a href=\"https://www.kaggle.com/tiandaye\" target=\"_blank\">@tiandaye</a>  Hi, How do you evaluate model for getting CV 0.303? In training and inference? My CV did not exceed 0.273. Thanks!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1620904,
      "author_name": "Zaakcii Ru",
      "author_url": "",
      "post_date": "2021-12-17T08:15:23.030000",
      "content": "<p>library: detectron2<br>\nmodel: mask_rcnn_r50_fpn (single fold)<br>\nCV 0.273 - LB 0.308</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1588636,
      "author_name": "MOONMOON",
      "author_url": "",
      "post_date": "2021-11-19T14:11:03.120000",
      "content": "<p>mmdet:cascade_mask_rcnn_r50_fpn(single fold) <br>\nlb:0.294</p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 1626893,
      "author_name": "Ivo Florin scheiber",
      "author_url": "",
      "post_date": "2021-12-23T09:53:48.327000",
      "content": "<p>model: 5-Layer-U-Net as described by Ronneberger et al. (but no augmentations)</p>\n<p>LB: 0.177</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1597416,
      "author_name": "",
      "author_url": "",
      "post_date": "2021-11-27T13:47:07.987000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1608286,
      "author_name": "Burak",
      "author_url": "",
      "post_date": "2021-12-06T10:32:59.343000",
      "content": "<p>thanks for sharing <a href=\"https://www.kaggle.com/trushk\" target=\"_blank\">@trushk</a> </p>",
      "votes": -2,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1587877": "Anyone willing to share their best single model? I will go first:\n\n-EDIT- Thanks to the suggestion by @omallo,  I am adding more information here\n\n`library`: mmdetection\n`model`: mask_rcnn_r50_fpn (single fold)\n`epochs`: 12\n`img_size`: 1280 x 800\n`lb w/ standard thresholds (0.5 for each class)`: 0.284\n`lb w/ tuned thresholds`: Not tried yet",
    "1589499": "I think that the number of trained epochs is also relevant for people so they know how much they might have to invest to get a good model so I'm also including that information (others might want to include that as well):\n\nlibrary: detectron2\nmodel: mask_rcnn_x101_fpn (single fold)\nepochs: 50\ntraining time: 8h\ntrain image sizes (short edge, multi scale): 480, 520, 560, 640, 672, 704, 736, 768, 800\ntest image size (short edge): 800\nlb w/ standard thresholds (0.5 for each class): 0.299\nlb w/ tuned thresholds: 0.306",
    "1595076": "library: mmdetection\nmodel: cascade mask rcnn (single fold)\nepochs: 20\nCV 0.2746 - LB 0.315\nCV 0.2827 - LB 0.320\nCV 0.2880 - LB 0.324\n\n[update-1]\nCV 0.2983 - LB 0.327\nCV 0.2995 - LB 0.328\n\n[update-2]\nCV 0.3002 - LB 0.330\nCV 0.3013 - LB 0.331\nCV 0.3038 - LB 0.332\n\n[update-3]\nCV 0.3047 - LB 0.335\nCV 0.3049 - LB 0.336",
    "1592871": "library: mmdetection\nmodel: mask_rcnn_r50_fpn (single fold)\nCV 0.301 - LB 0.314",
    "1596964": "library: mmdetection\nmodel: mask rcnn (single fold)\ntrain_size: 484 images\ntest_size: 122 images\nCV: 0.2587  LB: 0.299\nNo model modified. No preprocessing. No postprocessing except for overlap fixed. ",
    "1601463": "single model,CV0.3223, LB0.332, detectron2",
    "1615641": "Detectron Mask R-CNN. Public LB score is 0.32. I'm still trying to figure out an efficient way to ensemble predictions.\n\n```\nFold 1 - mAP: 0.313467 ({'astro': 0.20072195936428244, 'cort': 0.4026399670002614, 'shsy5y': 0.22756584415732165})\nFold 2 - mAP: 0.297655 ({'astro': 0.16545075040715596, 'cort': 0.3963139150087539, 'shsy5y': 0.20485488471168073})\nFold 3 - mAP: 0.306650 ({'astro': 0.1683234036456997, 'cort': 0.4000650243514869, 'shsy5y': 0.22981052684883063})\nFold 4 - mAP: 0.301520 ({'astro': 0.1767558512239449, 'cort': 0.3947693877607034, 'shsy5y': 0.21364495836951708})\nFold 5 - mAP: 0.298685 ({'astro': 0.18354330953728468, 'cort': 0.3803528848335181, 'shsy5y': 0.22665148818681236})\n------------------------------\nOOF mAP: 0.303612 ({'astro': 0.17912518387787665, 'cort': 0.3948282357909447, 'shsy5y': 0.2205055404548325})\n```",
    "1589283": "detectron: mask_rcnn_r50_fpn(single-fold)\nlb: 0.299\n\nUpdate(2021-12-06)\ndetectron: mask_rcnn_r50_fpn(single-fold)\ncv: 0.319 \nlb: 0.322",
    "1588420": "Torch Mask-RCNN R50 (single fold) \n-  `mAP IoU: 0.249`  -->  `LB: 0.266 - 0.268` (depends on thresholds per class) \n\nDetectron Mask-RCNN R50 (single fold) \n-  `mAP IoU: 0.260`  -->  `LB: 0.246 - 0.294` (depends on thresholds per class) ",
    "1608131": "library: torchvision\nmodel: mask_rcnn_r50_fpn (single fold)\nCV 0.303 - LB 0.308\n\n[update]\nlibrary: detectron2\nmodel: mask_rcnn_r50_fpn (single fold)\nCV 0.309 - LB 0.319",
    "1589541": "detectron2: mask rcnn r50 fpn(single-fold)\nstandard thresholds: 0.291\ntuned thresholds: 0.301",
    "1620904": "library: detectron2\nmodel: mask_rcnn_r50_fpn (single fold)\nCV 0.273 - LB 0.308",
    "1588636": "mmdet:cascade_mask_rcnn_r50_fpn(single fold) \nlb:0.294",
    "1626893": "model: 5-Layer-U-Net as described by Ronneberger et al. (but no augmentations)\n\nLB: 0.177",
    "1597416": "",
    "1608286": "thanks for sharing @trushk "
  }
}