如何在TensorFlow中进一步优化卷积神经网络

时间:2019-03-22 11:36:05

标签: python tensorflow classification

我正在尝试对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)

我正在寻找可以改善分类器性能的建议。

0 个答案:

没有答案