首页 > 解决方案 > Keras在训练模型时不显示进度条

问题描述

我需要训练一个 CNN 来对一些图像进行分类。我之前在 TF 后端使用 Keras 就这样做过,就像一个魅力。现在它不想显示显示准确性和当前时代的进度对话框。

这是我的 CNN 模型的代码:

from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Convolution2D, MaxPooling2D, Flatten, Dense
from tensorflow.python.keras.preprocessing.image import ImageDataGenerator

classifier = tf.keras.models.Sequential()

classifier.add(Convolution2D(64, (3, 3), input_shape=(200, 150, 3), activation="relu"))
classifier.add(MaxPooling2D(pool_size=(2, 2)))

classifier.add(Convolution2D(64, (3, 3), activation="relu"))
classifier.add(MaxPooling2D(pool_size=(2, 2)))

classifier.add(Convolution2D(64, (3, 3), activation="relu"))
classifier.add(MaxPooling2D(pool_size=(2, 2)))

classifier.add(Flatten())

classifier.add(Dense(units=200, activation="relu"))
classifier.add(Dense(units=128, activation="relu"))
classifier.add(Dense(units=64, activation="relu"))
classifier.add(Dense(units=1, activation="sigmoid"))

classifier.compile(optimizer="adam", loss="binary_crossentropy", metrics=["accuracy"])


train_datagen = ImageDataGenerator(
    rescale=1./255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1./255)

training_set = train_datagen.flow_from_directory(
    'images/train',
    target_size=(200, 150),
    batch_size=16,
    class_mode='binary')

test_set = test_datagen.flow_from_directory(
    'images/test',
    target_size=(200, 150),
    batch_size=16,
    class_mode='binary')


classifier.fit_generator(
        training_set,
        steps_per_epoch=5604, 
        epochs=10,
        validation_data=test_set,
        validation_steps=1831,
        verbose=1) 

有什么我想念的吗?我现在看到的是这样的:

纪元 1/10

谢谢...

标签: pythontensorflowkeras

解决方案


感谢您的建议。问题是由于不正确的 CudNN 版本造成的。必须从 2017 年下载版本,现在它可以工作了!


推荐阅读