{
  "id": 375295,
  "title": "Stuck at 0.05 - any tips? (tried upsampling, weighted loss, low learning rates etc.)",
  "url": "/competitions/rsna-breast-cancer-detection/discussion/375295",
  "author_name": "Marius ",
  "post_date": "2022-12-31T13:46:03.919000",
  "votes": 11,
  "comment_count": 21,
  "views": 0,
  "content": "<p>Hey there!</p>\n<p>Unfortunately I'm stuck with my work at a pf1 score of 0.04 - 0.05, although I think I did everything I should do with the problem. </p>\n<p>I'm using fastai. I'm using grouped stratified kfold (5 splits) for my folds. I'm training on 512x512 images, upsampling the positive class 3x, training an efficientnet_b2 with weighted BCELoss (positive_weight=20) and a learning rate of 1e-3 - 1e-5 (tried everything). </p>\n<p>That's exactly what e.g. Radek did in his notebook or what others have also reported.</p>\n<p>From what I read I should be able to get an thresholded pf1 score of around 0.2 with 512x512 images, but I'm still stuck at 0.05, with thresholding maybe 0.07, but not more.</p>\n<p>Do you have any tips for me?</p>\n<p>Thanks in advance</p>",
  "messages": [
    {
      "id": 2081670,
      "postDate": "2022-12-31T13:46:03.920Z",
      "content": "<p>Hey there!</p>\n<p>Unfortunately I'm stuck with my work at a pf1 score of 0.04 - 0.05, although I think I did everything I should do with the problem. </p>\n<p>I'm using fastai. I'm using grouped stratified kfold (5 splits) for my folds. I'm training on 512x512 images, upsampling the positive class 3x, training an efficientnet_b2 with weighted BCELoss (positive_weight=20) and a learning rate of 1e-3 - 1e-5 (tried everything). </p>\n<p>That's exactly what e.g. Radek did in his notebook or what others have also reported.</p>\n<p>From what I read I should be able to get an thresholded pf1 score of around 0.2 with 512x512 images, but I'm still stuck at 0.05, with thresholding maybe 0.07, but not more.</p>\n<p>Do you have any tips for me?</p>\n<p>Thanks in advance</p>",
      "rawMarkdown": "Hey there!\n\nUnfortunately I'm stuck with my work at a pf1 score of 0.04 - 0.05, although I think I did everything I should do with the problem. \n\nI'm using fastai. I'm using grouped stratified kfold (5 splits) for my folds. I'm training on 512x512 images, upsampling the positive class 3x, training an efficientnet_b2 with weighted BCELoss (positive_weight=20) and a learning rate of 1e-3 - 1e-5 (tried everything). \n\nThat's exactly what e.g. Radek did in his notebook or what others have also reported.\n\nFrom what I read I should be able to get an thresholded pf1 score of around 0.2 with 512x512 images, but I'm still stuck at 0.05, with thresholding maybe 0.07, but not more.\n\nDo you have any tips for me?\n\nThanks in advance",
      "votes": 11
    },
    {
      "id": 2081921,
      "postDate": "2022-12-31T20:24:19.920Z",
      "content": "<p>hey <a href=\"https://www.kaggle.com/rasmus01610\" target=\"_blank\">@rasmus01610</a>! This competition is quite brutal and unforgiving, there are so many things that can go wrong!</p>\n<p>You might have a bug in the inference pipeline (which is very hard to pick up on), there could be an issue with data preprocessing, etc.</p>\n<p>A pf1 of 0.05 likely means that the model is not learning, the threshold also should generally be much higher. Might be good to introduce another metric such as AUC or precision and recall that would tell you more about the situation. But my guess is that for some reason the model is just not training.</p>\n<p>Impossible to tell what the reason might be. This setting is very tough for CV, so I wouldn't be too hard on yourself 🙂 And in general, starting with a working pipeline really goes a long way. Working on this nearly drove me crazy, but I drawing inspiration and validating my work against some of the published notebooks was very helpful, maybe that is a path worth exploring!</p>\n<p>Wishing you the best of luck with getting your pipeline to work!</p>",
      "rawMarkdown": "hey @rasmus01610! This competition is quite brutal and unforgiving, there are so many things that can go wrong!\n\nYou might have a bug in the inference pipeline (which is very hard to pick up on), there could be an issue with data preprocessing, etc.\n\nA pf1 of 0.05 likely means that the model is not learning, the threshold also should generally be much higher. Might be good to introduce another metric such as AUC or precision and recall that would tell you more about the situation. But my guess is that for some reason the model is just not training.\n\nImpossible to tell what the reason might be. This setting is very tough for CV, so I wouldn't be too hard on yourself 🙂 And in general, starting with a working pipeline really goes a long way. Working on this nearly drove me crazy, but I drawing inspiration and validating my work against some of the published notebooks was very helpful, maybe that is a path worth exploring!\n\nWishing you the best of luck with getting your pipeline to work!",
      "votes": 7,
      "replies": [
        {
          "id": 2082656,
          "postDate": "2023-01-01T19:07:15.633Z",
          "content": "<p>Now I'm at the point where I take your notebook and use it to train from scratch, and it still doesn't learn. It is your notebook without any changes. I don't understand the world anymore :D</p>",
          "rawMarkdown": "Now I'm at the point where I take your notebook and use it to train from scratch, and it still doesn't learn. It is your notebook without any changes. I don't understand the world anymore :D",
          "votes": 2
        }
      ]
    },
    {
      "id": 2087510,
      "postDate": "2023-01-05T16:34:49.613Z",
      "content": "<p>I guess I cracked the problem. I rewrote everything in plain pytorch using a weighted sampler, but somehow the biggest impact was that I converted the grayscale images to RGB (3 channels) and I don't normalize them but only scale them to (0,1). Especially the RGB conversion doesn't make any sense in my eyes, but whatever, it trains now. </p>\n<p>I load the pos samples in a ratio of 1/15 and have a pos_weight of 3 for my BCELoss. This trains now normally actually. <br>\nI believe the biggest issue was with how I handled the image data before feeding it to the neural net.</p>\n<p>Thank you for all of your suggestions.  </p>",
      "rawMarkdown": "I guess I cracked the problem. I rewrote everything in plain pytorch using a weighted sampler, but somehow the biggest impact was that I converted the grayscale images to RGB (3 channels) and I don't normalize them but only scale them to (0,1). Especially the RGB conversion doesn't make any sense in my eyes, but whatever, it trains now. \n\nI load the pos samples in a ratio of 1/15 and have a pos_weight of 3 for my BCELoss. This trains now normally actually. \nI believe the biggest issue was with how I handled the image data before feeding it to the neural net.\n\nThank you for all of your suggestions.  ",
      "votes": 5,
      "replies": [
        {
          "id": 2087515,
          "postDate": "2023-01-05T16:36:42.850Z",
          "content": "<p>Give us feedback when you finish training - metrics. How it progress. </p>",
          "rawMarkdown": "Give us feedback when you finish training - metrics. How it progress. "
        },
        {
          "id": 2093873,
          "postDate": "2023-01-10T11:44:38.890Z",
          "content": "<p>Has your score improved? </p>",
          "rawMarkdown": "Has your score improved? ",
          "replies": [
            {
              "id": 2100631,
              "postDate": "2023-01-15T10:08:45.943Z",
              "content": "<p>yep, didn't submit the score yet, but more local CV score improved to 0.15 or so. </p>",
              "rawMarkdown": "yep, didn't submit the score yet, but more local CV score improved to 0.15 or so. "
            }
          ]
        }
      ]
    },
    {
      "id": 2081682,
      "postDate": "2022-12-31T14:02:50Z",
      "content": "<p>Try unweighted BCEloss with 10x upsampling of positives.</p>",
      "rawMarkdown": "Try unweighted BCEloss with 10x upsampling of positives.",
      "votes": 5,
      "replies": [
        {
          "id": 2082657,
          "postDate": "2023-01-01T19:07:26.120Z",
          "content": "<p>Nope. Not really working. stuck at around 0.08 thresholded pfbeta score.</p>",
          "rawMarkdown": "Nope. Not really working. stuck at around 0.08 thresholded pfbeta score."
        }
      ]
    },
    {
      "id": 2100396,
      "postDate": "2023-01-15T06:11:47.327Z",
      "content": "<p>def efficientnet_b4():<br>\n    model = timm.create_model(<br>\n        'efficientnet_b4', pretrained=True, in_chans=3, num_classes=1)<br>\n    return model</p>\n<p>Please set \" pretrained=True\" <br>\nI set it False. I sucked.</p>",
      "rawMarkdown": "def efficientnet_b4():\n    model = timm.create_model(\n        'efficientnet_b4', pretrained=True, in_chans=3, num_classes=1)\n    return model\n\nPlease set \" pretrained=True\" \nI set it False. I sucked.",
      "votes": 1
    },
    {
      "id": 2090106,
      "postDate": "2023-01-06T23:06:27.460Z",
      "content": "<p><a href=\"https://www.kaggle.com/rasmus01610\" target=\"_blank\">@rasmus01610</a> I was having the same issue and in my case I wasn't loading the pretrained weights, and was just training everything from scratch. In some of the shared notebooks you may have to set <code>pretrained=True</code>.</p>",
      "rawMarkdown": "@rasmus01610 I was having the same issue and in my case I wasn't loading the pretrained weights, and was just training everything from scratch. In some of the shared notebooks you may have to set `pretrained=True`.",
      "votes": 1
    },
    {
      "id": 2101254,
      "postDate": "2023-01-15T18:49:15.800Z",
      "content": "<p>Good Job!</p>",
      "rawMarkdown": "Good Job!\n",
      "votes": -1
    },
    {
      "id": 2096391,
      "postDate": "2023-01-12T02:34:39.450Z",
      "content": "<p>Maybe do some hyperparameter tuning and try different learning rates, batch sizes.. <br>\nThere are usually low hanging fruits playing with them..</p>\n<p>The Devastator.</p>",
      "rawMarkdown": "Maybe do some hyperparameter tuning and try different learning rates, batch sizes.. \nThere are usually low hanging fruits playing with them..\n\n\nThe Devastator.\n"
    },
    {
      "id": 2087586,
      "postDate": "2023-01-05T17:34:07.050Z",
      "content": "<p>check if you have equal distribution of cases and controls in each batch. The batch sample may get biased towards the controls.</p>",
      "rawMarkdown": "check if you have equal distribution of cases and controls in each batch. The batch sample may get biased towards the controls."
    },
    {
      "id": 2087097,
      "postDate": "2023-01-05T10:23:56.703Z",
      "content": "<p>What is your batch size?</p>",
      "rawMarkdown": "What is your batch size?",
      "replies": [
        {
          "id": 2087496,
          "postDate": "2023-01-05T16:27:54.817Z",
          "content": "<p>its 32 at 1024x1024.</p>",
          "rawMarkdown": "its 32 at 1024x1024.",
          "replies": [
            {
              "id": 2123474,
              "postDate": "2023-01-31T14:38:28.060Z",
              "content": "<p>How you make it? For 1024 I can reach batch size 4 only here for GPU.</p>",
              "rawMarkdown": "How you make it? For 1024 I can reach batch size 4 only here for GPU."
            },
            {
              "id": 2124572,
              "postDate": "2023-02-01T04:43:40.017Z",
              "content": "<p>It is better to use TPU, and if you want to know how to use it, please have a look at the following kaggle notebook <a href=\"https://www.kaggle.com/code/awsaf49/rsna-bcd-efficientnet-tf-tpu-1vm-train\" target=\"_blank\">https://www.kaggle.com/code/awsaf49/rsna-bcd-efficientnet-tf-tpu-1vm-train</a></p>",
              "rawMarkdown": "It is better to use TPU, and if you want to know how to use it, please have a look at the following kaggle notebook [https://www.kaggle.com/code/awsaf49/rsna-bcd-efficientnet-tf-tpu-1vm-train](https://www.kaggle.com/code/awsaf49/rsna-bcd-efficientnet-tf-tpu-1vm-train)"
            }
          ]
        }
      ]
    },
    {
      "id": 2085680,
      "postDate": "2023-01-04T10:18:58.303Z",
      "content": "<p>is it this reason?<br>\n<img src=\"https://i.imgur.com/EHAeCy9.png\" alt=\"https://i.imgur.com/EHAeCy9.png\"></p>",
      "rawMarkdown": "is it this reason?\n![https://i.imgur.com/EHAeCy9.png](https://i.imgur.com/EHAeCy9.png)",
      "replies": [
        {
          "id": 2087498,
          "postDate": "2023-01-05T16:28:46.243Z",
          "content": "<p>Nope, I use a weighted datasampler that gives me a constant ratio of pos and neg samples.</p>",
          "rawMarkdown": "Nope, I use a weighted datasampler that gives me a constant ratio of pos and neg samples."
        }
      ]
    },
    {
      "id": 2084195,
      "postDate": "2023-01-03T09:18:01.257Z",
      "content": "<p>Hi <a href=\"https://www.kaggle.com/rasmus01610\" target=\"_blank\">@rasmus01610</a>, I have  a similar problem. Have you manage to solve this? </p>",
      "rawMarkdown": "Hi @rasmus01610, I have  a similar problem. Have you manage to solve this? ",
      "replies": [
        {
          "id": 2084595,
          "postDate": "2023-01-03T15:58:38.447Z",
          "content": "<p>not yet. I tried everything. I wrote the whole pipeline in pure pytorch. There seems to be a really subtle bug somewhere. Don't know where my problem is. I'll keep you updated. </p>",
          "rawMarkdown": "not yet. I tried everything. I wrote the whole pipeline in pure pytorch. There seems to be a really subtle bug somewhere. Don't know where my problem is. I'll keep you updated. "
        }
      ]
    }
  ],
  "comments": [
    {
      "id": 2081921,
      "author_name": "Radek Osmulski",
      "author_url": "",
      "post_date": "2022-12-31T20:24:19.920000",
      "content": "<p>hey <a href=\"https://www.kaggle.com/rasmus01610\" target=\"_blank\">@rasmus01610</a>! This competition is quite brutal and unforgiving, there are so many things that can go wrong!</p>\n<p>You might have a bug in the inference pipeline (which is very hard to pick up on), there could be an issue with data preprocessing, etc.</p>\n<p>A pf1 of 0.05 likely means that the model is not learning, the threshold also should generally be much higher. Might be good to introduce another metric such as AUC or precision and recall that would tell you more about the situation. But my guess is that for some reason the model is just not training.</p>\n<p>Impossible to tell what the reason might be. This setting is very tough for CV, so I wouldn't be too hard on yourself 🙂 And in general, starting with a working pipeline really goes a long way. Working on this nearly drove me crazy, but I drawing inspiration and validating my work against some of the published notebooks was very helpful, maybe that is a path worth exploring!</p>\n<p>Wishing you the best of luck with getting your pipeline to work!</p>",
      "votes": 7,
      "replies": [
        {
          "id": 2082656,
          "author_name": "Marius ",
          "author_url": "",
          "post_date": "2023-01-01T19:07:15.633000",
          "content": "<p>Now I'm at the point where I take your notebook and use it to train from scratch, and it still doesn't learn. It is your notebook without any changes. I don't understand the world anymore :D</p>",
          "votes": 2,
          "replies": []
        }
      ]
    },
    {
      "id": 2087510,
      "author_name": "Marius ",
      "author_url": "",
      "post_date": "2023-01-05T16:34:49.613000",
      "content": "<p>I guess I cracked the problem. I rewrote everything in plain pytorch using a weighted sampler, but somehow the biggest impact was that I converted the grayscale images to RGB (3 channels) and I don't normalize them but only scale them to (0,1). Especially the RGB conversion doesn't make any sense in my eyes, but whatever, it trains now. </p>\n<p>I load the pos samples in a ratio of 1/15 and have a pos_weight of 3 for my BCELoss. This trains now normally actually. <br>\nI believe the biggest issue was with how I handled the image data before feeding it to the neural net.</p>\n<p>Thank you for all of your suggestions.  </p>",
      "votes": 5,
      "replies": [
        {
          "id": 2087515,
          "author_name": "Remek Kinas",
          "author_url": "",
          "post_date": "2023-01-05T16:36:42.850000",
          "content": "<p>Give us feedback when you finish training - metrics. How it progress. </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 2093873,
          "author_name": "Zincc",
          "author_url": "",
          "post_date": "2023-01-10T11:44:38.890000",
          "content": "<p>Has your score improved? </p>",
          "votes": 0,
          "replies": [
            {
              "id": 2100631,
              "author_name": "Marius ",
              "author_url": "",
              "post_date": "2023-01-15T10:08:45.943000",
              "content": "<p>yep, didn't submit the score yet, but more local CV score improved to 0.15 or so. </p>",
              "votes": 0,
              "replies": []
            }
          ]
        }
      ]
    },
    {
      "id": 2081682,
      "author_name": "James Howard",
      "author_url": "",
      "post_date": "2022-12-31T14:02:50",
      "content": "<p>Try unweighted BCEloss with 10x upsampling of positives.</p>",
      "votes": 5,
      "replies": [
        {
          "id": 2082657,
          "author_name": "Marius ",
          "author_url": "",
          "post_date": "2023-01-01T19:07:26.120000",
          "content": "<p>Nope. Not really working. stuck at around 0.08 thresholded pfbeta score.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 2100396,
      "author_name": "ChenxiangSun@NJU",
      "author_url": "",
      "post_date": "2023-01-15T06:11:47.327000",
      "content": "<p>def efficientnet_b4():<br>\n    model = timm.create_model(<br>\n        'efficientnet_b4', pretrained=True, in_chans=3, num_classes=1)<br>\n    return model</p>\n<p>Please set \" pretrained=True\" <br>\nI set it False. I sucked.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 2090106,
      "author_name": "JJ",
      "author_url": "",
      "post_date": "2023-01-06T23:06:27.460000",
      "content": "<p><a href=\"https://www.kaggle.com/rasmus01610\" target=\"_blank\">@rasmus01610</a> I was having the same issue and in my case I wasn't loading the pretrained weights, and was just training everything from scratch. In some of the shared notebooks you may have to set <code>pretrained=True</code>.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 2101254,
      "author_name": "Elham Jahanbakhsh",
      "author_url": "",
      "post_date": "2023-01-15T18:49:15.800000",
      "content": "<p>Good Job!</p>",
      "votes": -1,
      "replies": []
    },
    {
      "id": 2096391,
      "author_name": "The Devastator",
      "author_url": "",
      "post_date": "2023-01-12T02:34:39.450000",
      "content": "<p>Maybe do some hyperparameter tuning and try different learning rates, batch sizes.. <br>\nThere are usually low hanging fruits playing with them..</p>\n<p>The Devastator.</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 2087586,
      "author_name": "dhinesh",
      "author_url": "",
      "post_date": "2023-01-05T17:34:07.050000",
      "content": "<p>check if you have equal distribution of cases and controls in each batch. The batch sample may get biased towards the controls.</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 2087097,
      "author_name": "Pranay Barkataki",
      "author_url": "",
      "post_date": "2023-01-05T10:23:56.703000",
      "content": "<p>What is your batch size?</p>",
      "votes": 0,
      "replies": [
        {
          "id": 2087496,
          "author_name": "Marius ",
          "author_url": "",
          "post_date": "2023-01-05T16:27:54.817000",
          "content": "<p>its 32 at 1024x1024.</p>",
          "votes": 0,
          "replies": [
            {
              "id": 2123474,
              "author_name": "Igor Litvin",
              "author_url": "",
              "post_date": "2023-01-31T14:38:28.060000",
              "content": "<p>How you make it? For 1024 I can reach batch size 4 only here for GPU.</p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 2124572,
              "author_name": "Pranay Barkataki",
              "author_url": "",
              "post_date": "2023-02-01T04:43:40.017000",
              "content": "<p>It is better to use TPU, and if you want to know how to use it, please have a look at the following kaggle notebook <a href=\"https://www.kaggle.com/code/awsaf49/rsna-bcd-efficientnet-tf-tpu-1vm-train\" target=\"_blank\">https://www.kaggle.com/code/awsaf49/rsna-bcd-efficientnet-tf-tpu-1vm-train</a></p>",
              "votes": 0,
              "replies": []
            }
          ]
        }
      ]
    },
    {
      "id": 2085680,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2023-01-04T10:18:58.303000",
      "content": "<p>is it this reason?<br>\n<img src=\"https://i.imgur.com/EHAeCy9.png\" alt=\"https://i.imgur.com/EHAeCy9.png\"></p>",
      "votes": 0,
      "replies": [
        {
          "id": 2087498,
          "author_name": "Marius ",
          "author_url": "",
          "post_date": "2023-01-05T16:28:46.243000",
          "content": "<p>Nope, I use a weighted datasampler that gives me a constant ratio of pos and neg samples.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 2084195,
      "author_name": "Zincc",
      "author_url": "",
      "post_date": "2023-01-03T09:18:01.257000",
      "content": "<p>Hi <a href=\"https://www.kaggle.com/rasmus01610\" target=\"_blank\">@rasmus01610</a>, I have  a similar problem. Have you manage to solve this? </p>",
      "votes": 0,
      "replies": [
        {
          "id": 2084595,
          "author_name": "Marius ",
          "author_url": "",
          "post_date": "2023-01-03T15:58:38.447000",
          "content": "<p>not yet. I tried everything. I wrote the whole pipeline in pure pytorch. There seems to be a really subtle bug somewhere. Don't know where my problem is. I'll keep you updated. </p>",
          "votes": 0,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "2081670": "Hey there!\n\nUnfortunately I'm stuck with my work at a pf1 score of 0.04 - 0.05, although I think I did everything I should do with the problem. \n\nI'm using fastai. I'm using grouped stratified kfold (5 splits) for my folds. I'm training on 512x512 images, upsampling the positive class 3x, training an efficientnet_b2 with weighted BCELoss (positive_weight=20) and a learning rate of 1e-3 - 1e-5 (tried everything). \n\nThat's exactly what e.g. Radek did in his notebook or what others have also reported.\n\nFrom what I read I should be able to get an thresholded pf1 score of around 0.2 with 512x512 images, but I'm still stuck at 0.05, with thresholding maybe 0.07, but not more.\n\nDo you have any tips for me?\n\nThanks in advance",
    "2081921": "hey @rasmus01610! This competition is quite brutal and unforgiving, there are so many things that can go wrong!\n\nYou might have a bug in the inference pipeline (which is very hard to pick up on), there could be an issue with data preprocessing, etc.\n\nA pf1 of 0.05 likely means that the model is not learning, the threshold also should generally be much higher. Might be good to introduce another metric such as AUC or precision and recall that would tell you more about the situation. But my guess is that for some reason the model is just not training.\n\nImpossible to tell what the reason might be. This setting is very tough for CV, so I wouldn't be too hard on yourself 🙂 And in general, starting with a working pipeline really goes a long way. Working on this nearly drove me crazy, but I drawing inspiration and validating my work against some of the published notebooks was very helpful, maybe that is a path worth exploring!\n\nWishing you the best of luck with getting your pipeline to work!",
    "2087510": "I guess I cracked the problem. I rewrote everything in plain pytorch using a weighted sampler, but somehow the biggest impact was that I converted the grayscale images to RGB (3 channels) and I don't normalize them but only scale them to (0,1). Especially the RGB conversion doesn't make any sense in my eyes, but whatever, it trains now. \n\nI load the pos samples in a ratio of 1/15 and have a pos_weight of 3 for my BCELoss. This trains now normally actually. \nI believe the biggest issue was with how I handled the image data before feeding it to the neural net.\n\nThank you for all of your suggestions.  ",
    "2081682": "Try unweighted BCEloss with 10x upsampling of positives.",
    "2100396": "def efficientnet_b4():\n    model = timm.create_model(\n        'efficientnet_b4', pretrained=True, in_chans=3, num_classes=1)\n    return model\n\nPlease set \" pretrained=True\" \nI set it False. I sucked.",
    "2090106": "@rasmus01610 I was having the same issue and in my case I wasn't loading the pretrained weights, and was just training everything from scratch. In some of the shared notebooks you may have to set `pretrained=True`.",
    "2101254": "Good Job!\n",
    "2096391": "Maybe do some hyperparameter tuning and try different learning rates, batch sizes.. \nThere are usually low hanging fruits playing with them..\n\n\nThe Devastator.\n",
    "2087586": "check if you have equal distribution of cases and controls in each batch. The batch sample may get biased towards the controls.",
    "2087097": "What is your batch size?",
    "2085680": "is it this reason?\n![https://i.imgur.com/EHAeCy9.png](https://i.imgur.com/EHAeCy9.png)",
    "2084195": "Hi @rasmus01610, I have  a similar problem. Have you manage to solve this? "
  }
}