我最近在搞毕设,要求使用MATLAB训练神经网络,大概有29万张图片,我设置的epochs是5,卷积层深度也是5,minibatch size是256,initial learning rate也是0.01。我有一个可以跑MATLAB的40个CPU的服务器,我已经用它训练了一天多了,连一个epoch都没训练完。请问有什么办法可以提高训练速度嘛?我搜了很多资料,有说改变minibatch size可以变快,有说可以变慢的。所以现在比较疑惑。有的资料说,加载图片的时间可能会比较长,但是我已经使用了MATLAB的imageDataStore加载了图片到这个格式,这个加载图片是什么意思?是指把每个batch需要的图片加载到RAM里吗?
请各位朋友来帮帮忙。谢谢了。
matlab不是很熟悉,不过一般都是用显卡来加速的,cpu多核加速也比不上显卡的,多cpu加速技术一般只有超算中心用的或者一些实验室之类的有集群系统才能用的吧。你这个是20核40线程还是40核80线程还是40个CPU?
如果你是一块CPU多核的,那么batch size在你内存爆掉之前都可以往上加(不过batch size太大了拟合速度反而会慢,至少python下面是这样,我不知道matlab会不会这样),但是加速快不了多少,最优的方案还是用显卡来加速,效果明显,最少比cpu快个5倍没啥问题,好点的显卡速度更加快