【发布时间】:2020-10-11 09:09:45
【问题描述】:
我在使用 Keras 进行图像分类时遇到问题。我的准确率总是很差,只有 0.02。我尝试关注cat and dog classification,它的准确度为 0.8,但在我的情况下,它无法使用 30 个类。
假设我有大约 100K 图像的数据集,并分为 30 个类。我将其分成 80% 用于训练和 20% 验证。
结构文件夹是这样的。
|-train
|---category1
|---category2
|---category3
|---category4
|---.....
|---category30
|
|-validation
|---category1
|---category2
|---category3
|---category4
|---.....
|---category30
train 文件夹中的每个类别包含大约 2000 到 4000 张图像。
我的模型
model = tf.keras.Sequential([
Conv2D(kernel_size=3, filters=16, padding='same', activation='relu', input_shape=[150,150, 3]),
Conv2D(kernel_size=3, filters=30, padding='same', activation='relu'),
MaxPooling2D(pool_size=2),
Conv2D(kernel_size=3, filters=60, padding='same', activation='relu'),
MaxPooling2D(pool_size=2),
Conv2D(kernel_size=3, filters=90, padding='same', activation='relu'),
MaxPooling2D(pool_size=2),
Conv2D(kernel_size=3, filters=110, padding='same', activation='relu'),
MaxPooling2D(pool_size=2),
Conv2D(kernel_size=3, filters=130, padding='same', activation='relu'),
Conv2D(kernel_size=1, filters=40, padding='same', activation='relu'),
GlobalAveragePooling2D(),
Dense(1,'sigmoid'),
Activation('softmax')
])
model.compile(optimizer=keras.optimizers.Adam(lr=.00001),
loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),
metrics=['accuracy'])
训练数据集
history = model.fit_generator(
train_generator,
steps_per_epoch=100,
epochs=10,
validation_data=validation_generator,
validation_steps=50,
verbose=2)
而且我的准确率总是很低,比如 0.02 或 0.03
Epoch 6/10
100/100 - 172s - loss: -1.8906e+01 - accuracy: 0.0265 - val_loss: -1.8923e+01 - val_accuracy: 0.0270
Epoch 7/10
100/100 - 171s - loss: -1.8773e+01 - accuracy: 0.0230 - val_loss: -1.8396e+01 - val_accuracy: 0.0330
Epoch 8/10
100/100 - 170s - loss: -1.8780e+01 - accuracy: 0.0295 - val_loss: -1.9882e+01 - val_accuracy: 0.0180
Epoch 9/10
100/100 - 170s - loss: -1.8895e+01 - accuracy: 0.0240 - val_loss: -1.8572e+01 - val_accuracy: 0.0210
Epoch 10/10
100/100 - 170s - loss: -1.9091e+01 - accuracy: 0.0265 - val_loss: -1.8685e+01 - val_accuracy: 0.0300
那么我该如何改进我的模型呢?有什么问题吗?
【问题讨论】:
标签: python tensorflow keras classification