我想为二进制图像分类任务设计CNN,用于检测图像中存在或不存在的小对象。图像为灰度(无符号短),大小为512x512(已从2048x2048下采样),我有数千张用于训练和测试的图像。
这是我第一次使用CNN进行此类任务,我希望能够达到约80%的准确率,所以我想知道如何设计CNN这样的我有最好的机会实现我的目标。
我的具体问题是:
我应该使用多少卷积层和完全连接的层?
每个卷积层中有多少个要素图以及每个完全连接的层中有多少个节点?
每个卷积层的过滤器大小是什么?
我尝试使用带有TensorFlow后端的Keras实现CNN,而我的计算机规格是:8英特尔至强CPU @ 3.5 GHz; 32 GB内存; 2个Nvidia GPU:GeForce GTX 980和Quadro K4200
使用这些硬件和软件,我也想知道培训的计算时间。具体来说,
需要多长时间训练CNN(具有上述结构)上面提到的上述1000个图像,并且(通常)需要多少个时代才能达到~80%的准确度?
我想知道典型计算时间的原因是确保我正确设置所有内容。
希望我在第一篇文章中没有提出太多问题。
答案 0 :(得分:1)
如果您使用keras为该任务提供的已有模型之一,例如VGG16,VGG19,InceptionV3和其他模型,您可能会非常顺利:https://keras.io/applications/。
你可以试验它们,尝试不同的参数,这里和那里的小调整,以及类似的东西。由于你只有一个课程,你可以试试它们的较小版本。
所有代码均可在https://github.com/fchollet/keras/tree/master/keras/applications
中找到速度非常相对。无法分辨速度,因为每种安装方法,每个驱动程序,每个版本,每个操作系统可能会或可能不会正确或完全地使用您的硬件功能。
但是根据您的规格,如果一切设置良好,它应该非常快。