我在努力改进下面的cnn架构。我正在使用cnn进行图像分类。任何人都可以建议对下面的体系结构进行任何更改,以减少训练时间而不会失去太多的准确性?减少cnn的培训时间
上建筑注:
它具有利用3,3窗口处理的神经网络的初始输入16个滤波器卷积层。
它随后与2,2-
接着一个最大池层,是另一种卷积层,其大小与第一层相同,以便保持这是通过从现有层传递的数据。
继第一层2是第三卷积层为包括过滤器32,因为这允许对网络开始寻找更多的细节和开辟空间更多的数据。
的第三层,得到那么这将被馈送到完全连接的层的总体平均池层。
第一完全连接隐藏层利用了64个单位,因为这是一个估计通过我以允许输出层之前,黄油,得到网络更多的空间来确定权重。
接着是降层,以防止过度拟合终于被传递到使预测输出层之前。
输出层具有SOFTMAX激活功能,其允许它保持数字0,1之间的概率分布。
CNN代码:
from keras.layers import Conv2D, MaxPooling2D, GlobalAveragePooling2D
from keras.layers import Dropout, Flatten, Dense
from keras.models import Sequential
model = Sequential()
model.add(Conv2D(16, (3,3), input_shape=(224,224,3), activation = 'relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(16, (3,3), activation= 'relu'))
model.add(MaxPooling2D(pool_size =(2,2)))
model.add(Conv2D(32, (3,3), activation= 'relu'))
model.add(GlobalAveragePooling2D())
model.add(Dense(units=64, activation= 'relu'))
model.add(Dropout(0.3))
model.add(Dense(units= 133, activation = 'softmax'))
model.summary()
您的图片相对较大(224x224x3),尝试较小的尺寸并查看它对您的表现有多大影响。根据图像的不同,您可能也会尝试事先将它们转换为灰度。 – aseipel