Код застывает в первую эпоху в классификации изображений - PullRequest
0 голосов
/ 03 ноября 2019

Когда я пытаюсь запустить код для классификации кошек и собак, код запускается нормально, но застревает на указанной ниже временной шкале. Я изменил batch_size и validation_steps в model.fit, но безрезультатно.

Я изменил batch_size, optimizer и validation_step. Также увеличена производительность ноутбука до максимального уровня, но все равно ничего. Я также ждал 1 час, думая, что код работает в фоновом режиме, но это не помогло.

model= tf.keras.models.Sequential( [
tf.keras.layers.Conv2D(16, (3,3), activation='relu', input_shape=(150, 
150, 3)),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(32, (3,3), activation='relu'),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(64, (3,3), activation= 'relu'),
tf.keras.layers.MaxPooling2D(2,2),

tf.keras.layers.Flatten(),

tf.keras.layers.Dense(512, activation='relu'),
#0 for cats and 1 for the dogs
tf.keras.layers.Dense(1, activation='sigmoid') 
])


from tensorflow.keras.optimizers import RMSprop

model.compile(optimizer=RMSprop(lr=0.001),loss='binary_crossentropy', 
metrics=['acc'])

from tensorflow.keras.preprocessing.image import ImageDataGenerator


train_datagen = ImageDataGenerator( rescale = 1.0/255.)
test_datagen =ImageDataGenerator( rescale = 1.0/255.)

train_generator=train_datagen.flow_from_directory( 
train_dir,batch_size=2,class_mode='binary',target_size=(150, 150))
validation_generator=test_datagen.flow_from_directory(validation_dir, 
batch_size=2,class_mode='binary',target_size= (150, 150))

history=model.fit_generator(train_generator, 
validation_data=validation_generator,steps_per_epoch=5,epochs=5, 
validation_steps=10,verbose=1)

from tensorflow.keras.preprocessing.image import img_to_array,load_img


Successive_outputs = [layer.output for layer in model.layers[1:]]

visualization_model = tf.keras.models.Model(inputs = model.input, outputs 
= successive_outputs) `

Ожидаемый результат будет вокруг печати исполнения и печати эпох, чтобы я мог настроить то же самоекод для 90% с несколькими слоями. Также отправляем вывод.

 Layer (type)                 Output Shape              Param #
 =================================================================
 conv2d (Conv2D)              (None, 148, 148, 16)      448
 _________________________________________________________________
 max_pooling2d (MaxPooling2D) (None, 74, 74, 16)        0
 _________________________________________________________________
 conv2d_1 (Conv2D)            (None, 72, 72, 32)        4640
 _________________________________________________________________
 max_pooling2d_1 (MaxPooling2 (None, 36, 36, 32)        0
 _________________________________________________________________
 conv2d_2 (Conv2D)            (None, 34, 34, 64)        18496
 _________________________________________________________________
 max_pooling2d_2 (MaxPooling2 (None, 17, 17, 64)        0
 _________________________________________________________________
 flatten (Flatten)            (None, 18496)             0
 _________________________________________________________________
 dense (Dense)                (None, 512)               9470464
 _________________________________________________________________
 dense_1 (Dense)              (None, 1)                 513
 =================================================================
 Total params: 9,494,561
 Trainable params: 9,494,561
 Non-trainable params: 0
 _________________________________________________________________
 Epoch 1/15
...