{
  "id": 128592,
  "title": "[pytorch] A simple implementation of mixup/cutout/Margin loss.....",
  "url": "/competitions/bengaliai-cv19/discussion/128592",
  "author_name": "",
  "post_date": "2020-02-01T14:59:48.923197400Z",
  "votes": 31,
  "comment_count": 2,
  "views": 0,
  "content": "<p>Mixup</p>\n\n<p>```python\nfrom torchtoolbox.tools import mixup_data, mixup_criterion</p>\n\n<p>alpha = 0.2\nfor i, (data, labels) in enumerate(train_data):\n    data = data.to(device, non_blocking=True)\n    labels = labels.to(device, non_blocking=True)</p>\n\n<pre><code>data, labels_a, labels_b, lam = mixup_data(data, labels, alpha)\noptimizer.zero_grad()\noutputs = model(data)\nloss = mixup_criterion(Loss, outputs, labels_a, labels_b, lam)\n\nloss.backward()\noptimizer.update()\n</code></pre>\n\n<p>```</p>\n\n<p>Cutout</p>\n\n<p>```python\nfrom torchvision import transforms\nfrom torchtoolbox.transform import Cutout</p>\n\n<p>_train_transform = transforms.Compose([\n    transforms.RandomResizedCrop(224),\n    Cutout(),\n    transforms.RandomHorizontalFlip(),\n    transforms.ColorJitter(0.4, 0.4, 0.4),\n    transforms.ToTensor(),\n    normalize,\n])\n```</p>\n\n<p>ArcLoss\nCosLoss\nL2Softmax</p>\n\n<p><code>python\nfrom torchtoolbox.nn.loss import ArcLoss, CosLoss, L2Softmax\n</code></p>\n\n<p>reference：<a href=\"https://github.com/PistonY/torch-toolbox\">https://github.com/PistonY/torch-toolbox</a></p>",
  "messages": [
    {
      "id": "734492",
      "postDate": "02/01/2020 14:59:48",
      "content": "<p>Mixup</p>\n\n<p>```python\nfrom torchtoolbox.tools import mixup_data, mixup_criterion</p>\n\n<p>alpha = 0.2\nfor i, (data, labels) in enumerate(train_data):\n    data = data.to(device, non_blocking=True)\n    labels = labels.to(device, non_blocking=True)</p>\n\n<pre><code>data, labels_a, labels_b, lam = mixup_data(data, labels, alpha)\noptimizer.zero_grad()\noutputs = model(data)\nloss = mixup_criterion(Loss, outputs, labels_a, labels_b, lam)\n\nloss.backward()\noptimizer.update()\n</code></pre>\n\n<p>```</p>\n\n<p>Cutout</p>\n\n<p>```python\nfrom torchvision import transforms\nfrom torchtoolbox.transform import Cutout</p>\n\n<p>_train_transform = transforms.Compose([\n    transforms.RandomResizedCrop(224),\n    Cutout(),\n    transforms.RandomHorizontalFlip(),\n    transforms.ColorJitter(0.4, 0.4, 0.4),\n    transforms.ToTensor(),\n    normalize,\n])\n```</p>\n\n<p>ArcLoss\nCosLoss\nL2Softmax</p>\n\n<p><code>python\nfrom torchtoolbox.nn.loss import ArcLoss, CosLoss, L2Softmax\n</code></p>\n\n<p>reference：<a href=\"https://github.com/PistonY/torch-toolbox\">https://github.com/PistonY/torch-toolbox</a></p>",
      "rawMarkdown": "Mixup\n\n```python\nfrom torchtoolbox.tools import mixup_data, mixup_criterion\n\nalpha = 0.2\nfor i, (data, labels) in enumerate(train_data):\n    data = data.to(device, non_blocking=True)\n    labels = labels.to(device, non_blocking=True)\n\n    data, labels_a, labels_b, lam = mixup_data(data, labels, alpha)\n    optimizer.zero_grad()\n    outputs = model(data)\n    loss = mixup_criterion(Loss, outputs, labels_a, labels_b, lam)\n\n    loss.backward()\n    optimizer.update()\n```\n\nCutout\n\n```python\nfrom torchvision import transforms\nfrom torchtoolbox.transform import Cutout\n\n_train_transform = transforms.Compose([\n    transforms.RandomResizedCrop(224),\n    Cutout(),\n    transforms.RandomHorizontalFlip(),\n    transforms.ColorJitter(0.4, 0.4, 0.4),\n    transforms.ToTensor(),\n    normalize,\n])\n```\n\nArcLoss\nCosLoss\nL2Softmax\n\n```python\nfrom torchtoolbox.nn.loss import ArcLoss, CosLoss, L2Softmax\n```\n\nreference：https://github.com/PistonY/torch-toolbox",
      "votes": null
    },
    {
      "id": "734816",
      "postDate": "02/02/2020 03:29:24",
      "content": "<p>mixup/cutmix with ohem loss : <a href=\"https://www.kaggle.com/c/bengaliai-cv19/discussion/128637\">https://www.kaggle.com/c/bengaliai-cv19/discussion/128637</a></p>",
      "rawMarkdown": "mixup/cutmix with ohem loss : https://www.kaggle.com/c/bengaliai-cv19/discussion/128637",
      "votes": null
    },
    {
      "id": "763162",
      "postDate": "03/04/2020 07:45:35",
      "content": "<p>FMix: FMix improves performance over MixUp and CutMix for a number of state-of-the- art models across a range of data sets and problem settings：<a href=\"https://www.kaggle.com/c/bengaliai-cv19/discussion/133322\">https://www.kaggle.com/c/bengaliai-cv19/discussion/133322</a></p>",
      "rawMarkdown": "FMix: FMix improves performance over MixUp and CutMix for a number of state-of-the- art models across a range of data sets and problem settings：https://www.kaggle.com/c/bengaliai-cv19/discussion/133322",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 734816,
      "author_name": "machinelp",
      "author_url": "",
      "post_date": "02/02/2020 03:29:24",
      "content": "<p>mixup/cutmix with ohem loss : <a href=\"https://www.kaggle.com/c/bengaliai-cv19/discussion/128637\">https://www.kaggle.com/c/bengaliai-cv19/discussion/128637</a></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 763162,
      "author_name": "machinelp",
      "author_url": "",
      "post_date": "03/04/2020 07:45:35",
      "content": "<p>FMix: FMix improves performance over MixUp and CutMix for a number of state-of-the- art models across a range of data sets and problem settings：<a href=\"https://www.kaggle.com/c/bengaliai-cv19/discussion/133322\">https://www.kaggle.com/c/bengaliai-cv19/discussion/133322</a></p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "734492": "Mixup\n\n```python\nfrom torchtoolbox.tools import mixup_data, mixup_criterion\n\nalpha = 0.2\nfor i, (data, labels) in enumerate(train_data):\n    data = data.to(device, non_blocking=True)\n    labels = labels.to(device, non_blocking=True)\n\n    data, labels_a, labels_b, lam = mixup_data(data, labels, alpha)\n    optimizer.zero_grad()\n    outputs = model(data)\n    loss = mixup_criterion(Loss, outputs, labels_a, labels_b, lam)\n\n    loss.backward()\n    optimizer.update()\n```\n\nCutout\n\n```python\nfrom torchvision import transforms\nfrom torchtoolbox.transform import Cutout\n\n_train_transform = transforms.Compose([\n    transforms.RandomResizedCrop(224),\n    Cutout(),\n    transforms.RandomHorizontalFlip(),\n    transforms.ColorJitter(0.4, 0.4, 0.4),\n    transforms.ToTensor(),\n    normalize,\n])\n```\n\nArcLoss\nCosLoss\nL2Softmax\n\n```python\nfrom torchtoolbox.nn.loss import ArcLoss, CosLoss, L2Softmax\n```\n\nreference：https://github.com/PistonY/torch-toolbox",
    "734816": "mixup/cutmix with ohem loss : https://www.kaggle.com/c/bengaliai-cv19/discussion/128637",
    "763162": "FMix: FMix improves performance over MixUp and CutMix for a number of state-of-the- art models across a range of data sets and problem settings：https://www.kaggle.com/c/bengaliai-cv19/discussion/133322"
  },
  "source": "meta"
}