我正在使用cifar-10数据集来训练CNN。
我正在使用Windows-10笔记本电脑,keras版本-2.2.4和python-3.7
我已使用LearnOpencv.com中的示例之一使用keras构建了CNN。
我正在使用batch_size = 256和epochs = 50
每个纪元耗时接近1000秒,使50个纪元= 50000秒〜13小时,这是非常高的。
我的Windows笔记本电脑有4 cpus,已通过以下python代码确认。
NSTextStorage
有没有办法在训练中引入并行性(例如使用全部4个cpus)并将训练时间减少4倍? 。 使用gpu租用aws机器是另一种选择,但是会产生成本。 g3s.xlarge的收费约为每小时0.45美元。
用于构建模型的示例代码如下。
NSMutableAttributedString
答案 0 :(得分:0)
如果要并行运行CNN,则将遇到如何累积梯度以及如何更新单个模型的问题。这非常棘手,人工智能公司正在努力。
如果您的目标是学习,请尝试使用较小的数据集(例如MINST),而不是cifar。您也可以通过减小CNN模型的深度来提高历元速度。减少一些层次。同样,如果您的目标纯粹是学习,则可以处理缩小图像,这将减少模型权重的数量,从而减少训练时间。