{
  "id": 171489,
  "title": "What augmentations / albumentations have you found most effective?",
  "url": "/competitions/siim-isic-melanoma-classification/discussion/171489",
  "author_name": "",
  "post_date": "2020-08-01T03:36:20.902208700Z",
  "votes": 22,
  "comment_count": 6,
  "views": 0,
  "content": "<p>Here is some data from my own testing:</p>\n\n<p>Net: EfficientNet B1\nImage Size: 240x240\nFolds: 1\nEpochs: 10</p>\n\n<p>ROC_AUC values follow:</p>\n\n<p>0.639 No augmentation\n0.700 DullRazor\n0.719 AdvancedHairAgumentation\n0.667 RandomResizeCrop\n0.637 RandomHorizontalFlip\n0.660 RandomVerticalFlip\n0.724 ColorJitter\n0.606 Microscope\n0.648 Cutout\n0.859 Normalization</p>\n\n<p>0.821 Hair, RRC, RVF, Norm\n0.795 DullRazor, RRC, RHF, RVF, Norm\n0.842 Hair, RRC, RHF, RVF,, Norm\n0.843 RRC, RHF, RVF, ColorJitter, Norm\n0.828 RRC, RHF, RVF, Microscope, Norm\n0.817  RRC, RHF, RVF, Cutout, Norm\n0.839 Hair, RRC, RHF, RVF, ColorJitter, Norm\n0.853 Hair, RRC, RHF, RVF, ColorJitter, Microscope, Norm</p>\n\n<p>Curious as to what you all saw work best.</p>",
  "messages": [
    {
      "id": "953720",
      "postDate": "08/01/2020 03:36:20",
      "content": "<p>Here is some data from my own testing:</p>\n\n<p>Net: EfficientNet B1\nImage Size: 240x240\nFolds: 1\nEpochs: 10</p>\n\n<p>ROC_AUC values follow:</p>\n\n<p>0.639 No augmentation\n0.700 DullRazor\n0.719 AdvancedHairAgumentation\n0.667 RandomResizeCrop\n0.637 RandomHorizontalFlip\n0.660 RandomVerticalFlip\n0.724 ColorJitter\n0.606 Microscope\n0.648 Cutout\n0.859 Normalization</p>\n\n<p>0.821 Hair, RRC, RVF, Norm\n0.795 DullRazor, RRC, RHF, RVF, Norm\n0.842 Hair, RRC, RHF, RVF,, Norm\n0.843 RRC, RHF, RVF, ColorJitter, Norm\n0.828 RRC, RHF, RVF, Microscope, Norm\n0.817  RRC, RHF, RVF, Cutout, Norm\n0.839 Hair, RRC, RHF, RVF, ColorJitter, Norm\n0.853 Hair, RRC, RHF, RVF, ColorJitter, Microscope, Norm</p>\n\n<p>Curious as to what you all saw work best.</p>",
      "rawMarkdown": "Here is some data from my own testing:\n\nNet: EfficientNet B1\nImage Size: 240x240\nFolds: 1\nEpochs: 10\n\nROC_AUC values follow:\n\n0.639 No augmentation\n0.700 DullRazor\n0.719 AdvancedHairAgumentation\n0.667 RandomResizeCrop\n0.637 RandomHorizontalFlip\n0.660 RandomVerticalFlip\n0.724 ColorJitter\n0.606 Microscope\n0.648 Cutout\n0.859 Normalization\n\n0.821 Hair, RRC, RVF, Norm\n0.795 DullRazor, RRC, RHF, RVF, Norm\n0.842 Hair, RRC, RHF, RVF,, Norm\n0.843 RRC, RHF, RVF, ColorJitter, Norm\n0.828 RRC, RHF, RVF, Microscope, Norm\n0.817  RRC, RHF, RVF, Cutout, Norm\n0.839 Hair, RRC, RHF, RVF, ColorJitter, Norm\n0.853 Hair, RRC, RHF, RVF, ColorJitter, Microscope, Norm\n\n\nCurious as to what you all saw work best.",
      "votes": null
    },
    {
      "id": "953809",
      "postDate": "08/01/2020 05:52:07",
      "content": "<p>Thanks for your values.</p>",
      "rawMarkdown": "Thanks for your values.",
      "votes": null
    },
    {
      "id": "954666",
      "postDate": "08/02/2020 01:43:24",
      "content": "<p>Can you explain \"Normalization\"?</p>",
      "rawMarkdown": "Can you explain \"Normalization\"?",
      "votes": null
    },
    {
      "id": "954688",
      "postDate": "08/02/2020 02:05:44",
      "content": "<p>The standard ImageNet normalization values are usually added in PyTorch using torchvision.transforms or Albumentations pipeline.  So its nothing more than just setting the mean/std to the standard imagenet values.  </p>",
      "rawMarkdown": "The standard ImageNet normalization values are usually added in PyTorch using torchvision.transforms or Albumentations pipeline.  So its nothing more than just setting the mean/std to the standard imagenet values.",
      "votes": null
    },
    {
      "id": "954690",
      "postDate": "08/02/2020 02:09:38",
      "content": "<p>Interesting. You get a large increase from normalization. I tried it but didn't get a large increase. I'll play around with it some more. Thanks for sharing your results.</p>",
      "rawMarkdown": "Interesting. You get a large increase from normalization. I tried it but didn't get a large increase. I'll play around with it some more. Thanks for sharing your results.",
      "votes": null
    },
    {
      "id": "954703",
      "postDate": "08/02/2020 02:29:58",
      "content": "<p>These are the values I am using, which are the standard ImageNet values:</p>\n\n<p><code>A.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225],)</code></p>",
      "rawMarkdown": "These are the values I am using, which are the standard ImageNet values:\n\n`    A.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225],) `",
      "votes": null
    },
    {
      "id": "956610",
      "postDate": "08/03/2020 16:18:00",
      "content": "<p>I think its just a faster convergence, if normalization isn't used the model will give similar results but after more epochs. Also normalizing pixel values to 0-1 helps for a better/faster convergence if the architecture you are using was trained this way (example: EfficientNets in pytorch). This is what happens in my experiments! (not especially in this comp but overall experience using normalizations)</p>",
      "rawMarkdown": "I think its just a faster convergence, if normalization isn't used the model will give similar results but after more epochs. Also normalizing pixel values to 0-1 helps for a better/faster convergence if the architecture you are using was trained this way (example: EfficientNets in pytorch). This is what happens in my experiments! (not especially in this comp but overall experience using normalizations)",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 953809,
      "author_name": "vineeth1999",
      "author_url": "",
      "post_date": "08/01/2020 05:52:07",
      "content": "<p>Thanks for your values.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 954666,
      "author_name": "cdeotte",
      "author_url": "",
      "post_date": "08/02/2020 01:43:24",
      "content": "<p>Can you explain \"Normalization\"?</p>",
      "votes": null,
      "replies": [
        {
          "id": 954688,
          "author_name": "brianfeeny",
          "author_url": "",
          "post_date": "08/02/2020 02:05:44",
          "content": "<p>The standard ImageNet normalization values are usually added in PyTorch using torchvision.transforms or Albumentations pipeline.  So its nothing more than just setting the mean/std to the standard imagenet values.  </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 954690,
          "author_name": "cdeotte",
          "author_url": "",
          "post_date": "08/02/2020 02:09:38",
          "content": "<p>Interesting. You get a large increase from normalization. I tried it but didn't get a large increase. I'll play around with it some more. Thanks for sharing your results.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 954703,
          "author_name": "brianfeeny",
          "author_url": "",
          "post_date": "08/02/2020 02:29:58",
          "content": "<p>These are the values I am using, which are the standard ImageNet values:</p>\n\n<p><code>A.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225],)</code></p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 956610,
          "author_name": "yannmajewski",
          "author_url": "",
          "post_date": "08/03/2020 16:18:00",
          "content": "<p>I think its just a faster convergence, if normalization isn't used the model will give similar results but after more epochs. Also normalizing pixel values to 0-1 helps for a better/faster convergence if the architecture you are using was trained this way (example: EfficientNets in pytorch). This is what happens in my experiments! (not especially in this comp but overall experience using normalizations)</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "953720": "Here is some data from my own testing:\n\nNet: EfficientNet B1\nImage Size: 240x240\nFolds: 1\nEpochs: 10\n\nROC_AUC values follow:\n\n0.639 No augmentation\n0.700 DullRazor\n0.719 AdvancedHairAgumentation\n0.667 RandomResizeCrop\n0.637 RandomHorizontalFlip\n0.660 RandomVerticalFlip\n0.724 ColorJitter\n0.606 Microscope\n0.648 Cutout\n0.859 Normalization\n\n0.821 Hair, RRC, RVF, Norm\n0.795 DullRazor, RRC, RHF, RVF, Norm\n0.842 Hair, RRC, RHF, RVF,, Norm\n0.843 RRC, RHF, RVF, ColorJitter, Norm\n0.828 RRC, RHF, RVF, Microscope, Norm\n0.817  RRC, RHF, RVF, Cutout, Norm\n0.839 Hair, RRC, RHF, RVF, ColorJitter, Norm\n0.853 Hair, RRC, RHF, RVF, ColorJitter, Microscope, Norm\n\n\nCurious as to what you all saw work best.",
    "953809": "Thanks for your values.",
    "954666": "Can you explain \"Normalization\"?",
    "954688": "The standard ImageNet normalization values are usually added in PyTorch using torchvision.transforms or Albumentations pipeline.  So its nothing more than just setting the mean/std to the standard imagenet values.",
    "954690": "Interesting. You get a large increase from normalization. I tried it but didn't get a large increase. I'll play around with it some more. Thanks for sharing your results.",
    "954703": "These are the values I am using, which are the standard ImageNet values:\n\n`    A.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225],) `",
    "956610": "I think its just a faster convergence, if normalization isn't used the model will give similar results but after more epochs. Also normalizing pixel values to 0-1 helps for a better/faster convergence if the architecture you are using was trained this way (example: EfficientNets in pytorch). This is what happens in my experiments! (not especially in this comp but overall experience using normalizations)"
  },
  "source": "meta"
}