CNN有2000个班级?

时间:2015-11-11 02:29:21

标签: deep-learning caffe conv-neural-network nvidia-digits

我需要将图像分类为2000个类之一。

我正在使用Nvidia DIGITS + caffe(GoogLeNet)并且每个类提供10K样本(因此高达2000万个图像,〜1Tb数据!)。但是数据准备("创建db")任务本身估计为102天,如果估计是正确的话,我会想一想实际的训练时间是什么。

应对这一挑战的最佳方法是什么?我应该将数据集分解为3-4个模型吗?并单独使用它们?使用较小的数据集,风险较低?别的什么?

感谢您帮助新手。

3 个答案:

答案 0 :(得分:2)

你得到了训练数据!!这是所有过程中最具挑战性的部分,不要放弃它!

尝试将数据创建任务分解为步骤,并将它们并行化。培训需要很长时间(取决于您的GPU),但您应该耐心等待。

答案 1 :(得分:0)

我认为您可以使用ImageDataLayer而不是LMDB或levelDB。

答案 2 :(得分:0)

首先,您需要知道应该使用哪种方案LMDB/LevelDB以及您获得的好处(尤其是parallel中的培训。) 但是你会遇到的事情是创建LMDB很大而且很慢,你还需要使用SSD instead of HDD来减少耗时的问题。

其次,当您只需要使用小数据集(例如< 2M图像)训练CNN时,您可以使用 ImageDataLayer 与@kli_nlpr相同。

最后,正如@Shai所说,所有流程中最大的挑战始终是准备数据检查培训结果是否符合您的预期,如果是不是你应该检查数据,再次准备数据或检查培训配置。如果您尝试了所有可能的解决方案,但仍然感觉很慢,并且您可以尝试将硬件更改为GPU cluster