我正在尝试对COCO数据集中的边界框进行分类。我目前获得的最佳验证准确性是在15个时间段后对8个类别的子集(损失:1.1541-acc:0.6028-val_loss:1.2102-val_acc:0.5893)进行60%的验证。使用的图像将转换为灰度并调整为64x64。用于训练模型的照片总数为40604,而验证集仅为该照片的四分之一/一半。 构造我的神经网络的功能如下:
def constructCNN(conv_layer, layer_size, kernel_size, dense_size, dense_layer, dropout, num_classes):
model = Sequential()
model.add(Conv2D(layer_size, (kernel_size, kernel_size), input_shape=trainset.shape[1:]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
for l in range(conv_layer-1):
model.add(Conv2D(layer_size, (kernel_size, kernel_size)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
if(dropout):
model.add(Dropout(0.25))
model.add(Flatten())
for j in range(dense_layer):
model.add(Dense(dense_size))
model.add(Activation('relu'))
if(dropout):
model.add(Dropout(0.25))
model.add(Dense(num_classes))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])
return model
我尝试了以下配置:density_layers = [0,1,2,3],layer_sizes = [32,64,128],density_sizes = [32,64,128],conv_layers = [1,2,3,4], kernel_sizes = [3,4],辍学= [True / False]。
我也尝试使用ImageDataGenerator,但是它并没有真正改善我的结果。
datagen = ImageDataGenerator(
featurewise_center=True,
featurewise_std_normalization=True,
zca_whitening=True,
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True)
我正在寻找可以改善分类器性能的建议。