{
  "id": 110221,
  "title": "Best Single Model",
  "url": "/competitions/rsna-intracranial-hemorrhage-detection/discussion/110221",
  "author_name": "Tim Yee",
  "post_date": "2019-09-26T02:40:36.080000",
  "votes": 56,
  "comment_count": 268,
  "views": 0,
  "content": "<p>Just a running thread of your best single model LB score. I will update weekly. Please share! \n<br></p>\n\n<p>Sept 25: EfficientNet B1 224x224 - 0.098\nSept 26: EfficientNet B0 224x224 - 0.093\nOct 24: EfficientNet B0 512x512- 0.076</p>",
  "messages": [
    {
      "id": 634193,
      "postDate": "2019-09-26T02:40:36.080Z",
      "content": "<p>Just a running thread of your best single model LB score. I will update weekly. Please share! \n<br></p>\n\n<p>Sept 25: EfficientNet B1 224x224 - 0.098\nSept 26: EfficientNet B0 224x224 - 0.093\nOct 24: EfficientNet B0 512x512- 0.076</p>",
      "rawMarkdown": "Just a running thread of your best single model LB score. I will update weekly. Please share! \n<br>\n\nSept 25: EfficientNet B1 224x224 - 0.098\nSept 26: EfficientNet B0 224x224 - 0.093\nOct 24: EfficientNet B0 512x512- 0.076",
      "votes": 56
    },
    {
      "id": 651862,
      "postDate": "2019-10-18T02:58:39.550Z",
      "content": "<p>Single-fold SE ResNext50, 512x512 raw HU image: lb 0.066 w/o tta</p>",
      "rawMarkdown": "Single-fold SE ResNext50, 512x512 raw HU image: lb 0.066 w/o tta",
      "votes": 16,
      "replies": [
        {
          "id": 652087,
          "postDate": "2019-10-18T10:26:30.510Z",
          "content": "<p><a href=\"/andy2709\">@andy2709</a> Nice result! You're not using any windows? How many epochs? I tried using raw dicom, converted to float and divided by max int16 value, but wasn't able to get improvements in score. I used much simpler architecture though.</p>",
          "rawMarkdown": "@andy2709 Nice result! You're not using any windows? How many epochs? I tried using raw dicom, converted to float and divided by max int16 value, but wasn't able to get improvements in score. I used much simpler architecture though."
        },
        {
          "id": 652513,
          "postDate": "2019-10-19T00:45:18.473Z",
          "content": "<p>I plugged in a trainable module (reference here: <a href=\"https://arxiv.org/pdf/1812.00572.pdf\">https://arxiv.org/pdf/1812.00572.pdf</a>, the sigmoid one) to transform the raw hu into relevant windows.\n1 epoch took 45 mins on a v100 and i trained for 30 epochs. Data sampling is the key here :)</p>",
          "rawMarkdown": "I plugged in a trainable module (reference here: https://arxiv.org/pdf/1812.00572.pdf, the sigmoid one) to transform the raw hu into relevant windows.\n1 epoch took 45 mins on a v100 and i trained for 30 epochs. Data sampling is the key here :)",
          "votes": 9
        },
        {
          "id": 652813,
          "postDate": "2019-10-19T12:59:08.417Z",
          "content": "<p>Really interesting idea thanks for sharing the link :) </p>",
          "rawMarkdown": "Really interesting idea thanks for sharing the link :) "
        },
        {
          "id": 655738,
          "postDate": "2019-10-23T12:53:21.243Z",
          "content": "<p>hello, I want to know how you used the trainable module, the Nan would occur when I added the module? </p>",
          "rawMarkdown": "hello, I want to know how you used the trainable module, the Nan would occur when I added the module? "
        },
        {
          "id": 656392,
          "postDate": "2019-10-24T07:46:39.317Z",
          "content": "<p>Interesting Paper. Thanks for sharing!\nOut of curiosity: what kind of windows did the Window Optimization layer learn to use in your case?</p>",
          "rawMarkdown": "Interesting Paper. Thanks for sharing!\nOut of curiosity: what kind of windows did the Window Optimization layer learn to use in your case?"
        },
        {
          "id": 656763,
          "postDate": "2019-10-24T15:38:31.433Z",
          "rawMarkdown": "",
          "isDeleted": true
        },
        {
          "id": 656776,
          "postDate": "2019-10-24T15:55:52.120Z",
          "content": "<p><a href=\"/lw827380444\">@lw827380444</a>  I transformed the DICOM arrays into HU images using the rescale intercept and slope before passing it into the module. I never encountered nan when training with different architectures.</p>\n\n<p><a href=\"/ambpro\">@ambpro</a> Here's my implementation,  with different weight init. from the original paper's repo. I inserted this module right before any pretrained ImageNet model and it worked pretty well for me.</p>\n\n<p>```\nfrom collections import OrderedDict\nimport math \nimport torch \nimport torch.nn as nn </p>\n\n<p>def get_init_conv_params_sigmoid(ww, wl, smooth=1., upbound_value=255.):\n    w = 2./ww * math.log(upbound_value/smooth - 1.)\n    b = -2.*wl/ww * math.log(upbound_value/smooth - 1.)\n    return (w, b)\n<code>\n</code>\nclass WSO(nn.Module):\n    def <strong>init</strong>(self,  <code>windows=OrderedDict({\n            'brain': {'W': 80, 'L': 40},\n            'subdural': {'W': 215, 'L': 75},\n            'bony': {'W': 2800, 'L': 600},\n            'tissue': {'W': 375, 'L': 40},\n            })</code>, U=255., eps=1.):\n        super(WSO, self).<strong>init</strong>()\n        self.windows = windows\n        self.U = U\n        self.eps = eps\n        self.conv1x1 = nn.Conv2d(1, len(windows), kernel_size=1, stride=1, padding=0)\n        self.bn = nn.BatchNorm2d(len(windows)\n        nn.init.ones_(self.conv1x1.weight.data)\n        nn.init.zeros_(self.conv1x1.bias.data)\n        nn.init.ones_(self.bn.weight.data)\n        nn.init.zeros_(self.bn.bias.data)\n        weight, bias = self._get_window_params()\n        self.register_buffer(\"weight\", weight)\n        self.register_buffer(\"bias\", bias)</p>\n\n<pre><code>def _get_window_params(self):\n    weight = []\n    bias = []\n    for _, window in self.windows.items():\n        ww, wl = window[\"W\"], window[\"L\"]\n        w, b = get_init_conv_params_sigmoid(ww, wl, self.eps, self.U)\n        weight.append(w)\n        bias.append(b)\n    weight = torch.as_tensor(weight)\n    bias = torch.as_tensor(bias)\n    # print(weight, bias)\n    return weight, bias\n\ndef forward(self, x):\n    x = self.conv1x1(x)\n    if x.dtype == torch.float16:\n        self.weight = self.weight.half()\n        self.bias = self.bias.half()\n    x = x.mul(self.weight[None, :, None, None]) + self.bias[None, :, None, None]\n    x = torch.sigmoid(x)\n    x = x.mul(self.U)\n    x = self.bn(x)\n    return x\n</code></pre>\n\n<p>```</p>",
          "rawMarkdown": "@lw827380444  I transformed the DICOM arrays into HU images using the rescale intercept and slope before passing it into the module. I never encountered nan when training with different architectures.\n\n@ambpro Here's my implementation,  with different weight init. from the original paper's repo. I inserted this module right before any pretrained ImageNet model and it worked pretty well for me.\n\n```\nfrom collections import OrderedDict\nimport math \nimport torch \nimport torch.nn as nn \n\ndef get_init_conv_params_sigmoid(ww, wl, smooth=1., upbound_value=255.):\n    w = 2./ww * math.log(upbound_value/smooth - 1.)\n    b = -2.*wl/ww * math.log(upbound_value/smooth - 1.)\n    return (w, b)\n```\n```\nclass WSO(nn.Module):\n    def __init__(self,  `windows=OrderedDict({\n            'brain': {'W': 80, 'L': 40},\n            'subdural': {'W': 215, 'L': 75},\n            'bony': {'W': 2800, 'L': 600},\n            'tissue': {'W': 375, 'L': 40},\n            })`, U=255., eps=1.):\n        super(WSO, self).__init__()\n        self.windows = windows\n        self.U = U\n        self.eps = eps\n        self.conv1x1 = nn.Conv2d(1, len(windows), kernel_size=1, stride=1, padding=0)\n        self.bn = nn.BatchNorm2d(len(windows)\n        nn.init.ones_(self.conv1x1.weight.data)\n        nn.init.zeros_(self.conv1x1.bias.data)\n        nn.init.ones_(self.bn.weight.data)\n        nn.init.zeros_(self.bn.bias.data)\n        weight, bias = self._get_window_params()\n        self.register_buffer(\"weight\", weight)\n        self.register_buffer(\"bias\", bias)\n\n    def _get_window_params(self):\n        weight = []\n        bias = []\n        for _, window in self.windows.items():\n            ww, wl = window[\"W\"], window[\"L\"]\n            w, b = get_init_conv_params_sigmoid(ww, wl, self.eps, self.U)\n            weight.append(w)\n            bias.append(b)\n        weight = torch.as_tensor(weight)\n        bias = torch.as_tensor(bias)\n        # print(weight, bias)\n        return weight, bias\n\n    def forward(self, x):\n        x = self.conv1x1(x)\n        if x.dtype == torch.float16:\n            self.weight = self.weight.half()\n            self.bias = self.bias.half()\n        x = x.mul(self.weight[None, :, None, None]) + self.bias[None, :, None, None]\n        x = torch.sigmoid(x)\n        x = x.mul(self.U)\n        x = self.bn(x)\n        return x\n```",
          "votes": 13
        },
        {
          "id": 657763,
          "postDate": "2019-10-25T12:13:42.737Z",
          "content": "<p>Sorry, I had a question, that is there are some differences between your implementation and original codes in keras? Maybe, the weight and bias in WSO should be from conv1x1, but you have set the new weight and bias? please give me some instructions if possible? Thanks for your sharing!</p>",
          "rawMarkdown": "Sorry, I had a question, that is there are some differences between your implementation and original codes in keras? Maybe, the weight and bias in WSO should be from conv1x1, but you have set the new weight and bias? please give me some instructions if possible? Thanks for your sharing!"
        },
        {
          "id": 659765,
          "postDate": "2019-10-28T08:35:45.457Z",
          "content": "<p>I think it's equivalent, slightly less efficient as both 1x1 conv and additional linear transformation used. It's also possible to directly initialize 1x1 conv with similar result.</p>",
          "rawMarkdown": "I think it's equivalent, slightly less efficient as both 1x1 conv and additional linear transformation used. It's also possible to directly initialize 1x1 conv with similar result.",
          "votes": 1
        },
        {
          "id": 660142,
          "postDate": "2019-10-28T18:45:51.387Z",
          "content": "<p>To echo what <a href=\"/dmytropoplavskiy\">@dmytropoplavskiy</a> said , I have mistakenly applied linear transformation twice.  Thank you guys for helping me correct it 😄. \nIn the new code, I just initialized the weight and bias of the conv1x1 with the values obtained from equation (2) in the paper:</p>\n\n<p>```\n        self.windows = windows\n        self.U = U\n        self.eps = eps\n        self.conv1x1 = nn.Conv2d(1, len(windows), kernel_size=1, stride=1, padding=0)</p>\n\n<pre><code>    weight, bias = self._get_window_params()\n    self.conv1x1.weight.data = weight[:, None, None, None]\n    self.conv1x1.bias.data = bias\n\ndef _get_window_params(self):\n    weight = []\n    bias = []\n    for _, window in self.windows.items():\n        ww, wl = window[\"W\"], window[\"L\"]\n        w, b = get_init_conv_params_sigmoid(ww, wl, self.eps, self.U)\n        weight.append(w)\n        bias.append(b)\n    weight = torch.as_tensor(weight)\n    bias = torch.as_tensor(bias)\n    # print(weight, bias)\n    return weight, bias\n\ndef forward(self, x):\n    x = self.conv1x1(x)\n    x = torch.sigmoid(x)\n    x = x.mul(self.U)\n    return x\n</code></pre>\n\n<p>```</p>\n\n<p>I re-ran two experiments with the old and new WSO module (same training configs, ResNet18 etc) and observed that the results were similar (difference of 1e-4).</p>",
          "rawMarkdown": "To echo what @dmytropoplavskiy said , I have mistakenly applied linear transformation twice.  Thank you guys for helping me correct it 😄. \nIn the new code, I just initialized the weight and bias of the conv1x1 with the values obtained from equation (2) in the paper:\n\n```\n        self.windows = windows\n        self.U = U\n        self.eps = eps\n        self.conv1x1 = nn.Conv2d(1, len(windows), kernel_size=1, stride=1, padding=0)\n        \n        weight, bias = self._get_window_params()\n        self.conv1x1.weight.data = weight[:, None, None, None]\n        self.conv1x1.bias.data = bias\n\n    def _get_window_params(self):\n        weight = []\n        bias = []\n        for _, window in self.windows.items():\n            ww, wl = window[\"W\"], window[\"L\"]\n            w, b = get_init_conv_params_sigmoid(ww, wl, self.eps, self.U)\n            weight.append(w)\n            bias.append(b)\n        weight = torch.as_tensor(weight)\n        bias = torch.as_tensor(bias)\n        # print(weight, bias)\n        return weight, bias\n\n    def forward(self, x):\n        x = self.conv1x1(x)\n        x = torch.sigmoid(x)\n        x = x.mul(self.U)\n        return x\n```\n\nI re-ran two experiments with the old and new WSO module (same training configs, ResNet18 etc) and observed that the results were similar (difference of 1e-4).",
          "votes": 3
        },
        {
          "id": 662726,
          "postDate": "2019-10-31T23:11:50.810Z",
          "content": "<p>Hi, I see the WSO model generate in output a [4,512,512] but the net you use (SE ResNext50) require in input  [3,512,512] how did you connect the two ?</p>",
          "rawMarkdown": "Hi, I see the WSO model generate in output a [4,512,512] but the net you use (SE ResNext50) require in input  [3,512,512] how did you connect the two ?",
          "votes": 1
        }
      ]
    },
    {
      "id": 659411,
      "postDate": "2019-10-27T16:02:06.410Z",
      "content": "<p>Resnet34 with modifications, 256 image size, 0.062 LB</p>",
      "rawMarkdown": "Resnet34 with modifications, 256 image size, 0.062 LB",
      "votes": 9,
      "replies": [
        {
          "id": 659431,
          "postDate": "2019-10-27T16:57:20.930Z",
          "content": "<p>Single fold?</p>",
          "rawMarkdown": "Single fold?"
        },
        {
          "id": 659467,
          "postDate": "2019-10-27T18:04:00.593Z",
          "content": "<p>That's a great score! What windowing, if any, you used, if you don't mind me asking?</p>",
          "rawMarkdown": "That's a great score! What windowing, if any, you used, if you don't mind me asking?"
        },
        {
          "id": 659571,
          "postDate": "2019-10-27T23:11:16.423Z",
          "content": "<p><a href=\"/yaroshevskiy\">@yaroshevskiy</a>  Great! How many epochs do you train? Do you use fine tuning or transfer learning directly? Single fold?</p>",
          "rawMarkdown": "@yaroshevskiy  Great! How many epochs do you train? Do you use fine tuning or transfer learning directly? Single fold?"
        },
        {
          "id": 659972,
          "postDate": "2019-10-28T14:08:21.060Z",
          "content": "<p>not a single fold, imagenet pretrained, 20-30 epochs</p>",
          "rawMarkdown": "not a single fold, imagenet pretrained, 20-30 epochs"
        }
      ]
    },
    {
      "id": 636257,
      "postDate": "2019-09-29T05:58:10.133Z",
      "content": "<p>size 224x224, model: inceptionV3, single fold --&gt; LB 0.079</p>",
      "rawMarkdown": "size 224x224, model: inceptionV3, single fold --&gt; LB 0.079",
      "votes": 9,
      "replies": [
        {
          "id": 636564,
          "postDate": "2019-09-29T19:30:15.190Z",
          "content": "<p>Thanks for your sharing! How many epoch do you use for training!</p>",
          "rawMarkdown": "Thanks for your sharing! How many epoch do you use for training!"
        },
        {
          "id": 636658,
          "postDate": "2019-09-30T01:58:41.140Z",
          "content": "<p>I trained the network for 20 epochs with Adam optimizer and one cycle learning rate schedule.</p>",
          "rawMarkdown": "I trained the network for 20 epochs with Adam optimizer and one cycle learning rate schedule.",
          "votes": 3
        },
        {
          "id": 636664,
          "postDate": "2019-09-30T02:29:15.783Z",
          "content": "<p>How long did it take for your model to go through 20 epochs?</p>",
          "rawMarkdown": "How long did it take for your model to go through 20 epochs?"
        },
        {
          "id": 636666,
          "postDate": "2019-09-30T02:35:57.663Z",
          "content": "<p>It took about 35 mins/epoch to run my code (written in Keras) on my local server. With the same idea + same hardware, you can reduce the time to 20 mins/epoch using PyTorch + mixed-precision training (Apex)</p>",
          "rawMarkdown": "It took about 35 mins/epoch to run my code (written in Keras) on my local server. With the same idea + same hardware, you can reduce the time to 20 mins/epoch using PyTorch + mixed-precision training (Apex)",
          "votes": 3
        },
        {
          "id": 636715,
          "postDate": "2019-09-30T05:07:39.787Z",
          "content": "<p><a href=\"/mathormad\">@mathormad</a>  Thank you for your sharing! I have a question that did you face with overfitting problem! My model trained in all train dataset and when I trained it over 10 or more, my score just down.</p>",
          "rawMarkdown": "@mathormad  Thank you for your sharing! I have a question that did you face with overfitting problem! My model trained in all train dataset and when I trained it over 10 or more, my score just down."
        },
        {
          "id": 637601,
          "postDate": "2019-10-01T06:41:18.937Z",
          "content": "<p>hi <a href=\"/linhlpv\">@linhlpv</a> , to avoid overfitting you should split the data to training set and validation set, then monitor the loss function of the validation set, pick the best weight and predict on the test set.</p>",
          "rawMarkdown": "hi @linhlpv , to avoid overfitting you should split the data to training set and validation set, then monitor the loss function of the validation set, pick the best weight and predict on the test set.",
          "votes": 1
        },
        {
          "id": 638379,
          "postDate": "2019-10-01T20:58:35.947Z",
          "content": "<p>May I ask what are u using as loss function and how do you make ur epoch run so fast? My best model at the moment (Xception) can run maximum 3 epochs, even though I only tried 2 epochs till now...</p>",
          "rawMarkdown": "May I ask what are u using as loss function and how do you make ur epoch run so fast? My best model at the moment (Xception) can run maximum 3 epochs, even though I only tried 2 epochs till now...",
          "votes": 2
        },
        {
          "id": 638857,
          "postDate": "2019-10-02T13:52:44.490Z",
          "content": "<p>hi <a href=\"/mathormad\">@mathormad</a> Thank you for your suggestion. I see that you said your model just take 35 mins per epoch.  How do you make your model run so fast? I have 4 GPUs 1080TI and I am using Resnet 50 and mixed-precision training for training in whole trainset and it takes me about 2 hours per epoch. Please help me! Thank you so much!</p>",
          "rawMarkdown": "hi @mathormad Thank you for your suggestion. I see that you said your model just take 35 mins per epoch.  How do you make your model run so fast? I have 4 GPUs 1080TI and I am using Resnet 50 and mixed-precision training for training in whole trainset and it takes me about 2 hours per epoch. Please help me! Thank you so much!"
        },
        {
          "id": 638922,
          "postDate": "2019-10-02T15:07:25.587Z",
          "content": "<p><a href=\"/linhlpv\">@linhlpv</a>  What image size are you using? Are you loading Dicom files?</p>",
          "rawMarkdown": "@linhlpv  What image size are you using? Are you loading Dicom files?"
        },
        {
          "id": 638997,
          "postDate": "2019-10-02T16:51:19.217Z",
          "content": "<p><a href=\"/drhabib\">@drhabib</a>  I use 224x224 image size and image from png file. My code apply multi GPUs and Apex bellow:\n<code>model, optimizer = amp.initialize(model, optimizer, opt_level=\"O1\")</code>\n <code>if torch.cuda.device_count() &amp;gt; 1:</code>\n          <code>print(\"Let's use\", torch.cuda.device_count(), \"GPUs!\")</code>\n          <code>model = nn.DataParallel(model)</code></p>",
          "rawMarkdown": "@drhabib  I use 224x224 image size and image from png file. My code apply multi GPUs and Apex bellow:\n`model, optimizer = amp.initialize(model, optimizer, opt_level=\"O1\")`\n `if torch.cuda.device_count() &gt; 1:`\n          `print(\"Let's use\", torch.cuda.device_count(), \"GPUs!\")`\n          `model = nn.DataParallel(model)`"
        },
        {
          "id": 639016,
          "postDate": "2019-10-02T17:09:56.307Z",
          "content": "<p>How many epochs?</p>",
          "rawMarkdown": "How many epochs?"
        },
        {
          "id": 639020,
          "postDate": "2019-10-02T17:16:02.963Z",
          "content": "<p><a href=\"/synysterjeet\">@synysterjeet</a>  I just train 3 to 5 epoch. Because training one epoch took me 2 hours :(. I dont know how it so slow. I train in whole dataset</p>",
          "rawMarkdown": "@synysterjeet  I just train 3 to 5 epoch. Because training one epoch took me 2 hours :(. I dont know how it so slow. I train in whole dataset"
        },
        {
          "id": 639184,
          "postDate": "2019-10-02T21:14:07.240Z",
          "content": "<p><a href=\"/linhlpv\">@linhlpv</a> , try these:\n- Check your CPU/GPU load. Can your CPUs load enough images to your GPU. \n- All (most) of your cores are working?!\n- Some of the transformations are slow, add them one by one.\n- Try a bigger batch size (increased accumulation steps).\n- Some preprocessing techniques usually help. (save as Numpy arrays instead of PNGs; int16 instead of float32)</p>",
          "rawMarkdown": "@linhlpv , try these:\n- Check your CPU/GPU load. Can your CPUs load enough images to your GPU. \n- All (most) of your cores are working?!\n- Some of the transformations are slow, add them one by one.\n- Try a bigger batch size (increased accumulation steps).\n- Some preprocessing techniques usually help. (save as Numpy arrays instead of PNGs; int16 instead of float32)\n",
          "votes": 5
        },
        {
          "id": 639298,
          "postDate": "2019-10-03T03:32:32.783Z",
          "content": "<p>Hi <a href=\"/pestipeti\">@pestipeti</a>, thank you for mention me! I will try it and update results.</p>",
          "rawMarkdown": "Hi @pestipeti, thank you for mention me! I will try it and update results."
        },
        {
          "id": 639636,
          "postDate": "2019-10-03T12:25:22.800Z",
          "content": "<p>Please enlighten us when you find which of these sugestions speed up the process.</p>",
          "rawMarkdown": "Please enlighten us when you find which of these sugestions speed up the process.",
          "votes": 1
        },
        {
          "id": 640803,
          "postDate": "2019-10-04T08:42:14.323Z",
          "content": "<p>When I tried using more core CPUs in dataloader, I got my model run 2 faster than old version. But when I tried using bigger batch size, I got a problem that estimate time is not stable, it something was 1h30, sometime was 30 minutes. I dont know why and I am searching and try to fix that. Anyone has some ideas. Please tell my how to fix it.\nMy num_workers I used:\n<code>num_workers=os.cpu_count()*2</code></p>",
          "rawMarkdown": "When I tried using more core CPUs in dataloader, I got my model run 2 faster than old version. But when I tried using bigger batch size, I got a problem that estimate time is not stable, it something was 1h30, sometime was 30 minutes. I dont know why and I am searching and try to fix that. Anyone has some ideas. Please tell my how to fix it.\nMy num_workers I used:\n`num_workers=os.cpu_count()*2`"
        },
        {
          "id": 640842,
          "postDate": "2019-10-04T09:09:54.080Z",
          "content": "<p><a href=\"/linhlpv\">@linhlpv</a> \nHard to say, but my bet is augmentation. It is random, and there are a few computationally heavy transformation. And if you use all of your cores for data loading, then every transformation has to wait for CPU. Try <code>num_workers=os.cpu_count()*2 - 1</code> (or -2)\nProbably, you have to optimize your code a bit too. Especially when and how you move your data between the GPU and the CPU. Try some different settings, you will find the optimal, I am sure.</p>",
          "rawMarkdown": "@linhlpv \nHard to say, but my bet is augmentation. It is random, and there are a few computationally heavy transformation. And if you use all of your cores for data loading, then every transformation has to wait for CPU. Try `num_workers=os.cpu_count()*2 - 1` (or -2)\nProbably, you have to optimize your code a bit too. Especially when and how you move your data between the GPU and the CPU. Try some different settings, you will find the optimal, I am sure.",
          "votes": 2
        },
        {
          "id": 640871,
          "postDate": "2019-10-04T09:31:33.450Z",
          "content": "<p><a href=\"/pestipeti\">@pestipeti</a> \nThank you for your suggestion! I will try more setting and optimize my code. And I will post result when I find something good for speed up code!</p>",
          "rawMarkdown": "@pestipeti \nThank you for your suggestion! I will try more setting and optimize my code. And I will post result when I find something good for speed up code!"
        }
      ]
    },
    {
      "id": 634491,
      "postDate": "2019-09-26T11:13:11.197Z",
      "content": "<p>Custom model -- 0.069  </p>",
      "rawMarkdown": "Custom model -- 0.069  ",
      "votes": 8,
      "replies": [
        {
          "id": 634521,
          "postDate": "2019-09-26T11:57:36.373Z",
          "content": "<p>Just to be sure , this is a single model and not an ensemble?</p>",
          "rawMarkdown": "Just to be sure , this is a single model and not an ensemble?",
          "votes": 2
        },
        {
          "id": 634528,
          "postDate": "2019-09-26T12:10:34.063Z",
          "content": "<p>single fold without any ensembling :) </p>",
          "rawMarkdown": "single fold without any ensembling :) ",
          "votes": 4
        },
        {
          "id": 634660,
          "postDate": "2019-09-26T15:13:14.367Z",
          "content": "<p>is your custom pretrained on any external data or from scratch. Or you changed part of the pretrained model and called it custom</p>",
          "rawMarkdown": "is your custom pretrained on any external data or from scratch. Or you changed part of the pretrained model and called it custom",
          "votes": 1
        },
        {
          "id": 634668,
          "postDate": "2019-09-26T15:34:35.683Z",
          "content": "<p>Why don't you just ask for the source code?</p>",
          "rawMarkdown": "Why don't you just ask for the source code?",
          "votes": -9
        },
        {
          "id": 634693,
          "postDate": "2019-09-26T16:15:35.677Z",
          "content": "<p><a href=\"/julianmukaj\">@julianmukaj</a> I find your comment rude. I asked a question and it's on <a href=\"/igorkrashenyi\">@igorkrashenyi</a> to decide whether to answer it. </p>\n\n<p>Answer to the question will not reveal his solution. Not answering it is also fine. </p>",
          "rawMarkdown": "@julianmukaj I find your comment rude. I asked a question and it's on @igorkrashenyi to decide whether to answer it. \n\nAnswer to the question will not reveal his solution. Not answering it is also fine. ",
          "votes": 4
        },
        {
          "id": 634799,
          "postDate": "2019-09-26T19:13:06.757Z",
          "content": "<p>ImagNet pre-trained with modifications </p>",
          "rawMarkdown": "ImagNet pre-trained with modifications ",
          "votes": 4
        },
        {
          "id": 636011,
          "postDate": "2019-09-28T15:36:38.237Z",
          "content": "<p>Hi,\nwhat input image size you used ? did you used the full number of images of just a sub portion ? </p>",
          "rawMarkdown": "Hi,\nwhat input image size you used ? did you used the full number of images of just a sub portion ? ",
          "votes": 1
        },
        {
          "id": 636271,
          "postDate": "2019-09-29T06:51:13.253Z",
          "content": "<p>512x512 resolution and the full dataset</p>",
          "rawMarkdown": "512x512 resolution and the full dataset",
          "votes": 4
        },
        {
          "id": 641886,
          "postDate": "2019-10-05T09:12:36.920Z",
          "rawMarkdown": "",
          "votes": 1,
          "isDeleted": true
        },
        {
          "id": 642728,
          "postDate": "2019-10-06T14:45:09.547Z",
          "content": "<p>About 2.5 days using 4x2080ti and Apex </p>",
          "rawMarkdown": "About 2.5 days using 4x2080ti and Apex ",
          "votes": 3
        },
        {
          "id": 646043,
          "postDate": "2019-10-10T19:20:03.307Z",
          "content": "<p><a href=\"/igorkrashenyi\">@igorkrashenyi</a> Are you running Apex on windows? Running into installation issues for Apex. I have pytorch installed on windows and it can train no prob.</p>",
          "rawMarkdown": "@igorkrashenyi Are you running Apex on windows? Running into installation issues for Apex. I have pytorch installed on windows and it can train no prob."
        },
        {
          "id": 647703,
          "postDate": "2019-10-13T05:39:20.960Z",
          "content": "<p>I tried running Apex on Windows before and it wasn't fully supported by NVIDIA. Eventually I just resorted to Ubuntu</p>",
          "rawMarkdown": "I tried running Apex on Windows before and it wasn't fully supported by NVIDIA. Eventually I just resorted to Ubuntu",
          "votes": 1
        }
      ]
    },
    {
      "id": 646930,
      "postDate": "2019-10-11T22:30:14.243Z",
      "content": "<p>.073 is achievable with b0 224x224. I grouped on patient and used some tricks, though</p>",
      "rawMarkdown": ".073 is achievable with b0 224x224. I grouped on patient and used some tricks, though",
      "votes": 7,
      "replies": [
        {
          "id": 646946,
          "postDate": "2019-10-11T23:03:12.300Z",
          "content": "<p>Have you solved local/LB correlation problem, by the way?</p>",
          "rawMarkdown": "Have you solved local/LB correlation problem, by the way?"
        },
        {
          "id": 647044,
          "postDate": "2019-10-12T02:10:43.110Z",
          "content": "<p><a href=\"/cateek\">@cateek</a> Solved it via grouping via patients. I think this is very important for establishing reliable validation score, though I have not done any control experiments. Right now I have another problem which is that my val loss is much greater than my LB (.0814 v. .073)</p>",
          "rawMarkdown": "@cateek Solved it via grouping via patients. I think this is very important for establishing reliable validation score, though I have not done any control experiments. Right now I have another problem which is that my val loss is much greater than my LB (.0814 v. .073)",
          "votes": 4
        },
        {
          "id": 648205,
          "postDate": "2019-10-13T21:33:21.767Z",
          "content": "<p>Very interesting! I think I got it, I will test</p>",
          "rawMarkdown": "Very interesting! I think I got it, I will test\n"
        },
        {
          "id": 648590,
          "postDate": "2019-10-14T11:51:22.537Z",
          "content": "<p>thanks for sharing! What's your val loss function?</p>",
          "rawMarkdown": "thanks for sharing! What's your val loss function?"
        },
        {
          "id": 648637,
          "postDate": "2019-10-14T12:39:41.087Z",
          "content": "<p>Good work! Wouldn't it make sense for your LB score to be higher than validation if there are samples from the same patients in the test data set. Seems like you should just trust your validation</p>",
          "rawMarkdown": "Good work! Wouldn't it make sense for your LB score to be higher than validation if there are samples from the same patients in the test data set. Seems like you should just trust your validation"
        },
        {
          "id": 648801,
          "postDate": "2019-10-14T16:01:54.920Z",
          "content": "<p><a href=\"/roguekk007\">@roguekk007</a> \"Right now I have another problem which is that my val loss is much greater than my LB (.0814 v. .073)\"\nIs this not comparing apples to oranges because you compare your validation <em>loss</em> to the LB <em>metric</em>?</p>",
          "rawMarkdown": "@roguekk007 \"Right now I have another problem which is that my val loss is much greater than my LB (.0814 v. .073)\"\nIs this not comparing apples to oranges because you compare your validation _loss_ to the LB _metric_?"
        },
        {
          "id": 649073,
          "postDate": "2019-10-14T22:56:24.587Z",
          "content": "<p><a href=\"/micpie\">@micpie</a> I think it is not comparing apples to oranges personally, because according to the LB probing, the weights of the metric is revealed, so my validation loss <em>should</em> be kind of equal to LB</p>",
          "rawMarkdown": "@micpie I think it is not comparing apples to oranges personally, because according to the LB probing, the weights of the metric is revealed, so my validation loss *should* be kind of equal to LB",
          "votes": 2
        },
        {
          "id": 649206,
          "postDate": "2019-10-15T04:16:14.073Z",
          "content": "<p><a href=\"/roguekk007\">@roguekk007</a>  Thanks, you are right, with the correctly weighted BCE loss they are comparable. 👍 </p>",
          "rawMarkdown": "@roguekk007  Thanks, you are right, with the correctly weighted BCE loss they are comparable. 👍 "
        },
        {
          "id": 651546,
          "postDate": "2019-10-17T15:35:31.050Z",
          "content": "<p>Hi! what do you mean by b0 ? I am unfamiliar with this term ! Edit: never mind I figured this out</p>",
          "rawMarkdown": "Hi! what do you mean by b0 ? I am unfamiliar with this term ! Edit: never mind I figured this out"
        },
        {
          "id": 653864,
          "postDate": "2019-10-21T04:40:56.927Z",
          "content": "<p>B0 is one type of the efficientnet architecture s ( there is b0, b1, ... B7)</p>",
          "rawMarkdown": "B0 is one type of the efficientnet architecture s ( there is b0, b1, ... B7)"
        },
        {
          "id": 657621,
          "postDate": "2019-10-25T09:52:31.183Z",
          "content": "<p>after the competition I look forward to how you did the \"probing\" that helped you figure out the weights !</p>",
          "rawMarkdown": "after the competition I look forward to how you did the \"probing\" that helped you figure out the weights !"
        }
      ]
    },
    {
      "id": 636104,
      "postDate": "2019-09-28T20:18:40.787Z",
      "content": "<p>EfficientNet-B5 @ 512 x 512 - 0.070</p>",
      "rawMarkdown": "EfficientNet-B5 @ 512 x 512 - 0.070",
      "votes": 7,
      "replies": [
        {
          "id": 638059,
          "postDate": "2019-10-01T13:48:50.513Z",
          "content": "<p>How many epochs are you running , if you don't mind me asking? And are the images in png or jpg?</p>",
          "rawMarkdown": "How many epochs are you running , if you don't mind me asking? And are the images in png or jpg?",
          "votes": 1
        },
        {
          "id": 638794,
          "postDate": "2019-10-02T12:43:09.850Z",
          "content": "<p>100 epochs, 16,000 images per epoch, loaded from DICOM.</p>",
          "rawMarkdown": "100 epochs, 16,000 images per epoch, loaded from DICOM.",
          "votes": 4
        },
        {
          "id": 638918,
          "postDate": "2019-10-02T15:03:25.150Z",
          "content": "<p>Wow, so how much time does it take for your model to train completely?</p>",
          "rawMarkdown": "Wow, so how much time does it take for your model to train completely?",
          "votes": 1
        },
        {
          "id": 639759,
          "postDate": "2019-10-03T14:11:23.907Z",
          "content": "<p>About 60-65 hours.</p>",
          "rawMarkdown": "About 60-65 hours.",
          "votes": 3
        },
        {
          "id": 639908,
          "postDate": "2019-10-03T17:26:27.003Z",
          "content": "<p>Hmm, I wonder how long EfficientNet B7 would take with those same parameters, 80-100 hours? How to use GCP credit wisely.</p>",
          "rawMarkdown": "Hmm, I wonder how long EfficientNet B7 would take with those same parameters, 80-100 hours? How to use GCP credit wisely.",
          "votes": 1
        }
      ]
    },
    {
      "id": 636131,
      "postDate": "2019-09-28T21:03:38.160Z",
      "content": "<p>LB: 0.080</p>\n\n<p>&gt; MODEL: Efficient Net B0 \nSIZE:  224 (PNG)\nCV:  1 Fold\nAUG: [zoom, rotate]\nTTA: No\nPRETRAINED: True\nEPOCH: 20\nLR:   1e-3</p>",
      "rawMarkdown": "LB: 0.080\n\n&gt; MODEL: Efficient Net B0 \nSIZE:  224 (PNG)\nCV:  1 Fold\nAUG: [zoom, rotate]\nTTA: No\nPRETRAINED: True\nEPOCH: 20\nLR:   1e-3\n\n",
      "votes": 8,
      "replies": [
        {
          "id": 636150,
          "postDate": "2019-09-28T21:45:31.640Z",
          "content": "<p>Thanks for sharing. How is your local validation compared to LB? Which loss func are you using? I'm getting 0.088 with 4 epochs at 1e-3 at B0 and no hold outset (yet)</p>",
          "rawMarkdown": "Thanks for sharing. How is your local validation compared to LB? Which loss func are you using? I'm getting 0.088 with 4 epochs at 1e-3 at B0 and no hold outset (yet)",
          "votes": 1
        },
        {
          "id": 636153,
          "postDate": "2019-09-28T22:06:41.523Z",
          "content": "<p>I use for now <code>torch.nn.BCEWithLogitsLoss()</code> I did not implement yet the offical metric (I will update lter). But my <code>val loss</code> is almost identical to <code>trn loss</code> =) </p>",
          "rawMarkdown": "I use for now `torch.nn.BCEWithLogitsLoss()` I did not implement yet the offical metric (I will update lter). But my `val loss` is almost identical to `trn loss` =) ",
          "votes": 1
        },
        {
          "id": 636803,
          "postDate": "2019-09-30T08:05:36.507Z",
          "content": "<p>I used the same settting as yours but in 4 epochs and LR=1.20E-3.\nTreating 'any' as a class to be predicted.\nLB: 0.113</p>",
          "rawMarkdown": "I used the same settting as yours but in 4 epochs and LR=1.20E-3.\nTreating 'any' as a class to be predicted.\nLB: 0.113",
          "votes": 1
        },
        {
          "id": 637722,
          "postDate": "2019-10-01T08:11:41.100Z",
          "content": "<p><a href=\"/drhabib\">@drhabib</a> May I ask if you are undersampling the training data? Compared to my training, 20 epochs are a lot. </p>",
          "rawMarkdown": "@drhabib May I ask if you are undersampling the training data? Compared to my training, 20 epochs are a lot. ",
          "votes": 1
        },
        {
          "id": 638056,
          "postDate": "2019-10-01T13:44:21.557Z",
          "content": "<p>No under sampling... Just using random split  =) </p>",
          "rawMarkdown": "No under sampling... Just using random split  =) ",
          "votes": 1
        },
        {
          "id": 638380,
          "postDate": "2019-10-01T20:59:44.163Z",
          "content": "<p>Could you elaborate further? I am having time issues as well and would like to understand better what I can do to overcome it.</p>",
          "rawMarkdown": "Could you elaborate further? I am having time issues as well and would like to understand better what I can do to overcome it.",
          "votes": 1
        },
        {
          "id": 638506,
          "postDate": "2019-10-02T01:21:28.240Z",
          "content": "<p>I don't do any under sampling. I take whole data and split randomly 80% to train and 20% to validation. Let me know if you have other questions=) </p>",
          "rawMarkdown": "I don't do any under sampling. I take whole data and split randomly 80% to train and 20% to validation. Let me know if you have other questions=) ",
          "votes": 2
        },
        {
          "id": 638532,
          "postDate": "2019-10-02T02:36:02.357Z",
          "content": "<p>Around how long does your model take to train?</p>",
          "rawMarkdown": "Around how long does your model take to train?",
          "votes": 1
        },
        {
          "id": 638866,
          "postDate": "2019-10-02T14:04:47.800Z",
          "content": "<p>around 12 </p>",
          "rawMarkdown": "around 12 "
        },
        {
          "id": 638987,
          "postDate": "2019-10-02T16:44:35.370Z",
          "content": "<p>Thanks for the sharing!!! Did you use any normalization(like ImageNet/competition dataset mean and std) or regularization?</p>",
          "rawMarkdown": "Thanks for the sharing!!! Did you use any normalization(like ImageNet/competition dataset mean and std) or regularization?",
          "votes": 1
        },
        {
          "id": 640949,
          "postDate": "2019-10-04T10:53:01.533Z",
          "content": "<p>I used Imagenet stars :) Good luck </p>",
          "rawMarkdown": "I used Imagenet stars :) Good luck ",
          "votes": 1
        },
        {
          "id": 641000,
          "postDate": "2019-10-04T11:24:28.953Z",
          "content": "<p><a href=\"/drhabib\">@drhabib</a> What LB score do you mange to get with EfficentNetB0, 224x224, single fold, (no TTA perhaps)? I'm also finetuning on EfficientNetB0, and so far got 0.079, which I think is much worse than yours? ;-)</p>",
          "rawMarkdown": "@drhabib What LB score do you mange to get with EfficentNetB0, 224x224, single fold, (no TTA perhaps)? I'm also finetuning on EfficientNetB0, and so far got 0.079, which I think is much worse than yours? ;-)",
          "votes": 1
        },
        {
          "id": 643365,
          "postDate": "2019-10-07T13:15:52.823Z",
          "content": "<p><a href=\"/drhabib\">@drhabib</a> Is it convenient to disclose the train/val split that you are using? I observe very different difference between LB/CV scores using different seeds in sklearn's train_val_split. Anyone willing to disclose their seed and validation portion that they are using?</p>",
          "rawMarkdown": "@drhabib Is it convenient to disclose the train/val split that you are using? I observe very different difference between LB/CV scores using different seeds in sklearn's train_val_split. Anyone willing to disclose their seed and validation portion that they are using?",
          "votes": 1
        },
        {
          "id": 644422,
          "postDate": "2019-10-08T20:01:30.357Z",
          "content": "<p><a href=\"/akensert\">@akensert</a> vanilla B0 0.70-0.72 depending on my GPU mood =)</p>",
          "rawMarkdown": "@akensert vanilla B0 0.70-0.72 depending on my GPU mood =)",
          "votes": 1
        },
        {
          "id": 644424,
          "postDate": "2019-10-08T20:04:11.937Z",
          "content": "<p><a href=\"/roguekk007\">@roguekk007</a> Are you using weighted loss ? If not that willl explain why you have a big difference. My LB and CV are almost identical or have very small difference. \nRegarding splitting. \nI did not observe huge difference if I split by <code>patient</code> or do <code>StratifiedKFold</code>.</p>",
          "rawMarkdown": "@roguekk007 Are you using weighted loss ? If not that willl explain why you have a big difference. My LB and CV are almost identical or have very small difference. \nRegarding splitting. \nI did not observe huge difference if I split by `patient` or do `StratifiedKFold`.\n\n",
          "votes": 1
        },
        {
          "id": 644510,
          "postDate": "2019-10-08T22:52:13.573Z",
          "content": "<p>are you using any special training procedure? lr scheduling? thanks</p>",
          "rawMarkdown": "are you using any special training procedure? lr scheduling? thanks",
          "votes": 1
        },
        {
          "id": 644668,
          "postDate": "2019-10-09T06:55:50.137Z",
          "content": "<p><a href=\"/drhabib\">@drhabib</a> Do you use Pytorch or keras? </p>",
          "rawMarkdown": "@drhabib Do you use Pytorch or keras? ",
          "votes": 1
        },
        {
          "id": 646224,
          "postDate": "2019-10-11T02:17:29.773Z",
          "content": "<p>Verne, Nothing special, just cosine decay=)</p>",
          "rawMarkdown": "Verne, Nothing special, just cosine decay=)",
          "votes": 1
        },
        {
          "id": 646225,
          "postDate": "2019-10-11T02:18:47.673Z",
          "content": "<p><a href=\"/custodiogabriel\">@custodiogabriel</a> I use Pytroch, but at the end of the day it doesn't matter which software you use to achieve top results =) </p>",
          "rawMarkdown": "@custodiogabriel I use Pytroch, but at the end of the day it doesn't matter which software you use to achieve top results =) ",
          "votes": 1
        },
        {
          "id": 647755,
          "postDate": "2019-10-13T08:19:38.617Z",
          "content": "<p><a href=\"/drhabib\">@drhabib</a> I’m currently getting .066 with b0 with minimal tuning. You must also be using some cool tricks to get b0 to .070? Will you consider teaming up?</p>",
          "rawMarkdown": "@drhabib I’m currently getting .066 with b0 with minimal tuning. You must also be using some cool tricks to get b0 to .070? Will you consider teaming up?"
        },
        {
          "id": 648300,
          "postDate": "2019-10-14T02:27:06.087Z",
          "content": "<p>Thanks for your sharing! How much batch size have you set?</p>",
          "rawMarkdown": "Thanks for your sharing! How much batch size have you set?"
        },
        {
          "id": 648329,
          "postDate": "2019-10-14T03:22:48.360Z",
          "content": "<p>48, max that can fit on my local RTX 2080 (not ti)</p>",
          "rawMarkdown": "48, max that can fit on my local RTX 2080 (not ti)"
        },
        {
          "id": 649544,
          "postDate": "2019-10-15T14:11:13.827Z",
          "content": "<p>Is your current score (0.061) from a single model?\nBTW, <a href=\"/roguekk007\">@roguekk007</a> <a href=\"/drhabib\">@drhabib</a> Perhaps, the best ensemble (team)👍 . Wish you all the best!</p>",
          "rawMarkdown": "Is your current score (0.061) from a single model?\nBTW, @roguekk007 @drhabib Perhaps, the best ensemble (team)👍 . Wish you all the best!"
        },
        {
          "id": 650015,
          "postDate": "2019-10-16T02:26:16.577Z",
          "content": "<p>Could you tell me what's the meaning of tta? Much Thanks</p>",
          "rawMarkdown": "Could you tell me what's the meaning of tta? Much Thanks"
        },
        {
          "id": 650057,
          "postDate": "2019-10-16T03:47:55.933Z",
          "content": "<p><a href=\"/pupil3\">@pupil3</a> Test Time Augmentaion  (TTA)</p>",
          "rawMarkdown": "@pupil3 Test Time Augmentaion  (TTA)"
        },
        {
          "id": 650089,
          "postDate": "2019-10-16T04:58:03.967Z",
          "content": "<p>Much Thanks</p>",
          "rawMarkdown": "Much Thanks"
        },
        {
          "id": 650711,
          "postDate": "2019-10-16T16:03:45.270Z",
          "content": "<p>Hi <a href=\"/drhabib\">@drhabib</a> </p>\n\n<p>Just curious did you do window pre-processing? Or you use Jermey’s special preprocessing method?</p>\n\n<p>Thanks in advance :)</p>",
          "rawMarkdown": "Hi @drhabib \n\nJust curious did you do window pre-processing? Or you use Jermey’s special preprocessing method?\n\nThanks in advance :)",
          "votes": 1
        }
      ]
    },
    {
      "id": 652609,
      "postDate": "2019-10-19T05:43:05.577Z",
      "content": "<p>0.069 - single fold, no tta,  300x300, 80:20 train/val split using the full dataset, custom model.</p>",
      "rawMarkdown": " 0.069 - single fold, no tta,  300x300, 80:20 train/val split using the full dataset, custom model.",
      "votes": 5,
      "replies": [
        {
          "id": 653156,
          "postDate": "2019-10-20T02:32:23.860Z",
          "content": "<p>If you allow me, did you use any data normalization like Multi channel windowing?</p>",
          "rawMarkdown": "If you allow me, did you use any data normalization like Multi channel windowing?\n"
        },
        {
          "id": 653804,
          "postDate": "2019-10-21T01:18:24.550Z",
          "content": "<p>Yea, I'm using <em>Sigmoid (Brain + Subdural + Bone) Windowing</em> from <a href=\"https://www.kaggle.com/reppic/gradient-sigmoid-windowing\">Gradient &amp; Sigmoid Windowing</a>.</p>",
          "rawMarkdown": "Yea, I'm using *Sigmoid (Brain + Subdural + Bone) Windowing* from [Gradient &amp; Sigmoid Windowing](https://www.kaggle.com/reppic/gradient-sigmoid-windowing).",
          "votes": 2
        },
        {
          "id": 655230,
          "postDate": "2019-10-22T20:49:59.113Z",
          "content": "<p>Did you use GroupKfold using PatientID? Many people are using... Do you think this is essential to increase the score?</p>",
          "rawMarkdown": "Did you use GroupKfold using PatientID? Many people are using... Do you think this is essential to increase the score?\n"
        },
        {
          "id": 655377,
          "postDate": "2019-10-23T01:47:54.963Z",
          "content": "<p>Yea, I haven't been doing multiple folds yet and I'm not using that function specifically, but I am splitting my train/validation sets using PatientId. </p>\n\n<p>It's not because splitting that way necessarily improves the score of a single model, but if you don't, you risk leaking info to your validation set and you can overfit without realizing it. Check out <a href=\"https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/111729#latest-647909\">Similarity between train and test images</a> </p>\n\n<p>I imagine it also helps improve model <a href=\"https://ieeexplore.ieee.org/document/4371035\">diversity</a> when ensembling models trained on different folds, but idk for sure.</p>",
          "rawMarkdown": "Yea, I haven't been doing multiple folds yet and I'm not using that function specifically, but I am splitting my train/validation sets using PatientId. \n\nIt's not because splitting that way necessarily improves the score of a single model, but if you don't, you risk leaking info to your validation set and you can overfit without realizing it. Check out [Similarity between train and test images](https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/111729#latest-647909) \n\nI imagine it also helps improve model [diversity](https://ieeexplore.ieee.org/document/4371035) when ensembling models trained on different folds, but idk for sure.",
          "votes": 1
        },
        {
          "id": 655409,
          "postDate": "2019-10-23T02:47:31.580Z",
          "content": "<p>I understand! Thanks for the feedback! My models usually have very low val_loss and very different from LB (larger), I think that if I do GroupKFold (or other techniques) I think I will have a much closer val_loss to LB then! I will see this kernel! Thanks!</p>",
          "rawMarkdown": "I understand! Thanks for the feedback! My models usually have very low val_loss and very different from LB (larger), I think that if I do GroupKFold (or other techniques) I think I will have a much closer val_loss to LB then! I will see this kernel! Thanks!",
          "votes": 1
        },
        {
          "id": 664619,
          "postDate": "2019-11-04T01:28:49.490Z",
          "content": "<p>Update 11/3: \n0.066- single fold, no tta, 300x300, 80:20 train/val split using the full dataset (no CQ500 data), custom model and a custom data generator.</p>",
          "rawMarkdown": "Update 11/3: \n0.066- single fold, no tta, 300x300, 80:20 train/val split using the full dataset (no CQ500 data), custom model and a custom data generator.",
          "votes": 1
        },
        {
          "id": 664816,
          "postDate": "2019-11-04T09:13:32.470Z",
          "content": "<p>By custom you meant you're not using imagenet weights, or it's just a custom head?</p>",
          "rawMarkdown": "By custom you meant you're not using imagenet weights, or it's just a custom head?"
        }
      ]
    },
    {
      "id": 651109,
      "postDate": "2019-10-17T03:45:17.483Z",
      "content": "<p>efficientnet-b2 \n256x256\nw/o 3 windowing preprocess\npublicLB: 0.069</p>",
      "rawMarkdown": "efficientnet-b2 \n256x256\nw/o 3 windowing preprocess\npublicLB: 0.069",
      "votes": 5,
      "replies": [
        {
          "id": 651114,
          "postDate": "2019-10-17T04:03:02.377Z",
          "content": "<p>Cool! <br>\nWhat is the meaning of <code>w/o</code>?</p>",
          "rawMarkdown": "Cool!  \nWhat is the meaning of `w/o`?"
        },
        {
          "id": 651129,
          "postDate": "2019-10-17T04:33:01.637Z",
          "content": "<p>I think he means without</p>",
          "rawMarkdown": "I think he means without"
        },
        {
          "id": 651143,
          "postDate": "2019-10-17T05:04:27.393Z",
          "content": "<p>So he didn't use windowing?</p>",
          "rawMarkdown": "So he didn't use windowing?"
        },
        {
          "id": 651355,
          "postDate": "2019-10-17T11:48:22.430Z",
          "content": "<p>I used <a href=\"https://www.kaggle.com/omission/eda-view-dicom-images-with-correct-windowing\">this kernel's</a> windowing.\nI'm trying Appian's windowing now.</p>",
          "rawMarkdown": "I used [this kernel's](https://www.kaggle.com/omission/eda-view-dicom-images-with-correct-windowing) windowing.\nI'm trying Appian's windowing now."
        },
        {
          "id": 651419,
          "postDate": "2019-10-17T13:28:11.613Z",
          "content": "<p><a href=\"/uiiurz1\">@uiiurz1</a> That's a great result! Did you normalize input images? </p>",
          "rawMarkdown": "@uiiurz1 That's a great result! Did you normalize input images? "
        },
        {
          "id": 651430,
          "postDate": "2019-10-17T13:34:40.040Z",
          "content": "<p>I normalized input images with ImageNet's means and stds.</p>",
          "rawMarkdown": "I normalized input images with ImageNet's means and stds.",
          "votes": 1
        },
        {
          "id": 653160,
          "postDate": "2019-10-20T02:36:08.850Z",
          "content": "<p><a href=\"/uiiurz1\">@uiiurz1</a>   how many epochs?</p>",
          "rawMarkdown": "@uiiurz1   how many epochs?"
        }
      ]
    },
    {
      "id": 651127,
      "postDate": "2019-10-17T04:26:00.700Z",
      "content": "<p>EfficientNet-B0\n224x224\nPublic LB: 0.069 without TTA</p>",
      "rawMarkdown": "EfficientNet-B0\n224x224\nPublic LB: 0.069 without TTA",
      "votes": 6,
      "replies": [
        {
          "id": 651192,
          "postDate": "2019-10-17T06:56:53.323Z",
          "content": "<p>That's a great result with such a simple setup! May I wonder, did you use some special windowing? Have you used all images, or found a way to remove uninformative ones? I've done quite a lot of experiments and already decided that it's simply impossible for such to go below 0.75 with small resolution w/o some tricks. Thanks in advance</p>",
          "rawMarkdown": "That's a great result with such a simple setup! May I wonder, did you use some special windowing? Have you used all images, or found a way to remove uninformative ones? I've done quite a lot of experiments and already decided that it's simply impossible for such to go below 0.75 with small resolution w/o some tricks. Thanks in advance"
        },
        {
          "id": 651199,
          "postDate": "2019-10-17T07:05:14.850Z",
          "content": "<p>try undersampling</p>",
          "rawMarkdown": "try undersampling"
        },
        {
          "id": 651206,
          "postDate": "2019-10-17T07:13:23.463Z",
          "content": "<p>I'm using all of the images and averaging 5 folds. Nothing fancy with the network - my parameters are identical to DrHBs in earlier this thread. The image preprocessing is the key, but I think it's best if I share later 😉 </p>",
          "rawMarkdown": "I'm using all of the images and averaging 5 folds. Nothing fancy with the network - my parameters are identical to DrHBs in earlier this thread. The image preprocessing is the key, but I think it's best if I share later 😉 ",
          "votes": 3
        },
        {
          "id": 651211,
          "postDate": "2019-10-17T07:16:01.363Z",
          "content": "<p>Thanks! By preprocessing you mean window/no window, window parameters, and normalization, right? </p>",
          "rawMarkdown": "Thanks! By preprocessing you mean window/no window, window parameters, and normalization, right? "
        },
        {
          "id": 651215,
          "postDate": "2019-10-17T07:21:44.177Z",
          "content": "<p><a href=\"/anjum48\">@anjum48</a> coulld you please describe about 5 folds , how you are doing K-Fold . Thanks</p>",
          "rawMarkdown": "@anjum48 coulld you please describe about 5 folds , how you are doing K-Fold . Thanks\n"
        },
        {
          "id": 651217,
          "postDate": "2019-10-17T07:25:00.843Z",
          "content": "<p><a href=\"/cateek\">@cateek</a> Yes, but there are more ways than just windowing to make sure the images you pass to the model are as informative as possible\n<a href=\"/rajnishe\">@rajnishe</a> I'm using <code>GroupKfold</code> using PatientID as the grouping variable</p>",
          "rawMarkdown": "@cateek Yes, but there are more ways than just windowing to make sure the images you pass to the model are as informative as possible\n@rajnishe I'm using `GroupKfold` using PatientID as the grouping variable",
          "votes": 1
        },
        {
          "id": 651226,
          "postDate": "2019-10-17T07:51:11.603Z",
          "content": "<p>Interesting! <br>\nI am looking forward to see your preprocessing after competition end;)  </p>",
          "rawMarkdown": "Interesting!  \nI am looking forward to see your preprocessing after competition end;)  ",
          "votes": 1
        },
        {
          "id": 651237,
          "postDate": "2019-10-17T08:02:40.583Z",
          "content": "<p>One more thing. Do you treat any class in some specific way or just 6 classes with weights? I've tried some variation of 2-stage model but it didn't work well</p>",
          "rawMarkdown": "One more thing. Do you treat any class in some specific way or just 6 classes with weights? I've tried some variation of 2-stage model but it didn't work well"
        },
        {
          "id": 651306,
          "postDate": "2019-10-17T09:56:00.483Z",
          "content": "<p>No, I'm using the standard 6 class loss already shared here. I've not had a chance to test the 2-step pipeline yet</p>",
          "rawMarkdown": "No, I'm using the standard 6 class loss already shared here. I've not had a chance to test the 2-step pipeline yet",
          "votes": 1
        },
        {
          "id": 651335,
          "postDate": "2019-10-17T10:51:03.737Z",
          "content": "<p><a href=\"/anjum48\">@anjum48</a> \n<code>I'm using GroupKfold using PatientID as the grouping variable</code> </p>\n\n<p>Are CV score and LB score correlated?\nin fact, my CV score with GroupKfold using PatientID doesnt help to early stopping...</p>",
          "rawMarkdown": "@anjum48 \n```I'm using GroupKfold using PatientID as the grouping variable``` \n\nAre CV score and LB score correlated?\nin fact, my CV score with GroupKfold using PatientID doesnt help to early stopping..."
        }
      ]
    },
    {
      "id": 634541,
      "postDate": "2019-09-26T12:29:04.213Z",
      "content": "<p>inceptionv4 -&gt; 0.78</p>",
      "rawMarkdown": "inceptionv4 -&gt; 0.78",
      "votes": 5,
      "replies": [
        {
          "id": 636010,
          "postDate": "2019-09-28T15:35:39.037Z",
          "content": "<p>Hi,\nwhat input image size you used ? did you used the full number of images of just a sub portion ? </p>",
          "rawMarkdown": "Hi,\nwhat input image size you used ? did you used the full number of images of just a sub portion ? ",
          "votes": 1
        }
      ]
    },
    {
      "id": 642485,
      "postDate": "2019-10-06T06:21:46.473Z",
      "content": "<p>LB 0.079 (update 0.074)\n- se_resnext50_32x4d\n- 224x224\n- 2 epochs\n- hflip, crop</p>",
      "rawMarkdown": "LB 0.079 (update 0.074)\n- se\\_resnext50\\_32x4d\n- 224x224\n- 2 epochs\n- hflip, crop",
      "votes": 6,
      "replies": [
        {
          "id": 643370,
          "postDate": "2019-10-07T13:25:55.800Z",
          "content": "<p><a href=\"/appian\">@appian</a> Hi! Is it convenient to disclose your train/val split? How is your correlation between train/test LB score?</p>",
          "rawMarkdown": "@appian Hi! Is it convenient to disclose your train/val split? How is your correlation between train/test LB score?"
        },
        {
          "id": 643615,
          "postDate": "2019-10-07T17:29:05.250Z",
          "content": "<p>The train valid split is 80:20. I haven't made enough submissions to see the correlation but the difference between public lb and local cv is relatively small so far.</p>\n\n<ul>\n<li>public lb 0.074</li>\n<li>local cv 0.07519</li>\n</ul>",
          "rawMarkdown": "The train valid split is 80:20. I haven't made enough submissions to see the correlation but the difference between public lb and local cv is relatively small so far.\n\n- public lb 0.074\n- local cv 0.07519\n"
        },
        {
          "id": 643662,
          "postDate": "2019-10-07T18:38:21.113Z",
          "content": "<p>nice result. i trained the same network on 200k images 256 resolution brain window and have a 0.14 result. what kind of images and windowing are you using? thanks</p>",
          "rawMarkdown": "nice result. i trained the same network on 200k images 256 resolution brain window and have a 0.14 result. what kind of images and windowing are you using? thanks"
        },
        {
          "id": 646222,
          "postDate": "2019-10-11T02:12:57.783Z",
          "content": "<p><a href=\"/appian\">@appian</a> What LR and scheduling are you using? I am unable to replicate your results. I am already grouping on patient</p>",
          "rawMarkdown": "@appian What LR and scheduling are you using? I am unable to replicate your results. I am already grouping on patient"
        },
        {
          "id": 646609,
          "postDate": "2019-10-11T13:31:57.627Z",
          "content": "<p><a href=\"/appian\">@appian</a> Great, why are you public LB and Local LB is so closer? my pubic LB always larger than local LB,  about 0.02.</p>",
          "rawMarkdown": "@appian Great, why are you public LB and Local LB is so closer? my pubic LB always larger than local LB,  about 0.02."
        },
        {
          "id": 646680,
          "postDate": "2019-10-11T15:03:42.267Z",
          "content": "<p>My guess is that you randomly split the data for train/val. Because one patient is at least composed of more than 20 slices, it introduces a leak especially when adjacent slices are split between train and val. Somethinkg like GroupKFold can deal with it.</p>",
          "rawMarkdown": "My guess is that you randomly split the data for train/val. Because one patient is at least composed of more than 20 slices, it introduces a leak especially when adjacent slices are split between train and val. Somethinkg like GroupKFold can deal with it.",
          "votes": 2
        },
        {
          "id": 646688,
          "postDate": "2019-10-11T15:17:58.320Z",
          "content": "<p>from my own experience, I could not get stable cv without using weighted log-loss. I think a lot of the issues with cv not looking like LB is due to not using the proper loss function and not due to how you split your training/validation sets. And I think this makes sense - if you're optimizing your model to a different loss, CV is not going to reflect on LB closely. I used random split and weighted log-loss and my CV and LB look exactly the same. </p>",
          "rawMarkdown": "from my own experience, I could not get stable cv without using weighted log-loss. I think a lot of the issues with cv not looking like LB is due to not using the proper loss function and not due to how you split your training/validation sets. And I think this makes sense - if you're optimizing your model to a different loss, CV is not going to reflect on LB closely. I used random split and weighted log-loss and my CV and LB look exactly the same. "
        },
        {
          "id": 647002,
          "postDate": "2019-10-12T00:59:41.927Z",
          "content": "<p>Thanks@Appian@Tim Yee, I split the data for train/val using PatientID, so the slices for one patient ara all in train or val. Maybe my weights of logloss is [1,1,1,1,1,1], I'll try more, thanks.</p>",
          "rawMarkdown": "Thanks@Appian@Tim Yee, I split the data for train/val using PatientID, so the slices for one patient ara all in train or val. Maybe my weights of logloss is [1,1,1,1,1,1], I'll try more, thanks."
        }
      ]
    },
    {
      "id": 646623,
      "postDate": "2019-10-11T13:42:08.373Z",
      "content": "<p>Seresnext50-&gt;LB0.082\nimg size-&gt;224*224</p>",
      "rawMarkdown": "Seresnext50-&gt;LB0.082\nimg size-&gt;224*224",
      "votes": 3,
      "replies": [
        {
          "id": 647795,
          "postDate": "2019-10-13T09:39:28.350Z",
          "content": "<p>update\nSeresnext50-&gt;LB0.078\nimg size-&gt;224*224\n<a href=\"https://www.kaggle.com/dcstang/see-like-a-radiologist-with-systematic-windowing\">subdural_window preprocessing</a></p>",
          "rawMarkdown": "update\nSeresnext50-&gt;LB0.078\nimg size-&gt;224*224\n[subdural_window preprocessing](https://www.kaggle.com/dcstang/see-like-a-radiologist-with-systematic-windowing)"
        },
        {
          "id": 659957,
          "postDate": "2019-10-28T13:45:44.227Z",
          "content": "<p>for how many epochs do you train? when do you notice overfitting? thanks!</p>",
          "rawMarkdown": "for how many epochs do you train? when do you notice overfitting? thanks!"
        }
      ]
    },
    {
      "id": 638792,
      "postDate": "2019-10-02T12:37:03.580Z",
      "content": "<p>EfficientNet B0 - 512x512   --&gt;  0.078</p>",
      "rawMarkdown": "EfficientNet B0 - 512x512   --&gt;  0.078",
      "votes": 3,
      "replies": [
        {
          "id": 638801,
          "postDate": "2019-10-02T12:52:03.430Z",
          "content": "<p>If you don't mind me asking, what's your validation split, and how many epochs?</p>",
          "rawMarkdown": "If you don't mind me asking, what's your validation split, and how many epochs?"
        },
        {
          "id": 644817,
          "postDate": "2019-10-09T11:44:16.667Z",
          "content": "<p>Random split 95% train &amp; 5% validation... trained for 10 epochs</p>",
          "rawMarkdown": "Random split 95% train &amp; 5% validation... trained for 10 epochs"
        },
        {
          "id": 644975,
          "postDate": "2019-10-09T15:35:13.177Z",
          "content": "<p>And how do you fit the 512 images in the B0 model? It takes 224 by default right?</p>",
          "rawMarkdown": "And how do you fit the 512 images in the B0 model? It takes 224 by default right?"
        },
        {
          "id": 644978,
          "postDate": "2019-10-09T15:37:54.427Z",
          "content": "<p>You can fit any image size. You can put in 128x128 if you want.</p>",
          "rawMarkdown": "You can fit any image size. You can put in 128x128 if you want."
        },
        {
          "id": 644987,
          "postDate": "2019-10-09T16:03:28.053Z",
          "content": "<p>But when I try to put 512x512 images in my B0 model it gives me \"invalid argument 0: sizes of tensor must match except in dimension 0\" error</p>",
          "rawMarkdown": "But when I try to put 512x512 images in my B0 model it gives me \"invalid argument 0: sizes of tensor must match except in dimension 0\" error"
        },
        {
          "id": 645368,
          "postDate": "2019-10-10T03:46:16.700Z",
          "content": "<p>Do you train using all images?</p>",
          "rawMarkdown": "Do you train using all images?"
        },
        {
          "id": 648422,
          "postDate": "2019-10-14T06:43:14.103Z",
          "content": "<p>yes, i do use all images</p>",
          "rawMarkdown": "yes, i do use all images",
          "votes": 1
        }
      ]
    },
    {
      "id": 634225,
      "postDate": "2019-09-26T03:48:01.747Z",
      "content": "<p>Using only 30,000 samples(15k positive and 15k negative)</p>\n\n<p>Efficient Net B4 10 epochs 256x256 - 0.113\nEfficient Net B4  3 epochs 256x256 - 0.107  </p>\n\n<p>LB improving with less number of epochs? (Edit - Severely Overfitting?)</p>",
      "rawMarkdown": "Using only 30,000 samples(15k positive and 15k negative)\n\nEfficient Net B4 10 epochs 256x256 - 0.113\nEfficient Net B4  3 epochs 256x256 - 0.107  \n\nLB improving with less number of epochs? (Edit - Severely Overfitting?)",
      "votes": 3,
      "replies": [
        {
          "id": 634256,
          "postDate": "2019-09-26T05:23:20.430Z",
          "content": "<p>0.098 4 epochs. I haven't tried greater than 4 epochs yet. I already used this weeks GPU quota.</p>",
          "rawMarkdown": "0.098 4 epochs. I haven't tried greater than 4 epochs yet. I already used this weeks GPU quota.",
          "votes": 2
        },
        {
          "id": 634305,
          "postDate": "2019-09-26T06:20:06.027Z",
          "content": "<p>Are you using the full dataset? How long it takes for 1 epoch?</p>",
          "rawMarkdown": "Are you using the full dataset? How long it takes for 1 epoch?",
          "votes": 2
        },
        {
          "id": 634796,
          "postDate": "2019-09-26T19:08:20.097Z",
          "content": "<p>In my opinon, its not about the number of epochs, but about not overfitting. 🙂  </p>",
          "rawMarkdown": "In my opinon, its not about the number of epochs, but about not overfitting. 🙂  ",
          "votes": 2
        },
        {
          "id": 636567,
          "postDate": "2019-09-29T19:49:20.130Z",
          "content": "<p><a href=\"/bopengiowa\">@bopengiowa</a>  Do you have a suggestion about removing overfitting? Thank you!</p>",
          "rawMarkdown": "@bopengiowa  Do you have a suggestion about removing overfitting? Thank you!",
          "votes": 1
        },
        {
          "id": 636626,
          "postDate": "2019-09-29T22:59:08.330Z",
          "content": "<p>Common for keras is it saves the weights from the best val score correct? So that should solve it right there. I think there are other learning rate things that people do such as scheduling and decay.  Could also check if local val score matches with leaderboard scores.</p>",
          "rawMarkdown": "Common for keras is it saves the weights from the best val score correct? So that should solve it right there. I think there are other learning rate things that people do such as scheduling and decay.  Could also check if local val score matches with leaderboard scores.",
          "votes": 2
        },
        {
          "id": 636718,
          "postDate": "2019-09-30T05:09:07.800Z",
          "content": "<p><a href=\"/bopengiowa\">@bopengiowa</a>  thank you! I will try it 👍 </p>",
          "rawMarkdown": "@bopengiowa  thank you! I will try it 👍 ",
          "votes": 1
        }
      ]
    },
    {
      "id": 653855,
      "postDate": "2019-10-21T04:02:27.207Z",
      "content": "<p>efficientnet-b2\n410x410\nsingle fold\nhflip tta\npublicLB: 0.064</p>",
      "rawMarkdown": "efficientnet-b2\n410x410\nsingle fold\nhflip tta\npublicLB: 0.064",
      "votes": 4,
      "replies": [
        {
          "id": 653896,
          "postDate": "2019-10-21T06:11:57.740Z",
          "content": "<p>Thanks for sharing! Are you using 5 epochs, png images as you mentioned before also?</p>",
          "rawMarkdown": "Thanks for sharing! Are you using 5 epochs, png images as you mentioned before also?"
        },
        {
          "id": 653901,
          "postDate": "2019-10-21T06:40:36.767Z",
          "content": "<p>Yes.</p>",
          "rawMarkdown": "Yes.",
          "votes": 2
        },
        {
          "id": 654556,
          "postDate": "2019-10-22T02:52:26.817Z",
          "content": "<p>Cool. Could you please share the windowing method?</p>",
          "rawMarkdown": "Cool. Could you please share the windowing method?"
        },
        {
          "id": 654594,
          "postDate": "2019-10-22T04:22:20.083Z",
          "content": "<p>Are you using the new CQ500 dataset?</p>",
          "rawMarkdown": "Are you using the new CQ500 dataset?"
        },
        {
          "id": 654637,
          "postDate": "2019-10-22T05:56:50.023Z",
          "content": "<p>I used Appian's windowing and didn't use CQ500.</p>",
          "rawMarkdown": "I used Appian's windowing and didn't use CQ500."
        },
        {
          "id": 654643,
          "postDate": "2019-10-22T06:12:18.353Z",
          "content": "<p>How long one epoch takes </p>",
          "rawMarkdown": "How long one epoch takes "
        },
        {
          "id": 654732,
          "postDate": "2019-10-22T08:30:44.570Z",
          "content": "<p>4-5 hours</p>",
          "rawMarkdown": "4-5 hours"
        },
        {
          "id": 654897,
          "postDate": "2019-10-22T12:56:27.053Z",
          "content": "<p>Thanks for sharing, I see the efficientnet-b2 was trained with input imm 224x224. How did our shape your net to receive in input imm 410x410 ?</p>",
          "rawMarkdown": "Thanks for sharing, I see the efficientnet-b2 was trained with input imm 224x224. How did our shape your net to receive in input imm 410x410 ?"
        },
        {
          "id": 655399,
          "postDate": "2019-10-23T02:30:16.160Z",
          "content": "<p><a href=\"/uiiurz1\">@uiiurz1</a> Nice results indeed. If I understand correctly, you only used hflip during training, I was just wondering how you apply tta? Thanks once again.</p>",
          "rawMarkdown": "@uiiurz1 Nice results indeed. If I understand correctly, you only used hflip during training, I was just wondering how you apply tta? Thanks once again."
        }
      ]
    },
    {
      "id": 651563,
      "postDate": "2019-10-17T15:58:05.833Z",
      "content": "<p>Update: \nresnet50, 256x256, train on 150k images per epochs, split by patient, lb 0.071 no tta single fold</p>",
      "rawMarkdown": "Update: \nresnet50, 256x256, train on 150k images per epochs, split by patient, lb 0.071 no tta single fold",
      "votes": 4,
      "replies": [
        {
          "id": 651594,
          "postDate": "2019-10-17T16:38:34.343Z",
          "content": "<p>Are you sampling new 150K images every epoch? </p>",
          "rawMarkdown": "Are you sampling new 150K images every epoch? "
        },
        {
          "id": 651599,
          "postDate": "2019-10-17T16:44:32.797Z",
          "content": "<p>Yes, 150k images is randomly selected</p>",
          "rawMarkdown": "Yes, 150k images is randomly selected"
        }
      ]
    },
    {
      "id": 636711,
      "postDate": "2019-09-30T04:56:56.933Z",
      "content": "<p>resnet34, image 256x256, 10k pos, 10k neg, single fold, 0.088 lb\nUpdate: resnet34, image 256x256, single fold -&gt; 0.078 lb</p>",
      "rawMarkdown": "resnet34, image 256x256, 10k pos, 10k neg, single fold, 0.088 lb\nUpdate: resnet34, image 256x256, single fold -&gt; 0.078 lb",
      "votes": 4,
      "replies": [
        {
          "id": 636882,
          "postDate": "2019-09-30T09:57:56.167Z",
          "content": "<p>I think you mean 0.088?</p>",
          "rawMarkdown": "I think you mean 0.088?",
          "votes": 1
        },
        {
          "id": 637804,
          "postDate": "2019-10-01T09:16:03.360Z",
          "content": "<p>I then use the the best checkpoint and finetune on the whole dataset, get lb 0.081 in the first epochs. However, but when I continue to finetune, the lb get worse, even though local cv still improve. Previous cv score is consistent w/ lb. I currently have no idea why. Still working on that :))</p>",
          "rawMarkdown": "I then use the the best checkpoint and finetune on the whole dataset, get lb 0.081 in the first epochs. However, but when I continue to finetune, the lb get worse, even though local cv still improve. Previous cv score is consistent w/ lb. I currently have no idea why. Still working on that :))",
          "votes": 1
        },
        {
          "id": 637833,
          "postDate": "2019-10-01T09:50:05.150Z",
          "content": "<p><a href=\"/dattran2346\">@dattran2346</a>  your model seem overffiting :)) </p>",
          "rawMarkdown": "@dattran2346  your model seem overffiting :)) "
        },
        {
          "id": 637896,
          "postDate": "2019-10-01T10:55:51.310Z",
          "content": "<p>My train and val loss still improving, hardly say it is overfit. Maybe the problem is how I up-train from under-sampling to all dataset 🤔 </p>",
          "rawMarkdown": "My train and val loss still improving, hardly say it is overfit. Maybe the problem is how I up-train from under-sampling to all dataset 🤔 "
        },
        {
          "id": 638427,
          "postDate": "2019-10-01T22:17:59.863Z",
          "content": "<p>Forgive my stupidity, but what do u mean by 10k pos, 10k neg and r34?</p>",
          "rawMarkdown": "Forgive my stupidity, but what do u mean by 10k pos, 10k neg and r34?",
          "votes": 1
        },
        {
          "id": 638502,
          "postDate": "2019-10-02T01:20:22.140Z",
          "content": "<p>he means: \n10 k postive examples\n10 k negative example \nresent 34 (r34?)\n256 image size </p>",
          "rawMarkdown": "he means: \n10 k postive examples\n10 k negative example \nresent 34 (r34?)\n256 image size ",
          "votes": 3
        },
        {
          "id": 638726,
          "postDate": "2019-10-02T11:02:11.877Z",
          "content": "<p>U mean he only uses 20k IDs of the train data, 10k which any = 0 and 10k which any = 1?</p>",
          "rawMarkdown": "U mean he only uses 20k IDs of the train data, 10k which any = 0 and 10k which any = 1?",
          "votes": 1
        },
        {
          "id": 638734,
          "postDate": "2019-10-02T11:13:50.710Z",
          "content": "<p>yep </p>",
          "rawMarkdown": "yep ",
          "votes": 1
        },
        {
          "id": 638745,
          "postDate": "2019-10-02T11:34:38.060Z",
          "content": "<p>Yes, I use resnet 34 with image size of 256 and train under-sampling now to speed up experiment. The samples are selected such that each diseases have the same number of sample, and the total number of positive and negative are the same.</p>",
          "rawMarkdown": "Yes, I use resnet 34 with image size of 256 and train under-sampling now to speed up experiment. The samples are selected such that each diseases have the same number of sample, and the total number of positive and negative are the same.",
          "votes": 1
        },
        {
          "id": 643971,
          "postDate": "2019-10-08T07:22:03.347Z",
          "content": "<p>Thanks <a href=\"/dattran2346\">@dattran2346</a> for this information.</p>\n\n<p>I'm curious, I've been trying the 10k +/10k - approach too since I lack access to a big GPU and want to iterate not too slowly. I imagine that your CV numbers are different from the public LB scores right? Since our validation set contains way more examples from minority classes, I'd expect the CV score to be significantly worse than the public LB scores. Is it the case for you too?</p>",
          "rawMarkdown": "Thanks @dattran2346 for this information.\n\nI'm curious, I've been trying the 10k +/10k - approach too since I lack access to a big GPU and want to iterate not too slowly. I imagine that your CV numbers are different from the public LB scores right? Since our validation set contains way more examples from minority classes, I'd expect the CV score to be significantly worse than the public LB scores. Is it the case for you too?"
        },
        {
          "id": 644092,
          "postDate": "2019-10-08T10:00:43.113Z",
          "content": "<p>Hi <a href=\"/juliencs\">@juliencs</a> \nFor me, the local CV is about 0.08 at epoch 75, and the LB for that checkpoint is 0.086. How do you split your CV, do you stratify base on labels, or base on metadata like Patient or Study ID. Do you pick hard sample and train on them.\nMy CV is stratified by labels, and I just pick random samples.</p>",
          "rawMarkdown": "Hi @juliencs \nFor me, the local CV is about 0.08 at epoch 75, and the LB for that checkpoint is 0.086. How do you split your CV, do you stratify base on labels, or base on metadata like Patient or Study ID. Do you pick hard sample and train on them.\nMy CV is stratified by labels, and I just pick random samples.",
          "votes": 1
        },
        {
          "id": 644147,
          "postDate": "2019-10-08T12:15:31.803Z",
          "content": "<p>Ooooh, 75 epochs. I never tried that long. My CV is same as yours it seems, but I never went past 15 epochs, and the loss was still pretty high by then, hence my question.</p>\n\n<p>75 epochs must last a long time. The idea for me to take a really small sample was to iterate quicker, but if we have to wait for 75 epochs on the smaller sample to reach a minimum, maybe it's not worth it, and taking a bigger (and thus more diverse) sample, for less epochs, might yield at least similar results  (just thinking out loud here really).</p>\n\n<p>Thanks for your answer. I'll keep experimenting.</p>",
          "rawMarkdown": "Ooooh, 75 epochs. I never tried that long. My CV is same as yours it seems, but I never went past 15 epochs, and the loss was still pretty high by then, hence my question.\n\n75 epochs must last a long time. The idea for me to take a really small sample was to iterate quicker, but if we have to wait for 75 epochs on the smaller sample to reach a minimum, maybe it's not worth it, and taking a bigger (and thus more diverse) sample, for less epochs, might yield at least similar results  (just thinking out loud here really).\n\nThanks for your answer. I'll keep experimenting."
        },
        {
          "id": 644155,
          "postDate": "2019-10-08T12:27:18.043Z",
          "content": "<p>Yes, totally agree with you, 75 epochs is way too long for a under-sample model.  And train for that long may actually hurt the model performance. Another approach is to filter out samples in the training, i.e, remove obvious images that have no brain in it for example. </p>",
          "rawMarkdown": "Yes, totally agree with you, 75 epochs is way too long for a under-sample model.  And train for that long may actually hurt the model performance. Another approach is to filter out samples in the training, i.e, remove obvious images that have no brain in it for example. "
        },
        {
          "id": 644308,
          "postDate": "2019-10-08T15:49:05.910Z",
          "content": "<p>So you remove obvious images with no brain in it by hand? or you have some filter function? I could not look at more than 100 even If I tried.</p>",
          "rawMarkdown": "So you remove obvious images with no brain in it by hand? or you have some filter function? I could not look at more than 100 even If I tried."
        },
        {
          "id": 644313,
          "postDate": "2019-10-08T15:55:26.367Z",
          "content": "<p>You can use a simple brain window for this task, just filter by the HU of the brain.</p>",
          "rawMarkdown": "You can use a simple brain window for this task, just filter by the HU of the brain."
        },
        {
          "id": 644348,
          "postDate": "2019-10-08T16:55:48.047Z",
          "content": "<p>But just by filtering by brain window you cant judge whether there is brain or not right? And even the brain window values can vary, there isn't really an optimum range right?</p>",
          "rawMarkdown": "But just by filtering by brain window you cant judge whether there is brain or not right? And even the brain window values can vary, there isn't really an optimum range right?\n"
        },
        {
          "id": 644354,
          "postDate": "2019-10-08T17:07:23.587Z",
          "content": "<p>According to <a href=\"https://en.wikipedia.org/wiki/Hounsfield_scale\">wiki</a> the HU value of the brain is just a narrow range, you can just filter images that don't have (or very small number of pixel) of brain HU. There are about 2-3 images per study where there is no brain (just empty, or part of the CT machine, or just top of the skull).</p>",
          "rawMarkdown": "According to [wiki](https://en.wikipedia.org/wiki/Hounsfield_scale) the HU value of the brain is just a narrow range, you can just filter images that don't have (or very small number of pixel) of brain HU. There are about 2-3 images per study where there is no brain (just empty, or part of the CT machine, or just top of the skull)."
        }
      ]
    },
    {
      "id": 636110,
      "postDate": "2019-09-28T20:36:56.447Z",
      "content": "<p>ResNeXt-101 32x8d: 0.082</p>\n\n<p>Kernel with benchmark (0.089): <a href=\"https://www.kaggle.com/taindow/pytorch-resnext-101-32x8d-benchmark\">https://www.kaggle.com/taindow/pytorch-resnext-101-32x8d-benchmark</a></p>",
      "rawMarkdown": "ResNeXt-101 32x8d: 0.082\n\nKernel with benchmark (0.089): https://www.kaggle.com/taindow/pytorch-resnext-101-32x8d-benchmark",
      "votes": 4,
      "replies": [
        {
          "id": 636300,
          "postDate": "2019-09-29T08:15:02.430Z",
          "content": "<p>I'm sure it sounds stupid, but what's the difference between your kernel with benchmark and your actual model that gives better results? Some extra preprocessing? Because I am also using the ResNeXt-101 model and getting 0.089</p>",
          "rawMarkdown": "I'm sure it sounds stupid, but what's the difference between your kernel with benchmark and your actual model that gives better results? Some extra preprocessing? Because I am also using the ResNeXt-101 model and getting 0.089"
        },
        {
          "id": 636431,
          "postDate": "2019-09-29T14:14:35.937Z",
          "content": "<p>Same dataset, but more epochs and splitting the data to monitor validation performance for the competition metric :)</p>",
          "rawMarkdown": "Same dataset, but more epochs and splitting the data to monitor validation performance for the competition metric :)",
          "votes": 2
        },
        {
          "id": 636471,
          "postDate": "2019-09-29T15:30:23.563Z",
          "content": "<p>Thanks :) I got 0.086 by using 32x16d benchmark</p>",
          "rawMarkdown": "Thanks :) I got 0.086 by using 32x16d benchmark",
          "votes": 1
        },
        {
          "id": 638111,
          "postDate": "2019-10-01T14:43:36.420Z",
          "content": "<p><a href=\"/taindow\">@taindow</a>  Thank you for sharing! It sounds stupid but what metric do you use for your kernel.</p>",
          "rawMarkdown": "@taindow  Thank you for sharing! It sounds stupid but what metric do you use for your kernel."
        },
        {
          "id": 638381,
          "postDate": "2019-10-01T21:02:57.100Z",
          "content": "<p>U mean you are using the metric as a loss function in your model? My model ran for 2 epochs and, between epochs 1 and 2, my validation score (BCE) increased while the competition metric continued going down (same as training loss). Are u having this problem as well?</p>",
          "rawMarkdown": "U mean you are using the metric as a loss function in your model? My model ran for 2 epochs and, between epochs 1 and 2, my validation score (BCE) increased while the competition metric continued going down (same as training loss). Are u having this problem as well?"
        }
      ]
    },
    {
      "id": 634704,
      "postDate": "2019-09-26T16:37:40.677Z",
      "content": "<p>resnet34 -- 0.084</p>",
      "rawMarkdown": "resnet34 -- 0.084",
      "votes": 4,
      "replies": [
        {
          "id": 636009,
          "postDate": "2019-09-28T15:35:10.650Z",
          "content": "<p>Hi,\nwhat input image size you used ? did you used the full number of images of just a sub portion ? </p>",
          "rawMarkdown": "Hi,\nwhat input image size you used ? did you used the full number of images of just a sub portion ? ",
          "votes": 1
        },
        {
          "id": 636278,
          "postDate": "2019-09-29T07:08:15.800Z",
          "content": "<p>Image size - 512 x 512...all the images used</p>",
          "rawMarkdown": "Image size - 512 x 512...all the images used",
          "votes": 3
        }
      ]
    },
    {
      "id": 660412,
      "postDate": "2019-10-29T04:56:29.687Z",
      "content": "<p>a simple resnet34 without modification on 288x288 get decent results of LB 0.080 (local cv 0.057)\nsee: <a href=\"https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/109272#latest-660570\">https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/109272#latest-660570</a></p>\n\n<p>```\nwindowing input:</p>\n\n<pre><code>brain       = window_image(hu, 40,  80)\nsubdural    = window_image(hu, 80, 200)\nsoft_tissue = window_image(hu, 40, 380)\n</code></pre>\n\n<p>single model, TTA = ['null', 'flip_left_right']</p>\n\n<p>```</p>",
      "rawMarkdown": "a simple resnet34 without modification on 288x288 get decent results of LB 0.080 (local cv 0.057)\nsee: https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/109272#latest-660570\n\n```\nwindowing input:\n\n    brain       = window_image(hu, 40,  80)\n    subdural    = window_image(hu, 80, 200)\n    soft_tissue = window_image(hu, 40, 380)\n\nsingle model, TTA = ['null', 'flip_left_right']\n\n```\n",
      "votes": 1,
      "replies": [
        {
          "id": 660511,
          "postDate": "2019-10-29T08:38:39.957Z",
          "content": "<p>update:  the same setup achieve LB 0.70 after increasing size to 512x512 input</p>",
          "rawMarkdown": "update:  the same setup achieve LB 0.70 after increasing size to 512x512 input",
          "votes": 1
        },
        {
          "id": 660530,
          "postDate": "2019-10-29T09:17:11.380Z",
          "content": "<p>other results:\nEfficientNet B4 224x224 - 0.081\nSeResNext50 512x512     - 0.070</p>",
          "rawMarkdown": "other results:\nEfficientNet B4 224x224 - 0.081\nSeResNext50 512x512     - 0.070\n",
          "votes": 1
        },
        {
          "id": 660533,
          "postDate": "2019-10-29T09:28:34.683Z",
          "content": "<p><a href=\"/hengck23\">@hengck23</a> interested in teaming up?</p>",
          "rawMarkdown": "@hengck23 interested in teaming up?"
        },
        {
          "id": 660671,
          "postDate": "2019-10-29T13:02:12.743Z",
          "content": "<p><a href=\"/hengck23\">@hengck23</a> Do you have any ideas on how to go below 0.065? It seems that a well trained, reasonably complex model on full resolution and one of publicly known windowing variants will give ~0.07-0.074 on single fold and ~0.065-0.067 ensembling several folds </p>",
          "rawMarkdown": "@hengck23 Do you have any ideas on how to go below 0.065? It seems that a well trained, reasonably complex model on full resolution and one of publicly known windowing variants will give ~0.07-0.074 on single fold and ~0.065-0.067 ensembling several folds "
        },
        {
          "id": 660691,
          "postDate": "2019-10-29T13:33:36.873Z",
          "content": "<p>the training loss can go as low as 0.030~0.040. Hence with good generalization, it think you can get 0.060 without tricks. </p>\n\n<p>try ensemble network of different architecture, difference size input, different windowing, etc</p>\n\n<p>try tta of crop, scale, flip</p>\n\n<p>try smooth your output by </p>\n\n<p>```\nlogit = net(input)\nlogit += some small noise</p>\n\n<p>loss =(logit,truth)\nloss.backward()</p>\n\n<p>```\n etc ...</p>",
          "rawMarkdown": "the training loss can go as low as 0.030~0.040. Hence with good generalization, it think you can get 0.060 without tricks. \n\ntry ensemble network of different architecture, difference size input, different windowing, etc\n\ntry tta of crop, scale, flip\n\ntry smooth your output by \n\n\n```\nlogit = net(input)\nlogit += some small noise\n\nloss =(logit,truth)\nloss.backward()\n\n```\n etc ...",
          "votes": 2
        },
        {
          "id": 660809,
          "postDate": "2019-10-29T16:31:02.057Z",
          "content": "<p><a href=\"https://www.kaggle.com/braquino/correct-images-sequece\">https://www.kaggle.com/braquino/correct-images-sequece</a></p>\n\n<p>you can try to to use nearby slice of the same patient to post correct prediction results</p>",
          "rawMarkdown": "https://www.kaggle.com/braquino/correct-images-sequece\n\nyou can try to to use nearby slice of the same patient to post correct prediction results"
        }
      ]
    },
    {
      "id": 644742,
      "postDate": "2019-10-09T09:10:38.833Z",
      "content": "<p>update\nEfficientNet B0 - 256x256 --&gt; 0.072</p>",
      "rawMarkdown": "update\nEfficientNet B0 - 256x256 --&gt; 0.072",
      "votes": 1,
      "replies": [
        {
          "id": 644759,
          "postDate": "2019-10-09T09:45:02.697Z",
          "content": "<p>Are you loading images from dicom? And how many epochs?</p>",
          "rawMarkdown": "Are you loading images from dicom? And how many epochs?"
        },
        {
          "id": 644875,
          "postDate": "2019-10-09T13:05:31.317Z",
          "content": "<p><a href=\"/uiiurz1\">@uiiurz1</a> Hi, do u use Keras? I would like to know if it is allowed to import EfficientNet from some repository, since it doesn't come built in Keras and I didn't see anybody anouncing this model in the external data thread.</p>",
          "rawMarkdown": "@uiiurz1 Hi, do u use Keras? I would like to know if it is allowed to import EfficientNet from some repository, since it doesn't come built in Keras and I didn't see anybody anouncing this model in the external data thread."
        },
        {
          "id": 645235,
          "postDate": "2019-10-09T23:25:53.100Z",
          "content": "<ul>\n<li>png</li>\n<li>5epochs</li>\n<li>pytorch</li>\n</ul>",
          "rawMarkdown": "- png\n- 5epochs\n- pytorch"
        },
        {
          "id": 645325,
          "postDate": "2019-10-10T02:16:00.447Z",
          "content": "<p>Do you train on all images or just a sub-set?</p>",
          "rawMarkdown": "Do you train on all images or just a sub-set?"
        },
        {
          "id": 645522,
          "postDate": "2019-10-10T07:14:39.773Z",
          "content": "<p>Do you have a validation split?</p>",
          "rawMarkdown": "Do you have a validation split?"
        },
        {
          "id": 645611,
          "postDate": "2019-10-10T09:38:43.407Z",
          "content": "<ul>\n<li>all images</li>\n<li>split randomly 80% to train and 20% to validation</li>\n</ul>",
          "rawMarkdown": "- all images\n- split randomly 80% to train and 20% to validation"
        },
        {
          "id": 645614,
          "postDate": "2019-10-10T09:40:26.593Z",
          "content": "<p>Thanks, I guess your preprocessing must be very good to get you that LB score</p>",
          "rawMarkdown": "Thanks, I guess your preprocessing must be very good to get you that LB score"
        },
        {
          "id": 651186,
          "postDate": "2019-10-17T06:45:46.777Z",
          "content": "<p>pip install efficientnet\npip install keras_efficientnet</p>",
          "rawMarkdown": "pip install efficientnet\npip install keras_efficientnet"
        }
      ]
    },
    {
      "id": 641962,
      "postDate": "2019-10-05T11:32:11.260Z",
      "content": "<p>VGG19 - 224x224 - 0.073</p>",
      "rawMarkdown": "VGG19 - 224x224 - 0.073",
      "votes": 1,
      "replies": [
        {
          "id": 641990,
          "postDate": "2019-10-05T12:10:40.497Z",
          "content": "<p>Thank you for sharing! Do you mind if I ask How many epoch and data do you use for training? </p>",
          "rawMarkdown": "Thank you for sharing! Do you mind if I ask How many epoch and data do you use for training? "
        },
        {
          "id": 642340,
          "postDate": "2019-10-05T23:10:22.213Z",
          "content": "<p>I'm using model checkpoint based on val_loss, but I think it was around 20 epochs. And I'm using one-fold with 80% for train e 20% for validation.</p>",
          "rawMarkdown": "I'm using model checkpoint based on val_loss, but I think it was around 20 epochs. And I'm using one-fold with 80% for train e 20% for validation.",
          "votes": 1
        },
        {
          "id": 642374,
          "postDate": "2019-10-06T00:56:10.057Z",
          "content": "<p><a href=\"/fernandocamargo\">@fernandocamargo</a> how long your model  take to training one epoch? Thank you for replying me! </p>",
          "rawMarkdown": "@fernandocamargo how long your model  take to training one epoch? Thank you for replying me! "
        },
        {
          "id": 643596,
          "postDate": "2019-10-07T17:01:38.393Z",
          "content": "<p>It takes around 40min.</p>",
          "rawMarkdown": "It takes around 40min.",
          "votes": 1
        },
        {
          "id": 643667,
          "postDate": "2019-10-07T18:55:40.143Z",
          "content": "<p>Nice work! I am trying to speed my code for fast training. Could you give me some suggestion for this? Thank you so much!</p>",
          "rawMarkdown": "Nice work! I am trying to speed my code for fast training. Could you give me some suggestion for this? Thank you so much!"
        },
        {
          "id": 643901,
          "postDate": "2019-10-08T05:27:28.427Z",
          "content": "<p>The easiest way to speed up training would be using FP16 computations. Also I posted a paper <a href=\"https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/111383#latest-641873\">here</a> which talks about only updating the top losses when backpropagating the error. It can also provide some speed up.</p>",
          "rawMarkdown": "The easiest way to speed up training would be using FP16 computations. Also I posted a paper [here](https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/111383#latest-641873) which talks about only updating the top losses when backpropagating the error. It can also provide some speed up.",
          "votes": 2
        },
        {
          "id": 643957,
          "postDate": "2019-10-08T07:00:29.720Z",
          "content": "<p>hi <a href=\"/salilm23\">@salilm23</a> . Thanks for your suggestion. May I ask you How can I find implementation of this paper?</p>",
          "rawMarkdown": "hi @salilm23 . Thanks for your suggestion. May I ask you How can I find implementation of this paper?\n"
        },
        {
          "id": 643970,
          "postDate": "2019-10-08T07:18:58.707Z",
          "content": "<p>Hey <a href=\"/linhlpv\">@linhlpv</a> , implementation is also linked in the post :)</p>\n\n<p>Edit - Sorry, the implementation linked to the paper has now been removed </p>",
          "rawMarkdown": "Hey @linhlpv , implementation is also linked in the post :)\n\nEdit - Sorry, the implementation linked to the paper has now been removed ",
          "votes": 2
        },
        {
          "id": 643998,
          "postDate": "2019-10-08T07:59:37.797Z",
          "content": "<p><a href=\"/salilm23\">@salilm23</a> - hi, do you have a local copy of the code? maybe you could upload it somewehere</p>",
          "rawMarkdown": "@salilm23 - hi, do you have a local copy of the code? maybe you could upload it somewehere"
        },
        {
          "id": 644117,
          "postDate": "2019-10-08T10:52:52.180Z",
          "content": "<p>Well, the implementation seems to be back now. <a href=\"https://anonymous.4open.science/r/c6d4060d-bdac-4d31-839e-8579650255b3/\">https://anonymous.4open.science/r/c6d4060d-bdac-4d31-839e-8579650255b3/</a></p>",
          "rawMarkdown": "Well, the implementation seems to be back now. https://anonymous.4open.science/r/c6d4060d-bdac-4d31-839e-8579650255b3/",
          "votes": 1
        }
      ]
    },
    {
      "id": 640833,
      "postDate": "2019-10-04T09:02:46.363Z",
      "content": "<p>ResNeXt 32x8d - 0.087 with 50/50 % sampler</p>",
      "rawMarkdown": "ResNeXt 32x8d - 0.087 with 50/50 % sampler",
      "votes": 1,
      "replies": [
        {
          "id": 640848,
          "postDate": "2019-10-04T09:13:19.170Z",
          "content": "<p>What do you mean by a 50/50% sampler exactly?</p>",
          "rawMarkdown": "What do you mean by a 50/50% sampler exactly?\n"
        },
        {
          "id": 640860,
          "postDate": "2019-10-04T09:20:50.817Z",
          "content": "<p>I took all data with any == 1 and add randomly with any !=0 so that the ratio would be 50 to 50 %</p>",
          "rawMarkdown": "I took all data with any == 1 and add randomly with any !=0 so that the ratio would be 50 to 50 %"
        },
        {
          "id": 640877,
          "postDate": "2019-10-04T09:34:59.760Z",
          "content": "<p>I'm not sure I'm getting you here, wouldn't any==1 and any !=0 give the same images?</p>",
          "rawMarkdown": "I'm not sure I'm getting you here, wouldn't any==1 and any !=0 give the same images?"
        },
        {
          "id": 641073,
          "postDate": "2019-10-04T12:24:26.867Z",
          "content": "<p>Sorry. It is my mistake. I mean any==1 and any !=1</p>",
          "rawMarkdown": "Sorry. It is my mistake. I mean any==1 and any !=1",
          "votes": 1
        },
        {
          "id": 641579,
          "postDate": "2019-10-04T20:01:27.870Z",
          "content": "<p>And how many epochs?</p>",
          "rawMarkdown": "And how many epochs?\n"
        },
        {
          "id": 641757,
          "postDate": "2019-10-05T03:48:24.087Z",
          "content": "<p>1 epoch)</p>",
          "rawMarkdown": "1 epoch)"
        }
      ]
    },
    {
      "id": 650323,
      "postDate": "2019-10-16T09:21:56.890Z",
      "content": "<p>Seresnext50-&gt;LB0.072\nimg size-&gt;512*512\nthree windowing preprocessor</p>",
      "rawMarkdown": "Seresnext50-&gt;LB0.072\nimg size-&gt;512*512\nthree windowing preprocessor",
      "votes": 2,
      "replies": [
        {
          "id": 659275,
          "postDate": "2019-10-27T11:46:14.093Z",
          "content": "<p><a href=\"/takuok\">@takuok</a> I am just wondering if you can share what augmentations you are using? Also, is the result of a single fold?</p>",
          "rawMarkdown": "@takuok I am just wondering if you can share what augmentations you are using? Also, is the result of a single fold?"
        }
      ]
    },
    {
      "id": 647449,
      "postDate": "2019-10-12T16:35:22.083Z",
      "content": "<p>With raw input from dcmread, random ShuffleSplit, no tta,\nB0 0.079 -&gt; 0.074 224x224</p>",
      "rawMarkdown": "With raw input from dcmread, random ShuffleSplit, no tta,\nB0 0.079 -&gt; 0.074 224x224",
      "votes": 2,
      "replies": [
        {
          "id": 647547,
          "postDate": "2019-10-12T20:39:20.787Z",
          "content": "<p>Epochs?</p>",
          "rawMarkdown": "Epochs?"
        },
        {
          "id": 647550,
          "postDate": "2019-10-12T20:45:03.347Z",
          "content": "<p>I'm pretty sure that's subjective to many other factors. For .95/.05 split, default class weight it seems 4-6 epochs works well and then starts to overfit real bad real fast afterwards.</p>",
          "rawMarkdown": "I'm pretty sure that's subjective to many other factors. For .95/.05 split, default class weight it seems 4-6 epochs works well and then starts to overfit real bad real fast afterwards."
        },
        {
          "id": 647551,
          "postDate": "2019-10-12T20:46:41.027Z",
          "content": "<p>Noticed that for resnext, more than 4 epochs is generally overfittnig</p>",
          "rawMarkdown": "Noticed that for resnext, more than 4 epochs is generally overfittnig"
        },
        {
          "id": 650016,
          "postDate": "2019-10-16T02:26:43.553Z",
          "content": "<p>could you tell me what's the meaning of tta?\nMuch thanks</p>",
          "rawMarkdown": "could you tell me what's the meaning of tta?\nMuch thanks"
        },
        {
          "id": 650091,
          "postDate": "2019-10-16T04:59:59.483Z",
          "content": "<p>Test-time augmentation: <a href=\"https://machinelearningmastery.com/how-to-use-test-time-augmentation-to-improve-model-performance-for-image-classification/\">https://machinelearningmastery.com/how-to-use-test-time-augmentation-to-improve-model-performance-for-image-classification/</a></p>",
          "rawMarkdown": "Test-time augmentation: https://machinelearningmastery.com/how-to-use-test-time-augmentation-to-improve-model-performance-for-image-classification/"
        },
        {
          "id": 659954,
          "postDate": "2019-10-28T13:41:23.760Z",
          "content": "<p>what sort of training loss and validation loss do you have just before it starts to overfit? thanks</p>",
          "rawMarkdown": "what sort of training loss and validation loss do you have just before it starts to overfit? thanks"
        }
      ]
    },
    {
      "id": 642349,
      "postDate": "2019-10-05T23:31:55.780Z",
      "content": "<p>InceptionResnetv2 -224*224 --&gt; 0.086</p>",
      "rawMarkdown": "InceptionResnetv2 -224*224 --&gt; 0.086",
      "votes": 2
    },
    {
      "id": 636490,
      "postDate": "2019-09-29T16:18:37.737Z",
      "content": "<p>ResNeXt-101 32x16d : 0.086</p>",
      "rawMarkdown": "ResNeXt-101 32x16d : 0.086",
      "votes": 2,
      "replies": [
        {
          "id": 636568,
          "postDate": "2019-09-29T19:50:08.533Z",
          "content": "<p>Thanks for your sharing! How many epoch that you train you model?</p>",
          "rawMarkdown": "Thanks for your sharing! How many epoch that you train you model?"
        },
        {
          "id": 636657,
          "postDate": "2019-09-30T01:56:38.690Z",
          "content": "<p>1 epoch for now, due to size of dataset even that takes a long time</p>",
          "rawMarkdown": "1 epoch for now, due to size of dataset even that takes a long time",
          "votes": 1
        },
        {
          "id": 636714,
          "postDate": "2019-09-30T05:04:37.243Z",
          "content": "<p>Nice work! I am also using ResNeXt 32x16d and archive 0.088 :D. i using Adam optimizer with lr=1e-5. Thanks for aswering me!</p>",
          "rawMarkdown": "Nice work! I am also using ResNeXt 32x16d and archive 0.088 :D. i using Adam optimizer with lr=1e-5. Thanks for aswering me!\n"
        },
        {
          "id": 638923,
          "postDate": "2019-10-02T15:07:56.093Z",
          "content": "<p>Did you change your model to better your accuracy? Or did you change some hyperparameters like learning rate?</p>",
          "rawMarkdown": "Did you change your model to better your accuracy? Or did you change some hyperparameters like learning rate?\n"
        },
        {
          "id": 641589,
          "postDate": "2019-10-04T20:06:24.517Z",
          "content": "<p>Now I use RAdam for optimizer. You should try it.</p>",
          "rawMarkdown": "Now I use RAdam for optimizer. You should try it."
        },
        {
          "id": 643083,
          "postDate": "2019-10-07T04:37:05.440Z",
          "content": "<p>So you're using keras then?</p>",
          "rawMarkdown": "So you're using keras then?\n"
        },
        {
          "id": 643170,
          "postDate": "2019-10-07T07:52:27.010Z",
          "content": "<p>I have both Keras and Pytorch Base code.</p>",
          "rawMarkdown": "I have both Keras and Pytorch Base code."
        }
      ]
    },
    {
      "id": 649196,
      "postDate": "2019-10-15T03:54:12.313Z",
      "content": "<p>VGG19 \nepoch20\nLB：0.082</p>",
      "rawMarkdown": "VGG19 \nepoch20\nLB：0.082",
      "replies": [
        {
          "id": 649393,
          "postDate": "2019-10-15T09:42:36.517Z",
          "content": "<p>Did you train it on the whole dataset?</p>",
          "rawMarkdown": "Did you train it on the whole dataset?"
        },
        {
          "id": 659780,
          "postDate": "2019-10-28T08:54:39.633Z",
          "content": "<p>undata: VGG19_BN\nepoches:15\nLB:0.075</p>",
          "rawMarkdown": "undata: VGG19_BN\nepoches:15\nLB:0.075"
        },
        {
          "id": 659781,
          "postDate": "2019-10-28T08:55:37.440Z",
          "content": "<p>yes， I use the whole data, I will try three window process, but i have no a hug disk</p>",
          "rawMarkdown": "yes， I use the whole data, I will try three window process, but i have no a hug disk"
        }
      ]
    },
    {
      "id": 643575,
      "postDate": "2019-10-07T16:28:33.317Z",
      "content": "<p>So far Resnet50 .0094 w/o any augmentation or tta. </p>",
      "rawMarkdown": "So far Resnet50 .0094 w/o any augmentation or tta. ",
      "replies": [
        {
          "id": 650014,
          "postDate": "2019-10-16T02:25:52.067Z",
          "content": "<p>could you tell me what's the meaning of tta?\nMuch Thanks</p>",
          "rawMarkdown": "could you tell me what's the meaning of tta?\nMuch Thanks"
        },
        {
          "id": 653123,
          "postDate": "2019-10-20T01:13:20.010Z",
          "content": "<p>TTA = Test Time Augmentation</p>",
          "rawMarkdown": "TTA = Test Time Augmentation",
          "votes": 1
        }
      ]
    },
    {
      "id": 660794,
      "postDate": "2019-10-29T16:09:22.333Z",
      "content": "<p>hm.</p>",
      "rawMarkdown": "hm.\n",
      "votes": -1
    },
    {
      "id": 648597,
      "postDate": "2019-10-14T12:01:47.100Z",
      "content": "<p><a href=\"/appian\">@appian</a> thanks for reply but it takes me to 4 hours for an epoch on kernel what should i do</p>",
      "rawMarkdown": "@appian thanks for reply but it takes me to 4 hours for an epoch on kernel what should i do"
    },
    {
      "id": 648113,
      "postDate": "2019-10-13T19:03:22.423Z",
      "content": "<p><a href=\"/appian\">@appian</a> how much time does it take you train up to 2 epochs</p>",
      "rawMarkdown": "@appian how much time does it take you train up to 2 epochs",
      "replies": [
        {
          "id": 648470,
          "postDate": "2019-10-14T08:35:28.220Z",
          "content": "<p>Took less than 3 hours with a single 1080ti (one epoch was about 5,000 seconds)</p>",
          "rawMarkdown": "Took less than 3 hours with a single 1080ti (one epoch was about 5,000 seconds)"
        }
      ]
    },
    {
      "id": 647975,
      "postDate": "2019-10-13T15:02:09.523Z",
      "content": "<p>EfficientNet B0 - 256x256 --&gt; 0.077\nImage augmentation included horizontal flip and rotation of up to 10 degrees\nTrained for 10 epochs using cyclical learning rate, max 0.009</p>",
      "rawMarkdown": "EfficientNet B0 - 256x256 --&gt; 0.077\nImage augmentation included horizontal flip and rotation of up to 10 degrees\nTrained for 10 epochs using cyclical learning rate, max 0.009",
      "replies": [
        {
          "id": 648012,
          "postDate": "2019-10-13T16:01:55.150Z",
          "content": "<p><a href=\"/joerengland\">@joerengland</a> did you add anything to your B0? mine seems to be overfitting and stuck above 0.086 no matter the regularization method I'm using, and I'm basically using everything I know (globalpooling, dropout, weight decay)</p>",
          "rawMarkdown": "@joerengland did you add anything to your B0? mine seems to be overfitting and stuck above 0.086 no matter the regularization method I'm using, and I'm basically using everything I know (globalpooling, dropout, weight decay)"
        },
        {
          "id": 648183,
          "postDate": "2019-10-13T20:48:46.207Z",
          "content": "<p>No I didn't add anything. I used the pretrained version from this Pytorch implementation (<a href=\"https://github.com/lukemelas/EfficientNet-PyTorch\">https://github.com/lukemelas/EfficientNet-PyTorch</a>) pretty much right out of the box using the fastai library. Every time I try to regularize strongly or add more data augmentation, performance drops. I have also tried unfreezing and fine tuning the pretrained layers a few times, but that has thus far been less successful than just doing transfer learning.</p>",
          "rawMarkdown": "No I didn't add anything. I used the pretrained version from this Pytorch implementation (https://github.com/lukemelas/EfficientNet-PyTorch) pretty much right out of the box using the fastai library. Every time I try to regularize strongly or add more data augmentation, performance drops. I have also tried unfreezing and fine tuning the pretrained layers a few times, but that has thus far been less successful than just doing transfer learning.",
          "votes": 1
        }
      ]
    },
    {
      "id": 647830,
      "postDate": "2019-10-13T11:06:54.310Z",
      "content": "<p>@XingJian Lyu are you training on full dataset </p>",
      "rawMarkdown": "@XingJian Lyu are you training on full dataset ",
      "replies": [
        {
          "id": 656649,
          "postDate": "2019-10-24T13:50:13.223Z",
          "content": "<p><a href=\"/pranshu29\">@pranshu29</a> Yes, I train on full dataset by default:)</p>",
          "rawMarkdown": "@pranshu29 Yes, I train on full dataset by default:)"
        }
      ]
    },
    {
      "id": 647633,
      "postDate": "2019-10-13T02:27:32.177Z",
      "content": "<p>As Oct. 12th, size 256x256, model: Resnet50 0.089</p>",
      "rawMarkdown": "As Oct. 12th, size 256x256, model: Resnet50 0.089"
    },
    {
      "id": 642803,
      "postDate": "2019-10-06T17:13:29.340Z",
      "content": "<p>ResNet50 - 224*224, 5epochs, full dataset (23905 seconds) --&gt; 0.108...</p>",
      "rawMarkdown": "ResNet50 - 224*224, 5epochs, full dataset (23905 seconds) --&gt; 0.108...",
      "replies": [
        {
          "id": 643184,
          "postDate": "2019-10-07T08:06:30.730Z",
          "content": "<p><a href=\"/ihelon\">@ihelon</a> have you tried a different architecture? I don't know why, but I find ResNet50 weak this competition.  </p>",
          "rawMarkdown": "@ihelon have you tried a different architecture? I don't know why, but I find ResNet50 weak this competition.  "
        },
        {
          "id": 644125,
          "postDate": "2019-10-08T11:21:06.623Z",
          "content": "<p>Same with me...<code>resnet50</code> is not performing well. <code>resnet34</code> is better.</p>",
          "rawMarkdown": "Same with me...`resnet50` is not performing well. `resnet34` is better.",
          "votes": 1
        }
      ]
    },
    {
      "id": 642646,
      "postDate": "2019-10-06T12:36:43.493Z",
      "content": "<p>Score -  0.107\n- EfficientNetb2 , 224x \n- With just 2 epoch .\n- steps = len(generator)\n- Little touch on image pre processing for Gaussian Blur\n- loss - log_loss</p>",
      "rawMarkdown": "Score -  0.107\n- EfficientNetb2 , 224x \n- With just 2 epoch .\n- steps = len(generator)\n- Little touch on image pre processing for Gaussian Blur\n- loss - log_loss\n"
    },
    {
      "id": 639303,
      "postDate": "2019-10-03T03:40:48.720Z",
      "content": "<p>Inception , 224x224 , ---&gt; 0.091</p>",
      "rawMarkdown": "Inception , 224x224 , ---&gt; 0.091"
    },
    {
      "id": 638909,
      "postDate": "2019-10-02T14:44:03.017Z",
      "content": "<p>You guys are awesome!\nI just submit a public kernel to apply the GCP credits😜 \nStill writing the dataloader🙈 </p>",
      "rawMarkdown": "You guys are awesome!\nI just submit a public kernel to apply the GCP credits😜 \nStill writing the dataloader🙈 "
    },
    {
      "id": 650505,
      "postDate": "2019-10-16T12:59:12.447Z",
      "content": "<p>Thanks for sharing</p>",
      "rawMarkdown": "Thanks for sharing"
    },
    {
      "id": 636904,
      "postDate": "2019-09-30T10:21:05.513Z",
      "content": "<p>Thank you for sharing!</p>",
      "rawMarkdown": "Thank you for sharing!"
    }
  ],
  "comments": [
    {
      "id": 651862,
      "author_name": "NguyenThanhNhan",
      "author_url": "",
      "post_date": "2019-10-18T02:58:39.550000",
      "content": "<p>Single-fold SE ResNext50, 512x512 raw HU image: lb 0.066 w/o tta</p>",
      "votes": 16,
      "replies": [
        {
          "id": 652087,
          "author_name": "Eek The Cat",
          "author_url": "",
          "post_date": "2019-10-18T10:26:30.510000",
          "content": "<p><a href=\"/andy2709\">@andy2709</a> Nice result! You're not using any windows? How many epochs? I tried using raw dicom, converted to float and divided by max int16 value, but wasn't able to get improvements in score. I used much simpler architecture though.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 652513,
          "author_name": "NguyenThanhNhan",
          "author_url": "",
          "post_date": "2019-10-19T00:45:18.473000",
          "content": "<p>I plugged in a trainable module (reference here: <a href=\"https://arxiv.org/pdf/1812.00572.pdf\">https://arxiv.org/pdf/1812.00572.pdf</a>, the sigmoid one) to transform the raw hu into relevant windows.\n1 epoch took 45 mins on a v100 and i trained for 30 epochs. Data sampling is the key here :)</p>",
          "votes": 9,
          "replies": []
        },
        {
          "id": 652813,
          "author_name": "Tom Aindow",
          "author_url": "",
          "post_date": "2019-10-19T12:59:08.417000",
          "content": "<p>Really interesting idea thanks for sharing the link :) </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 655738,
          "author_name": "baijuguoxi",
          "author_url": "",
          "post_date": "2019-10-23T12:53:21.243000",
          "content": "<p>hello, I want to know how you used the trainable module, the Nan would occur when I added the module? </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 656392,
          "author_name": "Alexander Abstreiter",
          "author_url": "",
          "post_date": "2019-10-24T07:46:39.317000",
          "content": "<p>Interesting Paper. Thanks for sharing!\nOut of curiosity: what kind of windows did the Window Optimization layer learn to use in your case?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 656763,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-10-24T15:38:31.433000",
          "content": "",
          "votes": 0,
          "replies": []
        },
        {
          "id": 656776,
          "author_name": "NguyenThanhNhan",
          "author_url": "",
          "post_date": "2019-10-24T15:55:52.120000",
          "content": "<p><a href=\"/lw827380444\">@lw827380444</a>  I transformed the DICOM arrays into HU images using the rescale intercept and slope before passing it into the module. I never encountered nan when training with different architectures.</p>\n\n<p><a href=\"/ambpro\">@ambpro</a> Here's my implementation,  with different weight init. from the original paper's repo. I inserted this module right before any pretrained ImageNet model and it worked pretty well for me.</p>\n\n<p>```\nfrom collections import OrderedDict\nimport math \nimport torch \nimport torch.nn as nn </p>\n\n<p>def get_init_conv_params_sigmoid(ww, wl, smooth=1., upbound_value=255.):\n    w = 2./ww * math.log(upbound_value/smooth - 1.)\n    b = -2.*wl/ww * math.log(upbound_value/smooth - 1.)\n    return (w, b)\n<code>\n</code>\nclass WSO(nn.Module):\n    def <strong>init</strong>(self,  <code>windows=OrderedDict({\n            'brain': {'W': 80, 'L': 40},\n            'subdural': {'W': 215, 'L': 75},\n            'bony': {'W': 2800, 'L': 600},\n            'tissue': {'W': 375, 'L': 40},\n            })</code>, U=255., eps=1.):\n        super(WSO, self).<strong>init</strong>()\n        self.windows = windows\n        self.U = U\n        self.eps = eps\n        self.conv1x1 = nn.Conv2d(1, len(windows), kernel_size=1, stride=1, padding=0)\n        self.bn = nn.BatchNorm2d(len(windows)\n        nn.init.ones_(self.conv1x1.weight.data)\n        nn.init.zeros_(self.conv1x1.bias.data)\n        nn.init.ones_(self.bn.weight.data)\n        nn.init.zeros_(self.bn.bias.data)\n        weight, bias = self._get_window_params()\n        self.register_buffer(\"weight\", weight)\n        self.register_buffer(\"bias\", bias)</p>\n\n<pre><code>def _get_window_params(self):\n    weight = []\n    bias = []\n    for _, window in self.windows.items():\n        ww, wl = window[\"W\"], window[\"L\"]\n        w, b = get_init_conv_params_sigmoid(ww, wl, self.eps, self.U)\n        weight.append(w)\n        bias.append(b)\n    weight = torch.as_tensor(weight)\n    bias = torch.as_tensor(bias)\n    # print(weight, bias)\n    return weight, bias\n\ndef forward(self, x):\n    x = self.conv1x1(x)\n    if x.dtype == torch.float16:\n        self.weight = self.weight.half()\n        self.bias = self.bias.half()\n    x = x.mul(self.weight[None, :, None, None]) + self.bias[None, :, None, None]\n    x = torch.sigmoid(x)\n    x = x.mul(self.U)\n    x = self.bn(x)\n    return x\n</code></pre>\n\n<p>```</p>",
          "votes": 13,
          "replies": []
        },
        {
          "id": 657763,
          "author_name": "baijuguoxi",
          "author_url": "",
          "post_date": "2019-10-25T12:13:42.737000",
          "content": "<p>Sorry, I had a question, that is there are some differences between your implementation and original codes in keras? Maybe, the weight and bias in WSO should be from conv1x1, but you have set the new weight and bias? please give me some instructions if possible? Thanks for your sharing!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 659765,
          "author_name": "Dmytro Poplavskiy",
          "author_url": "",
          "post_date": "2019-10-28T08:35:45.457000",
          "content": "<p>I think it's equivalent, slightly less efficient as both 1x1 conv and additional linear transformation used. It's also possible to directly initialize 1x1 conv with similar result.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 660142,
          "author_name": "NguyenThanhNhan",
          "author_url": "",
          "post_date": "2019-10-28T18:45:51.387000",
          "content": "<p>To echo what <a href=\"/dmytropoplavskiy\">@dmytropoplavskiy</a> said , I have mistakenly applied linear transformation twice.  Thank you guys for helping me correct it 😄. \nIn the new code, I just initialized the weight and bias of the conv1x1 with the values obtained from equation (2) in the paper:</p>\n\n<p>```\n        self.windows = windows\n        self.U = U\n        self.eps = eps\n        self.conv1x1 = nn.Conv2d(1, len(windows), kernel_size=1, stride=1, padding=0)</p>\n\n<pre><code>    weight, bias = self._get_window_params()\n    self.conv1x1.weight.data = weight[:, None, None, None]\n    self.conv1x1.bias.data = bias\n\ndef _get_window_params(self):\n    weight = []\n    bias = []\n    for _, window in self.windows.items():\n        ww, wl = window[\"W\"], window[\"L\"]\n        w, b = get_init_conv_params_sigmoid(ww, wl, self.eps, self.U)\n        weight.append(w)\n        bias.append(b)\n    weight = torch.as_tensor(weight)\n    bias = torch.as_tensor(bias)\n    # print(weight, bias)\n    return weight, bias\n\ndef forward(self, x):\n    x = self.conv1x1(x)\n    x = torch.sigmoid(x)\n    x = x.mul(self.U)\n    return x\n</code></pre>\n\n<p>```</p>\n\n<p>I re-ran two experiments with the old and new WSO module (same training configs, ResNet18 etc) and observed that the results were similar (difference of 1e-4).</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 662726,
          "author_name": "AlGiLa",
          "author_url": "",
          "post_date": "2019-10-31T23:11:50.810000",
          "content": "<p>Hi, I see the WSO model generate in output a [4,512,512] but the net you use (SE ResNext50) require in input  [3,512,512] how did you connect the two ?</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 659411,
      "author_name": "Oleg Yaroshevskiy",
      "author_url": "",
      "post_date": "2019-10-27T16:02:06.410000",
      "content": "<p>Resnet34 with modifications, 256 image size, 0.062 LB</p>",
      "votes": 9,
      "replies": [
        {
          "id": 659431,
          "author_name": "Arthur Stsepanenka",
          "author_url": "",
          "post_date": "2019-10-27T16:57:20.930000",
          "content": "<p>Single fold?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 659467,
          "author_name": "Eek The Cat",
          "author_url": "",
          "post_date": "2019-10-27T18:04:00.593000",
          "content": "<p>That's a great score! What windowing, if any, you used, if you don't mind me asking?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 659571,
          "author_name": "Gabriel",
          "author_url": "",
          "post_date": "2019-10-27T23:11:16.423000",
          "content": "<p><a href=\"/yaroshevskiy\">@yaroshevskiy</a>  Great! How many epochs do you train? Do you use fine tuning or transfer learning directly? Single fold?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 659972,
          "author_name": "Oleg Yaroshevskiy",
          "author_url": "",
          "post_date": "2019-10-28T14:08:21.060000",
          "content": "<p>not a single fold, imagenet pretrained, 20-30 epochs</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 636257,
      "author_name": "Duc Nguyen",
      "author_url": "",
      "post_date": "2019-09-29T05:58:10.133000",
      "content": "<p>size 224x224, model: inceptionV3, single fold --&gt; LB 0.079</p>",
      "votes": 9,
      "replies": [
        {
          "id": 636564,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-09-29T19:30:15.190000",
          "content": "<p>Thanks for your sharing! How many epoch do you use for training!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 636658,
          "author_name": "Duc Nguyen",
          "author_url": "",
          "post_date": "2019-09-30T01:58:41.140000",
          "content": "<p>I trained the network for 20 epochs with Adam optimizer and one cycle learning rate schedule.</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 636664,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-09-30T02:29:15.783000",
          "content": "<p>How long did it take for your model to go through 20 epochs?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 636666,
          "author_name": "Duc Nguyen",
          "author_url": "",
          "post_date": "2019-09-30T02:35:57.663000",
          "content": "<p>It took about 35 mins/epoch to run my code (written in Keras) on my local server. With the same idea + same hardware, you can reduce the time to 20 mins/epoch using PyTorch + mixed-precision training (Apex)</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 636715,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-09-30T05:07:39.787000",
          "content": "<p><a href=\"/mathormad\">@mathormad</a>  Thank you for your sharing! I have a question that did you face with overfitting problem! My model trained in all train dataset and when I trained it over 10 or more, my score just down.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 637601,
          "author_name": "Duc Nguyen",
          "author_url": "",
          "post_date": "2019-10-01T06:41:18.937000",
          "content": "<p>hi <a href=\"/linhlpv\">@linhlpv</a> , to avoid overfitting you should split the data to training set and validation set, then monitor the loss function of the validation set, pick the best weight and predict on the test set.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 638379,
          "author_name": "Gurgel",
          "author_url": "",
          "post_date": "2019-10-01T20:58:35.947000",
          "content": "<p>May I ask what are u using as loss function and how do you make ur epoch run so fast? My best model at the moment (Xception) can run maximum 3 epochs, even though I only tried 2 epochs till now...</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 638857,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-02T13:52:44.490000",
          "content": "<p>hi <a href=\"/mathormad\">@mathormad</a> Thank you for your suggestion. I see that you said your model just take 35 mins per epoch.  How do you make your model run so fast? I have 4 GPUs 1080TI and I am using Resnet 50 and mixed-precision training for training in whole trainset and it takes me about 2 hours per epoch. Please help me! Thank you so much!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 638922,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-10-02T15:07:25.587000",
          "content": "<p><a href=\"/linhlpv\">@linhlpv</a>  What image size are you using? Are you loading Dicom files?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 638997,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-02T16:51:19.217000",
          "content": "<p><a href=\"/drhabib\">@drhabib</a>  I use 224x224 image size and image from png file. My code apply multi GPUs and Apex bellow:\n<code>model, optimizer = amp.initialize(model, optimizer, opt_level=\"O1\")</code>\n <code>if torch.cuda.device_count() &amp;gt; 1:</code>\n          <code>print(\"Let's use\", torch.cuda.device_count(), \"GPUs!\")</code>\n          <code>model = nn.DataParallel(model)</code></p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 639016,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-02T17:09:56.307000",
          "content": "<p>How many epochs?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 639020,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-02T17:16:02.963000",
          "content": "<p><a href=\"/synysterjeet\">@synysterjeet</a>  I just train 3 to 5 epoch. Because training one epoch took me 2 hours :(. I dont know how it so slow. I train in whole dataset</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 639184,
          "author_name": "Peter",
          "author_url": "",
          "post_date": "2019-10-02T21:14:07.240000",
          "content": "<p><a href=\"/linhlpv\">@linhlpv</a> , try these:\n- Check your CPU/GPU load. Can your CPUs load enough images to your GPU. \n- All (most) of your cores are working?!\n- Some of the transformations are slow, add them one by one.\n- Try a bigger batch size (increased accumulation steps).\n- Some preprocessing techniques usually help. (save as Numpy arrays instead of PNGs; int16 instead of float32)</p>",
          "votes": 5,
          "replies": []
        },
        {
          "id": 639298,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-03T03:32:32.783000",
          "content": "<p>Hi <a href=\"/pestipeti\">@pestipeti</a>, thank you for mention me! I will try it and update results.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 639636,
          "author_name": "Gurgel",
          "author_url": "",
          "post_date": "2019-10-03T12:25:22.800000",
          "content": "<p>Please enlighten us when you find which of these sugestions speed up the process.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 640803,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-04T08:42:14.323000",
          "content": "<p>When I tried using more core CPUs in dataloader, I got my model run 2 faster than old version. But when I tried using bigger batch size, I got a problem that estimate time is not stable, it something was 1h30, sometime was 30 minutes. I dont know why and I am searching and try to fix that. Anyone has some ideas. Please tell my how to fix it.\nMy num_workers I used:\n<code>num_workers=os.cpu_count()*2</code></p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 640842,
          "author_name": "Peter",
          "author_url": "",
          "post_date": "2019-10-04T09:09:54.080000",
          "content": "<p><a href=\"/linhlpv\">@linhlpv</a> \nHard to say, but my bet is augmentation. It is random, and there are a few computationally heavy transformation. And if you use all of your cores for data loading, then every transformation has to wait for CPU. Try <code>num_workers=os.cpu_count()*2 - 1</code> (or -2)\nProbably, you have to optimize your code a bit too. Especially when and how you move your data between the GPU and the CPU. Try some different settings, you will find the optimal, I am sure.</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 640871,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-04T09:31:33.450000",
          "content": "<p><a href=\"/pestipeti\">@pestipeti</a> \nThank you for your suggestion! I will try more setting and optimize my code. And I will post result when I find something good for speed up code!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 634491,
      "author_name": "Igor Krashenyi",
      "author_url": "",
      "post_date": "2019-09-26T11:13:11.197000",
      "content": "<p>Custom model -- 0.069  </p>",
      "votes": 8,
      "replies": [
        {
          "id": 634521,
          "author_name": "DecentMakeover",
          "author_url": "",
          "post_date": "2019-09-26T11:57:36.373000",
          "content": "<p>Just to be sure , this is a single model and not an ensemble?</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 634528,
          "author_name": "Igor Krashenyi",
          "author_url": "",
          "post_date": "2019-09-26T12:10:34.063000",
          "content": "<p>single fold without any ensembling :) </p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 634660,
          "author_name": "Miroslav Valan",
          "author_url": "",
          "post_date": "2019-09-26T15:13:14.367000",
          "content": "<p>is your custom pretrained on any external data or from scratch. Or you changed part of the pretrained model and called it custom</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 634668,
          "author_name": "JM",
          "author_url": "",
          "post_date": "2019-09-26T15:34:35.683000",
          "content": "<p>Why don't you just ask for the source code?</p>",
          "votes": -9,
          "replies": []
        },
        {
          "id": 634693,
          "author_name": "Miroslav Valan",
          "author_url": "",
          "post_date": "2019-09-26T16:15:35.677000",
          "content": "<p><a href=\"/julianmukaj\">@julianmukaj</a> I find your comment rude. I asked a question and it's on <a href=\"/igorkrashenyi\">@igorkrashenyi</a> to decide whether to answer it. </p>\n\n<p>Answer to the question will not reveal his solution. Not answering it is also fine. </p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 634799,
          "author_name": "Igor Krashenyi",
          "author_url": "",
          "post_date": "2019-09-26T19:13:06.757000",
          "content": "<p>ImagNet pre-trained with modifications </p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 636011,
          "author_name": "AlGiLa",
          "author_url": "",
          "post_date": "2019-09-28T15:36:38.237000",
          "content": "<p>Hi,\nwhat input image size you used ? did you used the full number of images of just a sub portion ? </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 636271,
          "author_name": "Igor Krashenyi",
          "author_url": "",
          "post_date": "2019-09-29T06:51:13.253000",
          "content": "<p>512x512 resolution and the full dataset</p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 641886,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-10-05T09:12:36.920000",
          "content": "",
          "votes": 1,
          "replies": []
        },
        {
          "id": 642728,
          "author_name": "Igor Krashenyi",
          "author_url": "",
          "post_date": "2019-10-06T14:45:09.547000",
          "content": "<p>About 2.5 days using 4x2080ti and Apex </p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 646043,
          "author_name": "Tim Yee",
          "author_url": "",
          "post_date": "2019-10-10T19:20:03.307000",
          "content": "<p><a href=\"/igorkrashenyi\">@igorkrashenyi</a> Are you running Apex on windows? Running into installation issues for Apex. I have pytorch installed on windows and it can train no prob.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 647703,
          "author_name": "ChinHuiC",
          "author_url": "",
          "post_date": "2019-10-13T05:39:20.960000",
          "content": "<p>I tried running Apex on Windows before and it wasn't fully supported by NVIDIA. Eventually I just resorted to Ubuntu</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 646930,
      "author_name": "Nicholas Lyu",
      "author_url": "",
      "post_date": "2019-10-11T22:30:14.243000",
      "content": "<p>.073 is achievable with b0 224x224. I grouped on patient and used some tricks, though</p>",
      "votes": 7,
      "replies": [
        {
          "id": 646946,
          "author_name": "Eek The Cat",
          "author_url": "",
          "post_date": "2019-10-11T23:03:12.300000",
          "content": "<p>Have you solved local/LB correlation problem, by the way?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 647044,
          "author_name": "Nicholas Lyu",
          "author_url": "",
          "post_date": "2019-10-12T02:10:43.110000",
          "content": "<p><a href=\"/cateek\">@cateek</a> Solved it via grouping via patients. I think this is very important for establishing reliable validation score, though I have not done any control experiments. Right now I have another problem which is that my val loss is much greater than my LB (.0814 v. .073)</p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 648205,
          "author_name": "Gabriel",
          "author_url": "",
          "post_date": "2019-10-13T21:33:21.767000",
          "content": "<p>Very interesting! I think I got it, I will test</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 648590,
          "author_name": "Gussssss",
          "author_url": "",
          "post_date": "2019-10-14T11:51:22.537000",
          "content": "<p>thanks for sharing! What's your val loss function?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 648637,
          "author_name": "bright",
          "author_url": "",
          "post_date": "2019-10-14T12:39:41.087000",
          "content": "<p>Good work! Wouldn't it make sense for your LB score to be higher than validation if there are samples from the same patients in the test data set. Seems like you should just trust your validation</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 648801,
          "author_name": "Michael Pieler",
          "author_url": "",
          "post_date": "2019-10-14T16:01:54.920000",
          "content": "<p><a href=\"/roguekk007\">@roguekk007</a> \"Right now I have another problem which is that my val loss is much greater than my LB (.0814 v. .073)\"\nIs this not comparing apples to oranges because you compare your validation <em>loss</em> to the LB <em>metric</em>?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 649073,
          "author_name": "Nicholas Lyu",
          "author_url": "",
          "post_date": "2019-10-14T22:56:24.587000",
          "content": "<p><a href=\"/micpie\">@micpie</a> I think it is not comparing apples to oranges personally, because according to the LB probing, the weights of the metric is revealed, so my validation loss <em>should</em> be kind of equal to LB</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 649206,
          "author_name": "Michael Pieler",
          "author_url": "",
          "post_date": "2019-10-15T04:16:14.073000",
          "content": "<p><a href=\"/roguekk007\">@roguekk007</a>  Thanks, you are right, with the correctly weighted BCE loss they are comparable. 👍 </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651546,
          "author_name": "Benjamin Dubreu",
          "author_url": "",
          "post_date": "2019-10-17T15:35:31.050000",
          "content": "<p>Hi! what do you mean by b0 ? I am unfamiliar with this term ! Edit: never mind I figured this out</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 653864,
          "author_name": "Hilal Shaath",
          "author_url": "",
          "post_date": "2019-10-21T04:40:56.927000",
          "content": "<p>B0 is one type of the efficientnet architecture s ( there is b0, b1, ... B7)</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 657621,
          "author_name": "Benjamin Dubreu",
          "author_url": "",
          "post_date": "2019-10-25T09:52:31.183000",
          "content": "<p>after the competition I look forward to how you did the \"probing\" that helped you figure out the weights !</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 636104,
      "author_name": "Ian Pan",
      "author_url": "",
      "post_date": "2019-09-28T20:18:40.787000",
      "content": "<p>EfficientNet-B5 @ 512 x 512 - 0.070</p>",
      "votes": 7,
      "replies": [
        {
          "id": 638059,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-01T13:48:50.513000",
          "content": "<p>How many epochs are you running , if you don't mind me asking? And are the images in png or jpg?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 638794,
          "author_name": "Ian Pan",
          "author_url": "",
          "post_date": "2019-10-02T12:43:09.850000",
          "content": "<p>100 epochs, 16,000 images per epoch, loaded from DICOM.</p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 638918,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-02T15:03:25.150000",
          "content": "<p>Wow, so how much time does it take for your model to train completely?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 639759,
          "author_name": "Ian Pan",
          "author_url": "",
          "post_date": "2019-10-03T14:11:23.907000",
          "content": "<p>About 60-65 hours.</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 639908,
          "author_name": "Tim Yee",
          "author_url": "",
          "post_date": "2019-10-03T17:26:27.003000",
          "content": "<p>Hmm, I wonder how long EfficientNet B7 would take with those same parameters, 80-100 hours? How to use GCP credit wisely.</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 636131,
      "author_name": "DrHB",
      "author_url": "",
      "post_date": "2019-09-28T21:03:38.160000",
      "content": "<p>LB: 0.080</p>\n\n<p>&gt; MODEL: Efficient Net B0 \nSIZE:  224 (PNG)\nCV:  1 Fold\nAUG: [zoom, rotate]\nTTA: No\nPRETRAINED: True\nEPOCH: 20\nLR:   1e-3</p>",
      "votes": 8,
      "replies": [
        {
          "id": 636150,
          "author_name": "Tim Yee",
          "author_url": "",
          "post_date": "2019-09-28T21:45:31.640000",
          "content": "<p>Thanks for sharing. How is your local validation compared to LB? Which loss func are you using? I'm getting 0.088 with 4 epochs at 1e-3 at B0 and no hold outset (yet)</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 636153,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-09-28T22:06:41.523000",
          "content": "<p>I use for now <code>torch.nn.BCEWithLogitsLoss()</code> I did not implement yet the offical metric (I will update lter). But my <code>val loss</code> is almost identical to <code>trn loss</code> =) </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 636803,
          "author_name": "Ken Ho",
          "author_url": "",
          "post_date": "2019-09-30T08:05:36.507000",
          "content": "<p>I used the same settting as yours but in 4 epochs and LR=1.20E-3.\nTreating 'any' as a class to be predicted.\nLB: 0.113</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 637722,
          "author_name": "Alex",
          "author_url": "",
          "post_date": "2019-10-01T08:11:41.100000",
          "content": "<p><a href=\"/drhabib\">@drhabib</a> May I ask if you are undersampling the training data? Compared to my training, 20 epochs are a lot. </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 638056,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-10-01T13:44:21.557000",
          "content": "<p>No under sampling... Just using random split  =) </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 638380,
          "author_name": "Gurgel",
          "author_url": "",
          "post_date": "2019-10-01T20:59:44.163000",
          "content": "<p>Could you elaborate further? I am having time issues as well and would like to understand better what I can do to overcome it.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 638506,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-10-02T01:21:28.240000",
          "content": "<p>I don't do any under sampling. I take whole data and split randomly 80% to train and 20% to validation. Let me know if you have other questions=) </p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 638532,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-02T02:36:02.357000",
          "content": "<p>Around how long does your model take to train?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 638866,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-10-02T14:04:47.800000",
          "content": "<p>around 12 </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 638987,
          "author_name": "jayjhlin",
          "author_url": "",
          "post_date": "2019-10-02T16:44:35.370000",
          "content": "<p>Thanks for the sharing!!! Did you use any normalization(like ImageNet/competition dataset mean and std) or regularization?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 640949,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-10-04T10:53:01.533000",
          "content": "<p>I used Imagenet stars :) Good luck </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 641000,
          "author_name": "Alex",
          "author_url": "",
          "post_date": "2019-10-04T11:24:28.953000",
          "content": "<p><a href=\"/drhabib\">@drhabib</a> What LB score do you mange to get with EfficentNetB0, 224x224, single fold, (no TTA perhaps)? I'm also finetuning on EfficientNetB0, and so far got 0.079, which I think is much worse than yours? ;-)</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 643365,
          "author_name": "Nicholas Lyu",
          "author_url": "",
          "post_date": "2019-10-07T13:15:52.823000",
          "content": "<p><a href=\"/drhabib\">@drhabib</a> Is it convenient to disclose the train/val split that you are using? I observe very different difference between LB/CV scores using different seeds in sklearn's train_val_split. Anyone willing to disclose their seed and validation portion that they are using?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 644422,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-10-08T20:01:30.357000",
          "content": "<p><a href=\"/akensert\">@akensert</a> vanilla B0 0.70-0.72 depending on my GPU mood =)</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 644424,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-10-08T20:04:11.937000",
          "content": "<p><a href=\"/roguekk007\">@roguekk007</a> Are you using weighted loss ? If not that willl explain why you have a big difference. My LB and CV are almost identical or have very small difference. \nRegarding splitting. \nI did not observe huge difference if I split by <code>patient</code> or do <code>StratifiedKFold</code>.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 644510,
          "author_name": "Verne",
          "author_url": "",
          "post_date": "2019-10-08T22:52:13.573000",
          "content": "<p>are you using any special training procedure? lr scheduling? thanks</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 644668,
          "author_name": "Gabriel",
          "author_url": "",
          "post_date": "2019-10-09T06:55:50.137000",
          "content": "<p><a href=\"/drhabib\">@drhabib</a> Do you use Pytorch or keras? </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 646224,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-10-11T02:17:29.773000",
          "content": "<p>Verne, Nothing special, just cosine decay=)</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 646225,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-10-11T02:18:47.673000",
          "content": "<p><a href=\"/custodiogabriel\">@custodiogabriel</a> I use Pytroch, but at the end of the day it doesn't matter which software you use to achieve top results =) </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 647755,
          "author_name": "Nicholas Lyu",
          "author_url": "",
          "post_date": "2019-10-13T08:19:38.617000",
          "content": "<p><a href=\"/drhabib\">@drhabib</a> I’m currently getting .066 with b0 with minimal tuning. You must also be using some cool tricks to get b0 to .070? Will you consider teaming up?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 648300,
          "author_name": "Gussssss",
          "author_url": "",
          "post_date": "2019-10-14T02:27:06.087000",
          "content": "<p>Thanks for your sharing! How much batch size have you set?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 648329,
          "author_name": "Nicholas Lyu",
          "author_url": "",
          "post_date": "2019-10-14T03:22:48.360000",
          "content": "<p>48, max that can fit on my local RTX 2080 (not ti)</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 649544,
          "author_name": "Mohammad Azam Khan",
          "author_url": "",
          "post_date": "2019-10-15T14:11:13.827000",
          "content": "<p>Is your current score (0.061) from a single model?\nBTW, <a href=\"/roguekk007\">@roguekk007</a> <a href=\"/drhabib\">@drhabib</a> Perhaps, the best ensemble (team)👍 . Wish you all the best!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 650015,
          "author_name": "pupil3",
          "author_url": "",
          "post_date": "2019-10-16T02:26:16.577000",
          "content": "<p>Could you tell me what's the meaning of tta? Much Thanks</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 650057,
          "author_name": "Mohammad Azam Khan",
          "author_url": "",
          "post_date": "2019-10-16T03:47:55.933000",
          "content": "<p><a href=\"/pupil3\">@pupil3</a> Test Time Augmentaion  (TTA)</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 650089,
          "author_name": "pupil3",
          "author_url": "",
          "post_date": "2019-10-16T04:58:03.967000",
          "content": "<p>Much Thanks</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 650711,
          "author_name": "Hao He",
          "author_url": "",
          "post_date": "2019-10-16T16:03:45.270000",
          "content": "<p>Hi <a href=\"/drhabib\">@drhabib</a> </p>\n\n<p>Just curious did you do window pre-processing? Or you use Jermey’s special preprocessing method?</p>\n\n<p>Thanks in advance :)</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 652609,
      "author_name": "Ryan Epp",
      "author_url": "",
      "post_date": "2019-10-19T05:43:05.577000",
      "content": "<p>0.069 - single fold, no tta,  300x300, 80:20 train/val split using the full dataset, custom model.</p>",
      "votes": 5,
      "replies": [
        {
          "id": 653156,
          "author_name": "Gabriel",
          "author_url": "",
          "post_date": "2019-10-20T02:32:23.860000",
          "content": "<p>If you allow me, did you use any data normalization like Multi channel windowing?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 653804,
          "author_name": "Ryan Epp",
          "author_url": "",
          "post_date": "2019-10-21T01:18:24.550000",
          "content": "<p>Yea, I'm using <em>Sigmoid (Brain + Subdural + Bone) Windowing</em> from <a href=\"https://www.kaggle.com/reppic/gradient-sigmoid-windowing\">Gradient &amp; Sigmoid Windowing</a>.</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 655230,
          "author_name": "Gabriel",
          "author_url": "",
          "post_date": "2019-10-22T20:49:59.113000",
          "content": "<p>Did you use GroupKfold using PatientID? Many people are using... Do you think this is essential to increase the score?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 655377,
          "author_name": "Ryan Epp",
          "author_url": "",
          "post_date": "2019-10-23T01:47:54.963000",
          "content": "<p>Yea, I haven't been doing multiple folds yet and I'm not using that function specifically, but I am splitting my train/validation sets using PatientId. </p>\n\n<p>It's not because splitting that way necessarily improves the score of a single model, but if you don't, you risk leaking info to your validation set and you can overfit without realizing it. Check out <a href=\"https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/111729#latest-647909\">Similarity between train and test images</a> </p>\n\n<p>I imagine it also helps improve model <a href=\"https://ieeexplore.ieee.org/document/4371035\">diversity</a> when ensembling models trained on different folds, but idk for sure.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 655409,
          "author_name": "Gabriel",
          "author_url": "",
          "post_date": "2019-10-23T02:47:31.580000",
          "content": "<p>I understand! Thanks for the feedback! My models usually have very low val_loss and very different from LB (larger), I think that if I do GroupKFold (or other techniques) I think I will have a much closer val_loss to LB then! I will see this kernel! Thanks!</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 664619,
          "author_name": "Ryan Epp",
          "author_url": "",
          "post_date": "2019-11-04T01:28:49.490000",
          "content": "<p>Update 11/3: \n0.066- single fold, no tta, 300x300, 80:20 train/val split using the full dataset (no CQ500 data), custom model and a custom data generator.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 664816,
          "author_name": "Eek The Cat",
          "author_url": "",
          "post_date": "2019-11-04T09:13:32.470000",
          "content": "<p>By custom you meant you're not using imagenet weights, or it's just a custom head?</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 651109,
      "author_name": "4ui_iurz1",
      "author_url": "",
      "post_date": "2019-10-17T03:45:17.483000",
      "content": "<p>efficientnet-b2 \n256x256\nw/o 3 windowing preprocess\npublicLB: 0.069</p>",
      "votes": 5,
      "replies": [
        {
          "id": 651114,
          "author_name": "takuoko",
          "author_url": "",
          "post_date": "2019-10-17T04:03:02.377000",
          "content": "<p>Cool! <br>\nWhat is the meaning of <code>w/o</code>?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651129,
          "author_name": "Hao He",
          "author_url": "",
          "post_date": "2019-10-17T04:33:01.637000",
          "content": "<p>I think he means without</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651143,
          "author_name": "takuoko",
          "author_url": "",
          "post_date": "2019-10-17T05:04:27.393000",
          "content": "<p>So he didn't use windowing?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651355,
          "author_name": "4ui_iurz1",
          "author_url": "",
          "post_date": "2019-10-17T11:48:22.430000",
          "content": "<p>I used <a href=\"https://www.kaggle.com/omission/eda-view-dicom-images-with-correct-windowing\">this kernel's</a> windowing.\nI'm trying Appian's windowing now.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651419,
          "author_name": "Eek The Cat",
          "author_url": "",
          "post_date": "2019-10-17T13:28:11.613000",
          "content": "<p><a href=\"/uiiurz1\">@uiiurz1</a> That's a great result! Did you normalize input images? </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651430,
          "author_name": "4ui_iurz1",
          "author_url": "",
          "post_date": "2019-10-17T13:34:40.040000",
          "content": "<p>I normalized input images with ImageNet's means and stds.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 653160,
          "author_name": "Gabriel",
          "author_url": "",
          "post_date": "2019-10-20T02:36:08.850000",
          "content": "<p><a href=\"/uiiurz1\">@uiiurz1</a>   how many epochs?</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 651127,
      "author_name": "datasaurus",
      "author_url": "",
      "post_date": "2019-10-17T04:26:00.700000",
      "content": "<p>EfficientNet-B0\n224x224\nPublic LB: 0.069 without TTA</p>",
      "votes": 6,
      "replies": [
        {
          "id": 651192,
          "author_name": "Eek The Cat",
          "author_url": "",
          "post_date": "2019-10-17T06:56:53.323000",
          "content": "<p>That's a great result with such a simple setup! May I wonder, did you use some special windowing? Have you used all images, or found a way to remove uninformative ones? I've done quite a lot of experiments and already decided that it's simply impossible for such to go below 0.75 with small resolution w/o some tricks. Thanks in advance</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651199,
          "author_name": "Rajnish Chauhan",
          "author_url": "",
          "post_date": "2019-10-17T07:05:14.850000",
          "content": "<p>try undersampling</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651206,
          "author_name": "datasaurus",
          "author_url": "",
          "post_date": "2019-10-17T07:13:23.463000",
          "content": "<p>I'm using all of the images and averaging 5 folds. Nothing fancy with the network - my parameters are identical to DrHBs in earlier this thread. The image preprocessing is the key, but I think it's best if I share later 😉 </p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 651211,
          "author_name": "Eek The Cat",
          "author_url": "",
          "post_date": "2019-10-17T07:16:01.363000",
          "content": "<p>Thanks! By preprocessing you mean window/no window, window parameters, and normalization, right? </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651215,
          "author_name": "Rajnish Chauhan",
          "author_url": "",
          "post_date": "2019-10-17T07:21:44.177000",
          "content": "<p><a href=\"/anjum48\">@anjum48</a> coulld you please describe about 5 folds , how you are doing K-Fold . Thanks</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651217,
          "author_name": "datasaurus",
          "author_url": "",
          "post_date": "2019-10-17T07:25:00.843000",
          "content": "<p><a href=\"/cateek\">@cateek</a> Yes, but there are more ways than just windowing to make sure the images you pass to the model are as informative as possible\n<a href=\"/rajnishe\">@rajnishe</a> I'm using <code>GroupKfold</code> using PatientID as the grouping variable</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 651226,
          "author_name": "takuoko",
          "author_url": "",
          "post_date": "2019-10-17T07:51:11.603000",
          "content": "<p>Interesting! <br>\nI am looking forward to see your preprocessing after competition end;)  </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 651237,
          "author_name": "Eek The Cat",
          "author_url": "",
          "post_date": "2019-10-17T08:02:40.583000",
          "content": "<p>One more thing. Do you treat any class in some specific way or just 6 classes with weights? I've tried some variation of 2-stage model but it didn't work well</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651306,
          "author_name": "datasaurus",
          "author_url": "",
          "post_date": "2019-10-17T09:56:00.483000",
          "content": "<p>No, I'm using the standard 6 class loss already shared here. I've not had a chance to test the 2-step pipeline yet</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 651335,
          "author_name": "Sugawarya",
          "author_url": "",
          "post_date": "2019-10-17T10:51:03.737000",
          "content": "<p><a href=\"/anjum48\">@anjum48</a> \n<code>I'm using GroupKfold using PatientID as the grouping variable</code> </p>\n\n<p>Are CV score and LB score correlated?\nin fact, my CV score with GroupKfold using PatientID doesnt help to early stopping...</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 634541,
      "author_name": "OrKatz",
      "author_url": "",
      "post_date": "2019-09-26T12:29:04.213000",
      "content": "<p>inceptionv4 -&gt; 0.78</p>",
      "votes": 5,
      "replies": [
        {
          "id": 636010,
          "author_name": "AlGiLa",
          "author_url": "",
          "post_date": "2019-09-28T15:35:39.037000",
          "content": "<p>Hi,\nwhat input image size you used ? did you used the full number of images of just a sub portion ? </p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 642485,
      "author_name": "Appian",
      "author_url": "",
      "post_date": "2019-10-06T06:21:46.473000",
      "content": "<p>LB 0.079 (update 0.074)\n- se_resnext50_32x4d\n- 224x224\n- 2 epochs\n- hflip, crop</p>",
      "votes": 6,
      "replies": [
        {
          "id": 643370,
          "author_name": "Nicholas Lyu",
          "author_url": "",
          "post_date": "2019-10-07T13:25:55.800000",
          "content": "<p><a href=\"/appian\">@appian</a> Hi! Is it convenient to disclose your train/val split? How is your correlation between train/test LB score?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 643615,
          "author_name": "Appian",
          "author_url": "",
          "post_date": "2019-10-07T17:29:05.250000",
          "content": "<p>The train valid split is 80:20. I haven't made enough submissions to see the correlation but the difference between public lb and local cv is relatively small so far.</p>\n\n<ul>\n<li>public lb 0.074</li>\n<li>local cv 0.07519</li>\n</ul>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 643662,
          "author_name": "Verne",
          "author_url": "",
          "post_date": "2019-10-07T18:38:21.113000",
          "content": "<p>nice result. i trained the same network on 200k images 256 resolution brain window and have a 0.14 result. what kind of images and windowing are you using? thanks</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 646222,
          "author_name": "Nicholas Lyu",
          "author_url": "",
          "post_date": "2019-10-11T02:12:57.783000",
          "content": "<p><a href=\"/appian\">@appian</a> What LR and scheduling are you using? I am unable to replicate your results. I am already grouping on patient</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 646609,
          "author_name": "Mu Song",
          "author_url": "",
          "post_date": "2019-10-11T13:31:57.627000",
          "content": "<p><a href=\"/appian\">@appian</a> Great, why are you public LB and Local LB is so closer? my pubic LB always larger than local LB,  about 0.02.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 646680,
          "author_name": "Appian",
          "author_url": "",
          "post_date": "2019-10-11T15:03:42.267000",
          "content": "<p>My guess is that you randomly split the data for train/val. Because one patient is at least composed of more than 20 slices, it introduces a leak especially when adjacent slices are split between train and val. Somethinkg like GroupKFold can deal with it.</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 646688,
          "author_name": "Tim Yee",
          "author_url": "",
          "post_date": "2019-10-11T15:17:58.320000",
          "content": "<p>from my own experience, I could not get stable cv without using weighted log-loss. I think a lot of the issues with cv not looking like LB is due to not using the proper loss function and not due to how you split your training/validation sets. And I think this makes sense - if you're optimizing your model to a different loss, CV is not going to reflect on LB closely. I used random split and weighted log-loss and my CV and LB look exactly the same. </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 647002,
          "author_name": "Mu Song",
          "author_url": "",
          "post_date": "2019-10-12T00:59:41.927000",
          "content": "<p>Thanks@Appian@Tim Yee, I split the data for train/val using PatientID, so the slices for one patient ara all in train or val. Maybe my weights of logloss is [1,1,1,1,1,1], I'll try more, thanks.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 646623,
      "author_name": "takuoko",
      "author_url": "",
      "post_date": "2019-10-11T13:42:08.373000",
      "content": "<p>Seresnext50-&gt;LB0.082\nimg size-&gt;224*224</p>",
      "votes": 3,
      "replies": [
        {
          "id": 647795,
          "author_name": "takuoko",
          "author_url": "",
          "post_date": "2019-10-13T09:39:28.350000",
          "content": "<p>update\nSeresnext50-&gt;LB0.078\nimg size-&gt;224*224\n<a href=\"https://www.kaggle.com/dcstang/see-like-a-radiologist-with-systematic-windowing\">subdural_window preprocessing</a></p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 659957,
          "author_name": "Verne",
          "author_url": "",
          "post_date": "2019-10-28T13:45:44.227000",
          "content": "<p>for how many epochs do you train? when do you notice overfitting? thanks!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 638792,
      "author_name": "Jayaram",
      "author_url": "",
      "post_date": "2019-10-02T12:37:03.580000",
      "content": "<p>EfficientNet B0 - 512x512   --&gt;  0.078</p>",
      "votes": 3,
      "replies": [
        {
          "id": 638801,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-02T12:52:03.430000",
          "content": "<p>If you don't mind me asking, what's your validation split, and how many epochs?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644817,
          "author_name": "Jayaram",
          "author_url": "",
          "post_date": "2019-10-09T11:44:16.667000",
          "content": "<p>Random split 95% train &amp; 5% validation... trained for 10 epochs</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644975,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-09T15:35:13.177000",
          "content": "<p>And how do you fit the 512 images in the B0 model? It takes 224 by default right?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644978,
          "author_name": "Tim Yee",
          "author_url": "",
          "post_date": "2019-10-09T15:37:54.427000",
          "content": "<p>You can fit any image size. You can put in 128x128 if you want.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644987,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-09T16:03:28.053000",
          "content": "<p>But when I try to put 512x512 images in my B0 model it gives me \"invalid argument 0: sizes of tensor must match except in dimension 0\" error</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 645368,
          "author_name": "Gabriel",
          "author_url": "",
          "post_date": "2019-10-10T03:46:16.700000",
          "content": "<p>Do you train using all images?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 648422,
          "author_name": "Jayaram",
          "author_url": "",
          "post_date": "2019-10-14T06:43:14.103000",
          "content": "<p>yes, i do use all images</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 634225,
      "author_name": "Salil Mishra",
      "author_url": "",
      "post_date": "2019-09-26T03:48:01.747000",
      "content": "<p>Using only 30,000 samples(15k positive and 15k negative)</p>\n\n<p>Efficient Net B4 10 epochs 256x256 - 0.113\nEfficient Net B4  3 epochs 256x256 - 0.107  </p>\n\n<p>LB improving with less number of epochs? (Edit - Severely Overfitting?)</p>",
      "votes": 3,
      "replies": [
        {
          "id": 634256,
          "author_name": "Tim Yee",
          "author_url": "",
          "post_date": "2019-09-26T05:23:20.430000",
          "content": "<p>0.098 4 epochs. I haven't tried greater than 4 epochs yet. I already used this weeks GPU quota.</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 634305,
          "author_name": "Salil Mishra",
          "author_url": "",
          "post_date": "2019-09-26T06:20:06.027000",
          "content": "<p>Are you using the full dataset? How long it takes for 1 epoch?</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 634796,
          "author_name": "Bo Peng",
          "author_url": "",
          "post_date": "2019-09-26T19:08:20.097000",
          "content": "<p>In my opinon, its not about the number of epochs, but about not overfitting. 🙂  </p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 636567,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-09-29T19:49:20.130000",
          "content": "<p><a href=\"/bopengiowa\">@bopengiowa</a>  Do you have a suggestion about removing overfitting? Thank you!</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 636626,
          "author_name": "Bo Peng",
          "author_url": "",
          "post_date": "2019-09-29T22:59:08.330000",
          "content": "<p>Common for keras is it saves the weights from the best val score correct? So that should solve it right there. I think there are other learning rate things that people do such as scheduling and decay.  Could also check if local val score matches with leaderboard scores.</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 636718,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-09-30T05:09:07.800000",
          "content": "<p><a href=\"/bopengiowa\">@bopengiowa</a>  thank you! I will try it 👍 </p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 653855,
      "author_name": "4ui_iurz1",
      "author_url": "",
      "post_date": "2019-10-21T04:02:27.207000",
      "content": "<p>efficientnet-b2\n410x410\nsingle fold\nhflip tta\npublicLB: 0.064</p>",
      "votes": 4,
      "replies": [
        {
          "id": 653896,
          "author_name": "ChinHuiC",
          "author_url": "",
          "post_date": "2019-10-21T06:11:57.740000",
          "content": "<p>Thanks for sharing! Are you using 5 epochs, png images as you mentioned before also?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 653901,
          "author_name": "4ui_iurz1",
          "author_url": "",
          "post_date": "2019-10-21T06:40:36.767000",
          "content": "<p>Yes.</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 654556,
          "author_name": "Mohammad Azam Khan",
          "author_url": "",
          "post_date": "2019-10-22T02:52:26.817000",
          "content": "<p>Cool. Could you please share the windowing method?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 654594,
          "author_name": "Ryan Epp",
          "author_url": "",
          "post_date": "2019-10-22T04:22:20.083000",
          "content": "<p>Are you using the new CQ500 dataset?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 654637,
          "author_name": "4ui_iurz1",
          "author_url": "",
          "post_date": "2019-10-22T05:56:50.023000",
          "content": "<p>I used Appian's windowing and didn't use CQ500.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 654643,
          "author_name": "Miroslav Valan",
          "author_url": "",
          "post_date": "2019-10-22T06:12:18.353000",
          "content": "<p>How long one epoch takes </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 654732,
          "author_name": "4ui_iurz1",
          "author_url": "",
          "post_date": "2019-10-22T08:30:44.570000",
          "content": "<p>4-5 hours</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 654897,
          "author_name": "AlGiLa",
          "author_url": "",
          "post_date": "2019-10-22T12:56:27.053000",
          "content": "<p>Thanks for sharing, I see the efficientnet-b2 was trained with input imm 224x224. How did our shape your net to receive in input imm 410x410 ?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 655399,
          "author_name": "Mohammad Azam Khan",
          "author_url": "",
          "post_date": "2019-10-23T02:30:16.160000",
          "content": "<p><a href=\"/uiiurz1\">@uiiurz1</a> Nice results indeed. If I understand correctly, you only used hflip during training, I was just wondering how you apply tta? Thanks once again.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 651563,
      "author_name": "nan",
      "author_url": "",
      "post_date": "2019-10-17T15:58:05.833000",
      "content": "<p>Update: \nresnet50, 256x256, train on 150k images per epochs, split by patient, lb 0.071 no tta single fold</p>",
      "votes": 4,
      "replies": [
        {
          "id": 651594,
          "author_name": "Eek The Cat",
          "author_url": "",
          "post_date": "2019-10-17T16:38:34.343000",
          "content": "<p>Are you sampling new 150K images every epoch? </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651599,
          "author_name": "nan",
          "author_url": "",
          "post_date": "2019-10-17T16:44:32.797000",
          "content": "<p>Yes, 150k images is randomly selected</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 636711,
      "author_name": "nan",
      "author_url": "",
      "post_date": "2019-09-30T04:56:56.933000",
      "content": "<p>resnet34, image 256x256, 10k pos, 10k neg, single fold, 0.088 lb\nUpdate: resnet34, image 256x256, single fold -&gt; 0.078 lb</p>",
      "votes": 4,
      "replies": [
        {
          "id": 636882,
          "author_name": "Salil Mishra",
          "author_url": "",
          "post_date": "2019-09-30T09:57:56.167000",
          "content": "<p>I think you mean 0.088?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 637804,
          "author_name": "nan",
          "author_url": "",
          "post_date": "2019-10-01T09:16:03.360000",
          "content": "<p>I then use the the best checkpoint and finetune on the whole dataset, get lb 0.081 in the first epochs. However, but when I continue to finetune, the lb get worse, even though local cv still improve. Previous cv score is consistent w/ lb. I currently have no idea why. Still working on that :))</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 637833,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-01T09:50:05.150000",
          "content": "<p><a href=\"/dattran2346\">@dattran2346</a>  your model seem overffiting :)) </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 637896,
          "author_name": "nan",
          "author_url": "",
          "post_date": "2019-10-01T10:55:51.310000",
          "content": "<p>My train and val loss still improving, hardly say it is overfit. Maybe the problem is how I up-train from under-sampling to all dataset 🤔 </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 638427,
          "author_name": "Gurgel",
          "author_url": "",
          "post_date": "2019-10-01T22:17:59.863000",
          "content": "<p>Forgive my stupidity, but what do u mean by 10k pos, 10k neg and r34?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 638502,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-10-02T01:20:22.140000",
          "content": "<p>he means: \n10 k postive examples\n10 k negative example \nresent 34 (r34?)\n256 image size </p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 638726,
          "author_name": "Gurgel",
          "author_url": "",
          "post_date": "2019-10-02T11:02:11.877000",
          "content": "<p>U mean he only uses 20k IDs of the train data, 10k which any = 0 and 10k which any = 1?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 638734,
          "author_name": "DrHB",
          "author_url": "",
          "post_date": "2019-10-02T11:13:50.710000",
          "content": "<p>yep </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 638745,
          "author_name": "nan",
          "author_url": "",
          "post_date": "2019-10-02T11:34:38.060000",
          "content": "<p>Yes, I use resnet 34 with image size of 256 and train under-sampling now to speed up experiment. The samples are selected such that each diseases have the same number of sample, and the total number of positive and negative are the same.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 643971,
          "author_name": "juliencs",
          "author_url": "",
          "post_date": "2019-10-08T07:22:03.347000",
          "content": "<p>Thanks <a href=\"/dattran2346\">@dattran2346</a> for this information.</p>\n\n<p>I'm curious, I've been trying the 10k +/10k - approach too since I lack access to a big GPU and want to iterate not too slowly. I imagine that your CV numbers are different from the public LB scores right? Since our validation set contains way more examples from minority classes, I'd expect the CV score to be significantly worse than the public LB scores. Is it the case for you too?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644092,
          "author_name": "nan",
          "author_url": "",
          "post_date": "2019-10-08T10:00:43.113000",
          "content": "<p>Hi <a href=\"/juliencs\">@juliencs</a> \nFor me, the local CV is about 0.08 at epoch 75, and the LB for that checkpoint is 0.086. How do you split your CV, do you stratify base on labels, or base on metadata like Patient or Study ID. Do you pick hard sample and train on them.\nMy CV is stratified by labels, and I just pick random samples.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 644147,
          "author_name": "juliencs",
          "author_url": "",
          "post_date": "2019-10-08T12:15:31.803000",
          "content": "<p>Ooooh, 75 epochs. I never tried that long. My CV is same as yours it seems, but I never went past 15 epochs, and the loss was still pretty high by then, hence my question.</p>\n\n<p>75 epochs must last a long time. The idea for me to take a really small sample was to iterate quicker, but if we have to wait for 75 epochs on the smaller sample to reach a minimum, maybe it's not worth it, and taking a bigger (and thus more diverse) sample, for less epochs, might yield at least similar results  (just thinking out loud here really).</p>\n\n<p>Thanks for your answer. I'll keep experimenting.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644155,
          "author_name": "nan",
          "author_url": "",
          "post_date": "2019-10-08T12:27:18.043000",
          "content": "<p>Yes, totally agree with you, 75 epochs is way too long for a under-sample model.  And train for that long may actually hurt the model performance. Another approach is to filter out samples in the training, i.e, remove obvious images that have no brain in it for example. </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644308,
          "author_name": "Tim Yee",
          "author_url": "",
          "post_date": "2019-10-08T15:49:05.910000",
          "content": "<p>So you remove obvious images with no brain in it by hand? or you have some filter function? I could not look at more than 100 even If I tried.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644313,
          "author_name": "nan",
          "author_url": "",
          "post_date": "2019-10-08T15:55:26.367000",
          "content": "<p>You can use a simple brain window for this task, just filter by the HU of the brain.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644348,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-08T16:55:48.047000",
          "content": "<p>But just by filtering by brain window you cant judge whether there is brain or not right? And even the brain window values can vary, there isn't really an optimum range right?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644354,
          "author_name": "nan",
          "author_url": "",
          "post_date": "2019-10-08T17:07:23.587000",
          "content": "<p>According to <a href=\"https://en.wikipedia.org/wiki/Hounsfield_scale\">wiki</a> the HU value of the brain is just a narrow range, you can just filter images that don't have (or very small number of pixel) of brain HU. There are about 2-3 images per study where there is no brain (just empty, or part of the CT machine, or just top of the skull).</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 636110,
      "author_name": "Tom Aindow",
      "author_url": "",
      "post_date": "2019-09-28T20:36:56.447000",
      "content": "<p>ResNeXt-101 32x8d: 0.082</p>\n\n<p>Kernel with benchmark (0.089): <a href=\"https://www.kaggle.com/taindow/pytorch-resnext-101-32x8d-benchmark\">https://www.kaggle.com/taindow/pytorch-resnext-101-32x8d-benchmark</a></p>",
      "votes": 4,
      "replies": [
        {
          "id": 636300,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-09-29T08:15:02.430000",
          "content": "<p>I'm sure it sounds stupid, but what's the difference between your kernel with benchmark and your actual model that gives better results? Some extra preprocessing? Because I am also using the ResNeXt-101 model and getting 0.089</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 636431,
          "author_name": "Tom Aindow",
          "author_url": "",
          "post_date": "2019-09-29T14:14:35.937000",
          "content": "<p>Same dataset, but more epochs and splitting the data to monitor validation performance for the competition metric :)</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 636471,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-09-29T15:30:23.563000",
          "content": "<p>Thanks :) I got 0.086 by using 32x16d benchmark</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 638111,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-01T14:43:36.420000",
          "content": "<p><a href=\"/taindow\">@taindow</a>  Thank you for sharing! It sounds stupid but what metric do you use for your kernel.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 638381,
          "author_name": "Gurgel",
          "author_url": "",
          "post_date": "2019-10-01T21:02:57.100000",
          "content": "<p>U mean you are using the metric as a loss function in your model? My model ran for 2 epochs and, between epochs 1 and 2, my validation score (BCE) increased while the competition metric continued going down (same as training loss). Are u having this problem as well?</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 634704,
      "author_name": "Abhilash Awasthi",
      "author_url": "",
      "post_date": "2019-09-26T16:37:40.677000",
      "content": "<p>resnet34 -- 0.084</p>",
      "votes": 4,
      "replies": [
        {
          "id": 636009,
          "author_name": "AlGiLa",
          "author_url": "",
          "post_date": "2019-09-28T15:35:10.650000",
          "content": "<p>Hi,\nwhat input image size you used ? did you used the full number of images of just a sub portion ? </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 636278,
          "author_name": "Abhilash Awasthi",
          "author_url": "",
          "post_date": "2019-09-29T07:08:15.800000",
          "content": "<p>Image size - 512 x 512...all the images used</p>",
          "votes": 3,
          "replies": []
        }
      ]
    },
    {
      "id": 660412,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2019-10-29T04:56:29.687000",
      "content": "<p>a simple resnet34 without modification on 288x288 get decent results of LB 0.080 (local cv 0.057)\nsee: <a href=\"https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/109272#latest-660570\">https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/109272#latest-660570</a></p>\n\n<p>```\nwindowing input:</p>\n\n<pre><code>brain       = window_image(hu, 40,  80)\nsubdural    = window_image(hu, 80, 200)\nsoft_tissue = window_image(hu, 40, 380)\n</code></pre>\n\n<p>single model, TTA = ['null', 'flip_left_right']</p>\n\n<p>```</p>",
      "votes": 1,
      "replies": [
        {
          "id": 660511,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2019-10-29T08:38:39.957000",
          "content": "<p>update:  the same setup achieve LB 0.70 after increasing size to 512x512 input</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 660530,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2019-10-29T09:17:11.380000",
          "content": "<p>other results:\nEfficientNet B4 224x224 - 0.081\nSeResNext50 512x512     - 0.070</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 660533,
          "author_name": "Tim Yee",
          "author_url": "",
          "post_date": "2019-10-29T09:28:34.683000",
          "content": "<p><a href=\"/hengck23\">@hengck23</a> interested in teaming up?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 660671,
          "author_name": "Eek The Cat",
          "author_url": "",
          "post_date": "2019-10-29T13:02:12.743000",
          "content": "<p><a href=\"/hengck23\">@hengck23</a> Do you have any ideas on how to go below 0.065? It seems that a well trained, reasonably complex model on full resolution and one of publicly known windowing variants will give ~0.07-0.074 on single fold and ~0.065-0.067 ensembling several folds </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 660691,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2019-10-29T13:33:36.873000",
          "content": "<p>the training loss can go as low as 0.030~0.040. Hence with good generalization, it think you can get 0.060 without tricks. </p>\n\n<p>try ensemble network of different architecture, difference size input, different windowing, etc</p>\n\n<p>try tta of crop, scale, flip</p>\n\n<p>try smooth your output by </p>\n\n<p>```\nlogit = net(input)\nlogit += some small noise</p>\n\n<p>loss =(logit,truth)\nloss.backward()</p>\n\n<p>```\n etc ...</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 660809,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2019-10-29T16:31:02.057000",
          "content": "<p><a href=\"https://www.kaggle.com/braquino/correct-images-sequece\">https://www.kaggle.com/braquino/correct-images-sequece</a></p>\n\n<p>you can try to to use nearby slice of the same patient to post correct prediction results</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 644742,
      "author_name": "4ui_iurz1",
      "author_url": "",
      "post_date": "2019-10-09T09:10:38.833000",
      "content": "<p>update\nEfficientNet B0 - 256x256 --&gt; 0.072</p>",
      "votes": 1,
      "replies": [
        {
          "id": 644759,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-09T09:45:02.697000",
          "content": "<p>Are you loading images from dicom? And how many epochs?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644875,
          "author_name": "Gurgel",
          "author_url": "",
          "post_date": "2019-10-09T13:05:31.317000",
          "content": "<p><a href=\"/uiiurz1\">@uiiurz1</a> Hi, do u use Keras? I would like to know if it is allowed to import EfficientNet from some repository, since it doesn't come built in Keras and I didn't see anybody anouncing this model in the external data thread.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 645235,
          "author_name": "4ui_iurz1",
          "author_url": "",
          "post_date": "2019-10-09T23:25:53.100000",
          "content": "<ul>\n<li>png</li>\n<li>5epochs</li>\n<li>pytorch</li>\n</ul>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 645325,
          "author_name": "nan",
          "author_url": "",
          "post_date": "2019-10-10T02:16:00.447000",
          "content": "<p>Do you train on all images or just a sub-set?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 645522,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-10T07:14:39.773000",
          "content": "<p>Do you have a validation split?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 645611,
          "author_name": "4ui_iurz1",
          "author_url": "",
          "post_date": "2019-10-10T09:38:43.407000",
          "content": "<ul>\n<li>all images</li>\n<li>split randomly 80% to train and 20% to validation</li>\n</ul>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 645614,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-10T09:40:26.593000",
          "content": "<p>Thanks, I guess your preprocessing must be very good to get you that LB score</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 651186,
          "author_name": "Rajnish Chauhan",
          "author_url": "",
          "post_date": "2019-10-17T06:45:46.777000",
          "content": "<p>pip install efficientnet\npip install keras_efficientnet</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 641962,
      "author_name": "Fernando Camargo",
      "author_url": "",
      "post_date": "2019-10-05T11:32:11.260000",
      "content": "<p>VGG19 - 224x224 - 0.073</p>",
      "votes": 1,
      "replies": [
        {
          "id": 641990,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-05T12:10:40.497000",
          "content": "<p>Thank you for sharing! Do you mind if I ask How many epoch and data do you use for training? </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 642340,
          "author_name": "Fernando Camargo",
          "author_url": "",
          "post_date": "2019-10-05T23:10:22.213000",
          "content": "<p>I'm using model checkpoint based on val_loss, but I think it was around 20 epochs. And I'm using one-fold with 80% for train e 20% for validation.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 642374,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-06T00:56:10.057000",
          "content": "<p><a href=\"/fernandocamargo\">@fernandocamargo</a> how long your model  take to training one epoch? Thank you for replying me! </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 643596,
          "author_name": "Fernando Camargo",
          "author_url": "",
          "post_date": "2019-10-07T17:01:38.393000",
          "content": "<p>It takes around 40min.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 643667,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-07T18:55:40.143000",
          "content": "<p>Nice work! I am trying to speed my code for fast training. Could you give me some suggestion for this? Thank you so much!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 643901,
          "author_name": "Salil Mishra",
          "author_url": "",
          "post_date": "2019-10-08T05:27:28.427000",
          "content": "<p>The easiest way to speed up training would be using FP16 computations. Also I posted a paper <a href=\"https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/111383#latest-641873\">here</a> which talks about only updating the top losses when backpropagating the error. It can also provide some speed up.</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 643957,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-08T07:00:29.720000",
          "content": "<p>hi <a href=\"/salilm23\">@salilm23</a> . Thanks for your suggestion. May I ask you How can I find implementation of this paper?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 643970,
          "author_name": "Salil Mishra",
          "author_url": "",
          "post_date": "2019-10-08T07:18:58.707000",
          "content": "<p>Hey <a href=\"/linhlpv\">@linhlpv</a> , implementation is also linked in the post :)</p>\n\n<p>Edit - Sorry, the implementation linked to the paper has now been removed </p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 643998,
          "author_name": "steelrose",
          "author_url": "",
          "post_date": "2019-10-08T07:59:37.797000",
          "content": "<p><a href=\"/salilm23\">@salilm23</a> - hi, do you have a local copy of the code? maybe you could upload it somewehere</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644117,
          "author_name": "Salil Mishra",
          "author_url": "",
          "post_date": "2019-10-08T10:52:52.180000",
          "content": "<p>Well, the implementation seems to be back now. <a href=\"https://anonymous.4open.science/r/c6d4060d-bdac-4d31-839e-8579650255b3/\">https://anonymous.4open.science/r/c6d4060d-bdac-4d31-839e-8579650255b3/</a></p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 640833,
      "author_name": "Alimbekov Renat [dsmlkz]",
      "author_url": "",
      "post_date": "2019-10-04T09:02:46.363000",
      "content": "<p>ResNeXt 32x8d - 0.087 with 50/50 % sampler</p>",
      "votes": 1,
      "replies": [
        {
          "id": 640848,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-04T09:13:19.170000",
          "content": "<p>What do you mean by a 50/50% sampler exactly?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 640860,
          "author_name": "Alimbekov Renat [dsmlkz]",
          "author_url": "",
          "post_date": "2019-10-04T09:20:50.817000",
          "content": "<p>I took all data with any == 1 and add randomly with any !=0 so that the ratio would be 50 to 50 %</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 640877,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-04T09:34:59.760000",
          "content": "<p>I'm not sure I'm getting you here, wouldn't any==1 and any !=0 give the same images?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 641073,
          "author_name": "Alimbekov Renat [dsmlkz]",
          "author_url": "",
          "post_date": "2019-10-04T12:24:26.867000",
          "content": "<p>Sorry. It is my mistake. I mean any==1 and any !=1</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 641579,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-04T20:01:27.870000",
          "content": "<p>And how many epochs?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 641757,
          "author_name": "Alimbekov Renat [dsmlkz]",
          "author_url": "",
          "post_date": "2019-10-05T03:48:24.087000",
          "content": "<p>1 epoch)</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 650323,
      "author_name": "takuoko",
      "author_url": "",
      "post_date": "2019-10-16T09:21:56.890000",
      "content": "<p>Seresnext50-&gt;LB0.072\nimg size-&gt;512*512\nthree windowing preprocessor</p>",
      "votes": 2,
      "replies": [
        {
          "id": 659275,
          "author_name": "Mohammad Azam Khan",
          "author_url": "",
          "post_date": "2019-10-27T11:46:14.093000",
          "content": "<p><a href=\"/takuok\">@takuok</a> I am just wondering if you can share what augmentations you are using? Also, is the result of a single fold?</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 647449,
      "author_name": "Yifeng (Ethan) Zou",
      "author_url": "",
      "post_date": "2019-10-12T16:35:22.083000",
      "content": "<p>With raw input from dcmread, random ShuffleSplit, no tta,\nB0 0.079 -&gt; 0.074 224x224</p>",
      "votes": 2,
      "replies": [
        {
          "id": 647547,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-12T20:39:20.787000",
          "content": "<p>Epochs?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 647550,
          "author_name": "Yifeng (Ethan) Zou",
          "author_url": "",
          "post_date": "2019-10-12T20:45:03.347000",
          "content": "<p>I'm pretty sure that's subjective to many other factors. For .95/.05 split, default class weight it seems 4-6 epochs works well and then starts to overfit real bad real fast afterwards.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 647551,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-12T20:46:41.027000",
          "content": "<p>Noticed that for resnext, more than 4 epochs is generally overfittnig</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 650016,
          "author_name": "pupil3",
          "author_url": "",
          "post_date": "2019-10-16T02:26:43.553000",
          "content": "<p>could you tell me what's the meaning of tta?\nMuch thanks</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 650091,
          "author_name": "Josh Myers",
          "author_url": "",
          "post_date": "2019-10-16T04:59:59.483000",
          "content": "<p>Test-time augmentation: <a href=\"https://machinelearningmastery.com/how-to-use-test-time-augmentation-to-improve-model-performance-for-image-classification/\">https://machinelearningmastery.com/how-to-use-test-time-augmentation-to-improve-model-performance-for-image-classification/</a></p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 659954,
          "author_name": "Verne",
          "author_url": "",
          "post_date": "2019-10-28T13:41:23.760000",
          "content": "<p>what sort of training loss and validation loss do you have just before it starts to overfit? thanks</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 642349,
      "author_name": "Shangqiu Li",
      "author_url": "",
      "post_date": "2019-10-05T23:31:55.780000",
      "content": "<p>InceptionResnetv2 -224*224 --&gt; 0.086</p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 636490,
      "author_name": "Arijit Gupta",
      "author_url": "",
      "post_date": "2019-09-29T16:18:37.737000",
      "content": "<p>ResNeXt-101 32x16d : 0.086</p>",
      "votes": 2,
      "replies": [
        {
          "id": 636568,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-09-29T19:50:08.533000",
          "content": "<p>Thanks for your sharing! How many epoch that you train you model?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 636657,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-09-30T01:56:38.690000",
          "content": "<p>1 epoch for now, due to size of dataset even that takes a long time</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 636714,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-09-30T05:04:37.243000",
          "content": "<p>Nice work! I am also using ResNeXt 32x16d and archive 0.088 :D. i using Adam optimizer with lr=1e-5. Thanks for aswering me!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 638923,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-02T15:07:56.093000",
          "content": "<p>Did you change your model to better your accuracy? Or did you change some hyperparameters like learning rate?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 641589,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-04T20:06:24.517000",
          "content": "<p>Now I use RAdam for optimizer. You should try it.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 643083,
          "author_name": "Arijit Gupta",
          "author_url": "",
          "post_date": "2019-10-07T04:37:05.440000",
          "content": "<p>So you're using keras then?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 643170,
          "author_name": "L3viEvil",
          "author_url": "",
          "post_date": "2019-10-07T07:52:27.010000",
          "content": "<p>I have both Keras and Pytorch Base code.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 649196,
      "author_name": "Kun Jiang ",
      "author_url": "",
      "post_date": "2019-10-15T03:54:12.313000",
      "content": "<p>VGG19 \nepoch20\nLB：0.082</p>",
      "votes": 0,
      "replies": [
        {
          "id": 649393,
          "author_name": "Yaroslav Isaienkov",
          "author_url": "",
          "post_date": "2019-10-15T09:42:36.517000",
          "content": "<p>Did you train it on the whole dataset?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 659780,
          "author_name": "Kun Jiang ",
          "author_url": "",
          "post_date": "2019-10-28T08:54:39.633000",
          "content": "<p>undata: VGG19_BN\nepoches:15\nLB:0.075</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 659781,
          "author_name": "Kun Jiang ",
          "author_url": "",
          "post_date": "2019-10-28T08:55:37.440000",
          "content": "<p>yes， I use the whole data, I will try three window process, but i have no a hug disk</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 643575,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-07T16:28:33.317000",
      "content": "",
      "votes": 0,
      "replies": [
        {
          "id": 650014,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-10-16T02:25:52.067000",
          "content": "",
          "votes": 0,
          "replies": []
        },
        {
          "id": 653123,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-10-20T01:13:20.010000",
          "content": "",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 660794,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-29T16:09:22.333000",
      "content": "",
      "votes": -1,
      "replies": []
    },
    {
      "id": 648597,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-14T12:01:47.100000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 648113,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-13T19:03:22.423000",
      "content": "",
      "votes": 0,
      "replies": [
        {
          "id": 648470,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-10-14T08:35:28.220000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 647975,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-13T15:02:09.523000",
      "content": "",
      "votes": 0,
      "replies": [
        {
          "id": 648012,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-10-13T16:01:55.150000",
          "content": "",
          "votes": 0,
          "replies": []
        },
        {
          "id": 648183,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-10-13T20:48:46.207000",
          "content": "",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 647830,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-13T11:06:54.310000",
      "content": "",
      "votes": 0,
      "replies": [
        {
          "id": 656649,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-10-24T13:50:13.223000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 647633,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-13T02:27:32.177000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 642803,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-06T17:13:29.340000",
      "content": "",
      "votes": 0,
      "replies": [
        {
          "id": 643184,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-10-07T08:06:30.730000",
          "content": "",
          "votes": 0,
          "replies": []
        },
        {
          "id": 644125,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-10-08T11:21:06.623000",
          "content": "",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 642646,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-06T12:36:43.493000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 639303,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-03T03:40:48.720000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 638909,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-02T14:44:03.017000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 650505,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-10-16T12:59:12.447000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 636904,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-09-30T10:21:05.513000",
      "content": "",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "634193": "Just a running thread of your best single model LB score. I will update weekly. Please share! \n<br>\n\nSept 25: EfficientNet B1 224x224 - 0.098\nSept 26: EfficientNet B0 224x224 - 0.093\nOct 24: EfficientNet B0 512x512- 0.076",
    "651862": "Single-fold SE ResNext50, 512x512 raw HU image: lb 0.066 w/o tta",
    "659411": "Resnet34 with modifications, 256 image size, 0.062 LB",
    "636257": "size 224x224, model: inceptionV3, single fold --&gt; LB 0.079",
    "634491": "Custom model -- 0.069  ",
    "646930": ".073 is achievable with b0 224x224. I grouped on patient and used some tricks, though",
    "636104": "EfficientNet-B5 @ 512 x 512 - 0.070",
    "636131": "LB: 0.080\n\n&gt; MODEL: Efficient Net B0 \nSIZE:  224 (PNG)\nCV:  1 Fold\nAUG: [zoom, rotate]\nTTA: No\nPRETRAINED: True\nEPOCH: 20\nLR:   1e-3\n\n",
    "652609": " 0.069 - single fold, no tta,  300x300, 80:20 train/val split using the full dataset, custom model.",
    "651109": "efficientnet-b2 \n256x256\nw/o 3 windowing preprocess\npublicLB: 0.069",
    "651127": "EfficientNet-B0\n224x224\nPublic LB: 0.069 without TTA",
    "634541": "inceptionv4 -&gt; 0.78",
    "642485": "LB 0.079 (update 0.074)\n- se\\_resnext50\\_32x4d\n- 224x224\n- 2 epochs\n- hflip, crop",
    "646623": "Seresnext50-&gt;LB0.082\nimg size-&gt;224*224",
    "638792": "EfficientNet B0 - 512x512   --&gt;  0.078",
    "634225": "Using only 30,000 samples(15k positive and 15k negative)\n\nEfficient Net B4 10 epochs 256x256 - 0.113\nEfficient Net B4  3 epochs 256x256 - 0.107  \n\nLB improving with less number of epochs? (Edit - Severely Overfitting?)",
    "653855": "efficientnet-b2\n410x410\nsingle fold\nhflip tta\npublicLB: 0.064",
    "651563": "Update: \nresnet50, 256x256, train on 150k images per epochs, split by patient, lb 0.071 no tta single fold",
    "636711": "resnet34, image 256x256, 10k pos, 10k neg, single fold, 0.088 lb\nUpdate: resnet34, image 256x256, single fold -&gt; 0.078 lb",
    "636110": "ResNeXt-101 32x8d: 0.082\n\nKernel with benchmark (0.089): https://www.kaggle.com/taindow/pytorch-resnext-101-32x8d-benchmark",
    "634704": "resnet34 -- 0.084",
    "660412": "a simple resnet34 without modification on 288x288 get decent results of LB 0.080 (local cv 0.057)\nsee: https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/109272#latest-660570\n\n```\nwindowing input:\n\n    brain       = window_image(hu, 40,  80)\n    subdural    = window_image(hu, 80, 200)\n    soft_tissue = window_image(hu, 40, 380)\n\nsingle model, TTA = ['null', 'flip_left_right']\n\n```\n",
    "644742": "update\nEfficientNet B0 - 256x256 --&gt; 0.072",
    "641962": "VGG19 - 224x224 - 0.073",
    "640833": "ResNeXt 32x8d - 0.087 with 50/50 % sampler",
    "650323": "Seresnext50-&gt;LB0.072\nimg size-&gt;512*512\nthree windowing preprocessor",
    "647449": "With raw input from dcmread, random ShuffleSplit, no tta,\nB0 0.079 -&gt; 0.074 224x224",
    "642349": "InceptionResnetv2 -224*224 --&gt; 0.086",
    "636490": "ResNeXt-101 32x16d : 0.086",
    "649196": "VGG19 \nepoch20\nLB：0.082",
    "643575": "So far Resnet50 .0094 w/o any augmentation or tta. ",
    "660794": "hm.\n",
    "648597": "@appian thanks for reply but it takes me to 4 hours for an epoch on kernel what should i do",
    "648113": "@appian how much time does it take you train up to 2 epochs",
    "647975": "EfficientNet B0 - 256x256 --&gt; 0.077\nImage augmentation included horizontal flip and rotation of up to 10 degrees\nTrained for 10 epochs using cyclical learning rate, max 0.009",
    "647830": "@XingJian Lyu are you training on full dataset ",
    "647633": "As Oct. 12th, size 256x256, model: Resnet50 0.089",
    "642803": "ResNet50 - 224*224, 5epochs, full dataset (23905 seconds) --&gt; 0.108...",
    "642646": "Score -  0.107\n- EfficientNetb2 , 224x \n- With just 2 epoch .\n- steps = len(generator)\n- Little touch on image pre processing for Gaussian Blur\n- loss - log_loss\n",
    "639303": "Inception , 224x224 , ---&gt; 0.091",
    "638909": "You guys are awesome!\nI just submit a public kernel to apply the GCP credits😜 \nStill writing the dataloader🙈 ",
    "650505": "Thanks for sharing",
    "636904": "Thank you for sharing!"
  }
}