【发布时间】:2020-12-15 08:39:48
【问题描述】:
我们是数据科学(和编程)的新手,我们正在尝试构建一个用于二进制分类(男性 - 女性)的 cnn 模型。我们的准确度很好,为 0.97,但验证准确度为 0.56(我们认为存在过度拟合)。我们有 4706 张图像 - 70% 用于训练,30% 用于测试/验证。
model = Sequential()
model.add(Conv2D(128, (3, 3), input_shape=x_data_np.shape[1:]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(16, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(64))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
我们如何提高验证的准确性?我们是否正确设置了模型参数?非常感谢。
【问题讨论】:
标签: python tensorflow keras conv-neural-network