所需显存大小
人们经常问我,是否大内存的GPU是最适合自己的,因为可以用它们运行最大的神经网络。我原来也是这么想的,于是我买了我的GPU:GTX Titan ,有6GB显存。当我参加Partly Sunny with a Chance of Hashtags Kaggle竞赛的时候,我也觉得这是一个不错的选择,因为刚好适合我的GPU显存。但是后来我发现,我的神经网络的执行没有高效地使用到显存,或者说其实更少的内存已经足够了。
如果你想知道你的GPU显存可以放入多大的一个神经网络,那么你减去400 MB的缓冲区,然后GPU显存除以2为动量矩阵,然后乘以1024*1024来获得字节数,最后除以4得到配合该存储器浮点数的数量。对于GTX泰坦,就是(6144-400)*1024*1024/(4*2)=752,877,568参数。在Kaggle比赛中 用了9000*4000*4000*32网络,这只是512,128,000个参数(动量矩阵)。因此,这个网络都可以放到一个只有1536MB显存的GPU。作为比较,Alex Krizhevsky的卷积神经网络用于 ImageNet competition的,有60,000,000个参数(动量矩阵)。 因此底线是如果你只是在一些Kaggle数据集上使用神经网络,建立一些普通的模型,那么你不需要太担心显存的问题(只要大于1536MB就可以)