{
  "id": 47792,
  "title": "A Tip for Boosting Performance",
  "url": "/competitions/sp-society-camera-model-identification/discussion/47792",
  "author_name": "",
  "post_date": "2018-01-18T21:48:12.249175500Z",
  "votes": 6,
  "comment_count": 2,
  "views": 0,
  "content": "<p>For those who <strong>have not access to powerful computational resources</strong> and are considering to use <strong>transfer learning</strong>, I strongly suggest to </p>\n\n<ol>\n<li><p>produce a whole new data set using the original photos in the training and the validation dataset (for example by cropping the original images or any other data augmentation technique which suits best their needs), and</p></li>\n<li><p>then pre-compute required features for every data in your new dataset, and</p></li>\n<li><p>store them using NumPy (for this purpose, I recommend <code>bcolz</code> python library which is very fast and memory efficient; but you can also use the simple <code>np.save()</code> method from NumPy). </p></li>\n</ol>\n\n<p>This way, you will be able to save a huge amount of computations and hence performing more experiments and getting better results. I hope it can be useful for anyone who suffers from low computational resources.</p>",
  "messages": [
    {
      "id": "270759",
      "postDate": "01/18/2018 21:48:12",
      "content": "<p>For those who <strong>have not access to powerful computational resources</strong> and are considering to use <strong>transfer learning</strong>, I strongly suggest to </p>\n\n<ol>\n<li><p>produce a whole new data set using the original photos in the training and the validation dataset (for example by cropping the original images or any other data augmentation technique which suits best their needs), and</p></li>\n<li><p>then pre-compute required features for every data in your new dataset, and</p></li>\n<li><p>store them using NumPy (for this purpose, I recommend <code>bcolz</code> python library which is very fast and memory efficient; but you can also use the simple <code>np.save()</code> method from NumPy). </p></li>\n</ol>\n\n<p>This way, you will be able to save a huge amount of computations and hence performing more experiments and getting better results. I hope it can be useful for anyone who suffers from low computational resources.</p>",
      "rawMarkdown": "For those who **have not access to powerful computational resources** and are considering to use **transfer learning**, I strongly suggest to \n\n1. produce a whole new data set using the original photos in the training and the validation dataset (for example by cropping the original images or any other data augmentation technique which suits best their needs), and\n\n2. then pre-compute required features for every data in your new dataset, and\n\n3. store them using NumPy (for this purpose, I recommend `bcolz` python library which is very fast and memory efficient; but you can also use the simple `np.save()` method from NumPy). \n\nThis way, you will be able to save a huge amount of computations and hence performing more experiments and getting better results. I hope it can be useful for anyone who suffers from low computational resources.",
      "votes": null
    },
    {
      "id": "271929",
      "postDate": "01/21/2018 22:11:40",
      "content": "<p>Do you mean running each training image through all the convolution layers then save the output features as an intermediate result for later training the deep layer?</p>",
      "rawMarkdown": "Do you mean running each training image through all the convolution layers then save the output features as an intermediate result for later training the deep layer?",
      "votes": null
    },
    {
      "id": "271940",
      "postDate": "01/21/2018 23:14:24",
      "content": "<p>Yes, that's exactly what I mean.</p>",
      "rawMarkdown": "Yes, that's exactly what I mean.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 271929,
      "author_name": "stevethatsmyname",
      "author_url": "",
      "post_date": "01/21/2018 22:11:40",
      "content": "<p>Do you mean running each training image through all the convolution layers then save the output features as an intermediate result for later training the deep layer?</p>",
      "votes": null,
      "replies": [
        {
          "id": 271940,
          "author_name": "hamyadlab",
          "author_url": "",
          "post_date": "01/21/2018 23:14:24",
          "content": "<p>Yes, that's exactly what I mean.</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "270759": "For those who **have not access to powerful computational resources** and are considering to use **transfer learning**, I strongly suggest to \n\n1. produce a whole new data set using the original photos in the training and the validation dataset (for example by cropping the original images or any other data augmentation technique which suits best their needs), and\n\n2. then pre-compute required features for every data in your new dataset, and\n\n3. store them using NumPy (for this purpose, I recommend `bcolz` python library which is very fast and memory efficient; but you can also use the simple `np.save()` method from NumPy). \n\nThis way, you will be able to save a huge amount of computations and hence performing more experiments and getting better results. I hope it can be useful for anyone who suffers from low computational resources.",
    "271929": "Do you mean running each training image through all the convolution layers then save the output features as an intermediate result for later training the deep layer?",
    "271940": "Yes, that's exactly what I mean."
  },
  "source": "meta"
}