Бесконечные шаги в DataGenerator - PullRequest
0 голосов
/ 16 апреля 2020

Я использую tf.keras.preprocessing.image.ImageDataGenerator для загрузки изображений и передачи их на мою модель в качестве практики, но когда я начинаю тренироваться, выходная информация показала, что она не может go перейти в следующую эпоху и всегда придерживаться первой, как показано ниже:

Epoch 1/10
   1658/Unknown - 388s 234ms/step - loss: 0.0501 - accuracy: 0.9872

И мой код:

import tensorflow as tf

img_size = 128
batch_size = 64
train_path = '/content/image'
data_gen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1. / 255, validation_split=0.1)

train_generator = data_gen.flow_from_directory(train_path, 
                             target_size=(img_size, img_size), 
                             color_mode='rgb',
                             batch_size=batch_size, 
                             shuffle=True, 
                             seed = 1, 
                             class_mode='categorical', 
                             subset='training'
                             )
validation_generator = data_gen.flow_from_directory(train_path,
                             target_size=(img_size, img_size),
                             color_mode='rgb',
                             batch_size=batch_size,
                             shuffle=True,
                             seed = 1,
                             class_mode='categorical', 
                             subset='validation'
                             )

epochs=10
input_shape = (img_size,img_size,3)

model = tf.keras.models.Sequential([
         tf.keras.layers.Input(shape=input_shape),
         tf.keras.layers.Flatten(),
         tf.keras.layers.Dense(512,activation=tf.nn.relu),
         tf.keras.layers.Dropout(0.2),
         tf.keras.layers.Dense(2,activation=tf.nn.softmax)])

optimiser = tf.keras.optimizers.Adam(1e-5)
model.compile(optimizer= optimiser, 
              loss='categorical_crossentropy', 
              metrics = ['accuracy'])

model.fit(train_generator, 
          epochs=epochs, 
          validation_data=validation_generator)

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 16 апреля 2020

Измените model.fit на model.fit_generator

Кроме того, в первую эпоху можно показывать number/unknown, поскольку он вычисляет, сколько шагов ему нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...