【问题标题】:Best practice for training on large scale datasets like ImageNet using Theano/Lasagne?使用 Theano/Lasagne 对 ImageNet 等大规模数据集进行训练的最佳实践?
【发布时间】:2016-06-09 17:31:09
【问题描述】:

我发现 Theano/Lasagne 的所有示例都处理像 mnist 和 cifar10 这样的小型数据集,可以完全加载到内存中。

我的问题是如何编写高效的代码来训练大规模数据集? 具体来说,准备小批量(包括实时数据增强)以保持 GPU 忙碌的最佳方法是什么?

也许喜欢使用 CAFFE 的 ImageDataLayer? 例如,我有一个包含所有图像路径和标签的大 txt 文件。 如果能显示一些代码将不胜感激。

非常感谢!

【问题讨论】:

    标签: theano deep-learning lasagne


    【解决方案1】:

    如果数据不适合内存,一个好方法是准备小批量并将它们存储到 HDF5 文件中,然后在训练时使用。

    但是,这在进行数据增强时就足够了,因为这是动态完成的。由于 Python 的全局解释器锁,在 GPU 忙时图像无法加载和预处理。 据我所知,解决这个问题的最好方法是 Fuel 库。 Fuel 在不同的 python 进程中加载​​和预处理小批量,然后通过 TCP 套接字将它们流式传输到训练进程: http://fuel.readthedocs.org/en/latest/server.html#data-processing-server

    它还提供了一些函数来预处理数据,例如缩放和均值减法: http://fuel.readthedocs.org/en/latest/overview.html#transformers-apply-some-transformation-on-the-fly

    希望这会有所帮助。 迈克尔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-18
      • 2016-02-02
      • 2016-07-21
      • 2021-02-19
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      相关资源
      最近更新 更多