【发布时间】:2020-10-03 20:38:27
【问题描述】:
我的模型已达到 71% 的准确率,但它几乎总是将图片标记为“狗”(约 67% 的图片是狗)。我的训练数据集包含 3680 张图片,测试数据集包含 3670 张图片。
model = Sequential()
model.add(Conv2D(filters=64, kernel_size=(3, 3),activation='relu', padding="same", input_shape=input_shape))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Dropout(0.2))
model.add(Conv2D(filters=128, kernel_size=(3, 3),activation='relu', padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Dropout(0.25))
model.add(Conv2D(filters=256, kernel_size=(3, 3),activation='relu', padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Dropout(0.3))
model.add(Conv2D(filters=512, kernel_size=(3, 3),activation='relu', padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Dropout(0.35))
model.add(Conv2D(filters=512, kernel_size=(3, 3),activation='relu', padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Dropout(0.4))
model.add(Flatten())
model.add(Dense(4096, activation='relu'))
model.add(Dense(4096, activation='relu'))
model.add(Dense(num_classes, activation='softmax'))
我正在将图片大小调整为 200x200 方格,并在训练前对数据进行洗牌。 我已将其设置为 64 个批量大小和 60 个 epoch(约 7 小时的训练)。我正在使用学习率 = 0.001 的 Adam 优化器(增加 lr 会导致过度拟合)。 我应该缩小我的测试集吗?我有太多的辍学?我的参数还好吗?
【问题讨论】:
标签: python keras model classification image-recognition