每隔一个 Keras 纪元在所有日志中返回零

问题描述 投票:0回答:1

我正在尝试使用 Keras 和 Python 构建一个简单的二进制图像分类器。每隔一个训练周期,准确性、损失、val_accuracy 和 val_loss 都会返回零。其他时期运行良好,训练进展正常。我正在使用 25000 张独特的图像进行训练,其中包含三组卷积和池化。我对训练/测试图像进行了 90-10 的分割,并且所有图像都被打乱。我目前正在为我的标签和数据使用 Adam 优化器和标准化 ImageDataGenerator。

错误如下:

Epoch 1/20
90/90 ━━━━━━━━━━━━━━━━━━━━ 170s 2s/step - accuracy: 0.9974 - loss: 0.4769 - val_accuracy: 0.7968 - val_loss: 0.9699
Epoch 2/20
90/90 ━━━━━━━━━━━━━━━━━━━━ 0s 1ms/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 3/20
90/90 ━━━━━━━━━━━━━━━━━━━━ 175s 2s/step - accuracy: 0.9988 - loss: 0.4260 - val_accuracy: 0.8052 - val_loss: 0.9283
Epoch 4/20
90/90 ━━━━━━━━━━━━━━━━━━━━ 0s 728us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00
etc...

这是我的模型结构:

model1 = keras.models.Sequential([
    keras.layers.Conv2D(16,(3,3), activation='relu', input_shape=(150, 150, 3)),
    keras.layers.MaxPooling2D(2,2),
    keras.layers.BatchNormalization(),
    keras.layers.Conv2D(32,(3,3), activation='relu'),
    keras.layers.MaxPooling2D(2,2),
    keras.layers.BatchNormalization(),
    keras.layers.Conv2D(64,(3,3), activation='relu'),
    keras.layers.MaxPooling2D(2,2),
    keras.layers.BatchNormalization(),
    keras.layers.Flatten(),
    keras.layers.Dense(512, activation='relu', kernel_regularizer=regularizers.l2(0.001)),
    keras.layers.Dropout(0.2),
    keras.layers.Dense(1, activation='sigmoid')
])
model1.compile(optimizer=Adam(learning_rate=0.0002), loss='binary_crossentropy', metrics=['accuracy'])

train_CD = ImageDataGenerator(rescale=1.0/255.)
train_generator_CD = train_CD.flow_from_directory(
    './images/cat_dog/train_data/',
    target_size = (150, 150),
    batch_size = 250,
    class_mode = 'binary')

test_CD = ImageDataGenerator(rescale=1.0/255.)
test_generator_CD = test_CD.flow_from_directory(
    './images/cat_dog/test_data/',
    target_size = (150, 150),
    batch_size = 250,
    class_mode = 'binary')

history1=model1.fit(
    train_generator_CD,
    validation_data = test_generator_CD,
    epochs = 20,
    steps_per_epoch = 90,
    validation_steps = 10,
    callbacks=[myCallback()]
    )
python tensorflow keras image-classification
1个回答
0
投票

我也有同样的问题。我的模型在 Google Colab 和 Intel Mac 上运行,但在 M2 Mac 上每隔一个纪元时间都是零问题。

您使用的是苹果芯片吗?

您找到问题的答案了吗?

© www.soinside.com 2019 - 2024. All rights reserved.