[text] Test

Viewer

  1. import tensorflow as tf
  2. from tensorflow.keras.applications import VGG16
  3. from tensorflow.keras.layers import Dense, Flatten
  4.  
  5. # Загрузка предварительно обученной модели VGG16 без последних полносвязных слоев
  6. base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
  7.  
  8. # Заморозка всех слоев базовой модели
  9. for layer in base_model.layers:
  10.     layer.trainable = False
  11.  
  12. # Добавление полносвязных слоев сверху базовой модели
  13. model = tf.keras.Sequential([
  14.     base_model,
  15.     Flatten(),
  16.     Dense(4096, activation='relu'),
  17.     Dense(4096, activation='relu'),
  18.     Dense(1, activation='sigmoid')
  19. ])
  20.  
  21. # Компиляция модели
  22. model.compile(optimizer='adam',
  23.               loss='binary_crossentropy',
  24.               metrics=['accuracy'])
  25.  
  26. # Загрузка и предобработка данных LFW
  27. # Предполагается, что данные LFW уже разделены на тренировочный и тестовый наборы
  28.  
  29. train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(
  30.     rescale=1./255,
  31.     shear_range=0.2,
  32.     zoom_range=0.2,
  33.     horizontal_flip=True)
  34.  
  35. test_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255)
  36.  
  37. train_generator = train_datagen.flow_from_directory(
  38.     '/path/to/train_dataset_directory',
  39.     target_size=(224, 224),
  40.     batch_size=32,
  41.     class_mode='binary')
  42.  
  43. test_generator = test_datagen.flow_from_directory(
  44.     '/path/to/test_dataset_directory',
  45.     target_size=(224, 224),
  46.     batch_size=32,
  47.     class_mode='binary')
  48.  
  49. # Обучение модели
  50. model.fit(
  51.     train_generator,
  52.     steps_per_epoch=train_generator.samples // train_generator.batch_size,
  53.     epochs=10,
  54.     validation_data=test_generator,
  55.     validation_steps=test_generator.samples // test_generator.batch_size)
  56.  
  57. # Оценка модели
  58. loss, accuracy = model.evaluate(test_generator)
  59. print('Test loss:', loss)
  60. print('Test accuracy:', accuracy)
  61.  

Editor

You can edit this paste and save as new:


File Description
  • Test
  • Paste Code
  • 09 Jun-2023
  • 2.09 Kb
You can Share it: