Spaces:
Sleeping
Sleeping
| #importing important libraries | |
| import numpy as np | |
| import keras | |
| from keras.applications.vgg16 import VGG16, preprocess_input | |
| from keras.layers import Flatten, Dense | |
| from keras.models import Model | |
| import cv2 | |
| import os | |
| import numpy as np | |
| import tensorflow as tf | |
| from keras.models import Sequential | |
| from keras.preprocessing import image | |
| from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense | |
| from tensorflow.keras.preprocessing.image import ImageDataGenerator | |
| # Load the pre-trained VGG16 model | |
| base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3)) | |
| # Freeze the base model layers | |
| for layer in base_model.layers: | |
| layer.trainable = False | |
| # Add custom layers for face classification | |
| x = base_model.output | |
| x = Flatten()(x) | |
| x = Dense(1024, activation='relu')(x) | |
| predictions = Dense(1, activation='sigmoid')(x) | |
| # Create the final model | |
| model = Model(inputs=base_model.input, outputs=predictions) | |
| # Compile the model | |
| model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) | |
| # Define data generators for training and validation | |
| data_generator = ImageDataGenerator(preprocessing_function=preprocess_input) | |
| train_data = data_generator.flow_from_directory( | |
| 'img_for_deepfake_detection/train', | |
| target_size=(224, 224), | |
| batch_size=32, | |
| class_mode='binary', | |
| # Number of workers for parallel data loading | |
| ) | |
| valid_data = data_generator.flow_from_directory( | |
| 'img_for_deepfake_detection/valid', | |
| target_size=(224, 224), | |
| batch_size=32, | |
| class_mode='binary', | |
| # Number of workers for parallel data loading | |
| ) | |
| # Train the model | |
| model.fit(train_data, epochs=10, validation_data=valid_data) | |
| # Evaluate the model on the validation data | |
| loss, accuracy = model.evaluate(valid_data) | |
| print(f'Validation Accuracy: {accuracy*100:.2f}%') |