{
  "id": 134264,
  "title": "batch implementation of more data augmentations",
  "url": "/competitions/flower-classification-with-tpus/discussion/134264",
  "author_name": "",
  "post_date": "2020-03-07T00:24:35.506163600Z",
  "votes": 8,
  "comment_count": 4,
  "views": 0,
  "content": "<p>In my kernel <a href=\"https://www.kaggle.com/yihdarshieh/batch-implementation-of-more-data-augmentations?scriptVersionId=29767726\">batch implementation of more data augmentations</a>, you can  find my batch implementation for CutMix, MixUp (see Chris Deotte's kernel) and GridMask -- see <a href=\"https://www.kaggle.com/c/flower-classification-with-tpus/discussion/132986\">GridMask data augmentation with tensorflow (by Xie29)</a></p>",
  "messages": [
    {
      "id": "765676",
      "postDate": "03/07/2020 00:24:35",
      "content": "<p>In my kernel <a href=\"https://www.kaggle.com/yihdarshieh/batch-implementation-of-more-data-augmentations?scriptVersionId=29767726\">batch implementation of more data augmentations</a>, you can  find my batch implementation for CutMix, MixUp (see Chris Deotte's kernel) and GridMask -- see <a href=\"https://www.kaggle.com/c/flower-classification-with-tpus/discussion/132986\">GridMask data augmentation with tensorflow (by Xie29)</a></p>",
      "rawMarkdown": "In my kernel [batch implementation of more data augmentations](https://www.kaggle.com/yihdarshieh/batch-implementation-of-more-data-augmentations?scriptVersionId=29767726), you can  find my batch implementation for CutMix, MixUp (see Chris Deotte's kernel) and GridMask -- see [GridMask data augmentation with tensorflow (by Xie29)](https://www.kaggle.com/c/flower-classification-with-tpus/discussion/132986)",
      "votes": null
    },
    {
      "id": "767877",
      "postDate": "03/10/2020 07:38:38",
      "content": "<p>Great work. It looks like you sped up all three augmentations by 5x each. And now we can add them to <code>tf.keras.layers()</code> if we want. Thanks!</p>",
      "rawMarkdown": "Great work. It looks like you sped up all three augmentations by 5x each. And now we can add them to `tf.keras.layers()` if we want. Thanks!",
      "votes": null
    },
    {
      "id": "767913",
      "postDate": "03/10/2020 08:29:03",
      "content": "<p>Hi, <a href=\"/cdeotte\">@cdeotte</a> , I think it still slows down if we put the computation in layers, as you benchmarked before, because it is just batch form as i did for your rotation code. Also, the timing here is on cpu, without tf dataset iteration involved.</p>",
      "rawMarkdown": "Hi, @cdeotte , I think it still slows down if we put the computation in layers, as you benchmarked before, because it is just batch form as i did for your rotation code. Also, the timing here is on cpu, without tf dataset iteration involved.",
      "votes": null
    },
    {
      "id": "768384",
      "postDate": "03/10/2020 18:16:34",
      "content": "<p>Fantastic. Thank you for the contribution <a href=\"/yihdarshieh\">@yihdarshieh</a> </p>",
      "rawMarkdown": "Fantastic. Thank you for the contribution @yihdarshieh",
      "votes": null
    },
    {
      "id": "777783",
      "postDate": "03/17/2020 23:47:27",
      "content": "<p>I checked the kernel and your implementation is great. I do have a question though. What would be the correct way to use your implementation of cutmix when used for training ? </p>",
      "rawMarkdown": "I checked the kernel and your implementation is great. I do have a question though. What would be the correct way to use your implementation of cutmix when used for training ?",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 767877,
      "author_name": "cdeotte",
      "author_url": "",
      "post_date": "03/10/2020 07:38:38",
      "content": "<p>Great work. It looks like you sped up all three augmentations by 5x each. And now we can add them to <code>tf.keras.layers()</code> if we want. Thanks!</p>",
      "votes": null,
      "replies": [
        {
          "id": 767913,
          "author_name": "yihdarshieh",
          "author_url": "",
          "post_date": "03/10/2020 08:29:03",
          "content": "<p>Hi, <a href=\"/cdeotte\">@cdeotte</a> , I think it still slows down if we put the computation in layers, as you benchmarked before, because it is just batch form as i did for your rotation code. Also, the timing here is on cpu, without tf dataset iteration involved.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 768384,
      "author_name": "mgorner",
      "author_url": "",
      "post_date": "03/10/2020 18:16:34",
      "content": "<p>Fantastic. Thank you for the contribution <a href=\"/yihdarshieh\">@yihdarshieh</a> </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 777783,
      "author_name": "ibrahimsherify",
      "author_url": "",
      "post_date": "03/17/2020 23:47:27",
      "content": "<p>I checked the kernel and your implementation is great. I do have a question though. What would be the correct way to use your implementation of cutmix when used for training ? </p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "765676": "In my kernel [batch implementation of more data augmentations](https://www.kaggle.com/yihdarshieh/batch-implementation-of-more-data-augmentations?scriptVersionId=29767726), you can  find my batch implementation for CutMix, MixUp (see Chris Deotte's kernel) and GridMask -- see [GridMask data augmentation with tensorflow (by Xie29)](https://www.kaggle.com/c/flower-classification-with-tpus/discussion/132986)",
    "767877": "Great work. It looks like you sped up all three augmentations by 5x each. And now we can add them to `tf.keras.layers()` if we want. Thanks!",
    "767913": "Hi, @cdeotte , I think it still slows down if we put the computation in layers, as you benchmarked before, because it is just batch form as i did for your rotation code. Also, the timing here is on cpu, without tf dataset iteration involved.",
    "768384": "Fantastic. Thank you for the contribution @yihdarshieh",
    "777783": "I checked the kernel and your implementation is great. I do have a question though. What would be the correct way to use your implementation of cutmix when used for training ?"
  },
  "source": "meta"
}