Conv神经网络告诉标准52卡分开

时间:2017-10-11 22:58:49

标签: tensorflow keras convolution

我正在使用下面的keras模型来训练一个神经网络,分别告诉52个游戏卡23456789TJQA,分别是Club,Diamond,Heart和Spade。

该模型工作得很好,但偶尔会告诉Club和Diamond分开,因为它们是最相似的(差异非常精细)。我想知道是否有人建议我以何种方式改进以下型号?

我尝试了不同的东西,比如将所有内容转换为黑白,灰度,平滑,增强等,但似乎没有什么能解决这个问题。

图片均为15x50像素,有1个通道,因此输入形状为(15,50,1)

    model = Sequential()
    model.add(Conv2D(32, (3, 3), input_shape=input_shape, activation='relu', padding='same'))
    model.add(Dropout(0.2))
    model.add(Conv2D(32, (3, 3), activation='relu', padding='same'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Conv2D(64, (3, 3), activation='relu', padding='same'))
    model.add(Dropout(0.2))
    model.add(Conv2D(64, (3, 3), activation='relu', padding='same'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Conv2D(128, (3, 3), activation='relu', padding='same'))
    model.add(Dropout(0.2))
    model.add(Conv2D(128, (3, 3), activation='relu', padding='same'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Flatten())
    model.add(Dropout(0.2))
    model.add(Dense(1024, activation='relu', kernel_constraint=maxnorm(3)))
    model.add(Dropout(0.2))
    model.add(Dense(512, activation='relu', kernel_constraint=maxnorm(3)))
    model.add(Dropout(0.2))
    model.add(Dense(num_classes, activation='softmax'))

0 个答案:

没有答案