Spaces:
Sleeping
Sleeping
import numpy as np | |
import pandas as pd | |
import os | |
import cv2 | |
import matplotlib.pyplot as plt | |
import seaborn as sns | |
import tensorflow as tf | |
import keras | |
from tqdm import tqdm | |
from tensorflow.keras.layers import Dense, Flatten ,Dropout, Conv2D, MaxPool2D, BatchNormalization,Input | |
from tensorflow.keras.models import Sequential | |
from keras.callbacks import EarlyStopping,ModelCheckpoint | |
from sklearn.metrics import confusion_matrix , accuracy_score | |
from sklearn.metrics import classification_report | |
from sklearn.model_selection import train_test_split | |
from sklearn.preprocessing import LabelEncoder | |
from keras.applications.vgg16 import VGG16,preprocess_input, decode_predictions | |
from keras.preprocessing import image | |
import glob | |
import pandas as pd | |
import matplotlib.pyplot as plotter | |
import warnings | |
from tensorflow.keras import Model | |
warnings.filterwarnings('ignore') | |
train_data_dir = "animals10/raw-img" | |
batch_size = 32 | |
target_size = (224,224) | |
validation_split = 0.2 | |
train= tf.keras.preprocessing.image_dataset_from_directory( | |
train_data_dir, | |
validation_split=validation_split, | |
subset="training", | |
seed=100, | |
image_size=target_size, | |
batch_size=batch_size, | |
) | |
validation= tf.keras.preprocessing.image_dataset_from_directory( | |
train_data_dir, | |
validation_split=validation_split, | |
subset="validation", | |
seed=200, | |
image_size=target_size, | |
batch_size=batch_size, | |
) | |
vgg16 = VGG16(weights='imagenet', input_shape=(224,224,3), classes=10,include_top=False) | |
for layer in vgg16.layers: | |
layer.trainable = False | |
x = Flatten()(vgg16.output) | |
x = Dense(256, activation='relu')(x) | |
x = Dropout(0.5)(x) | |
predictions = Dense(10, activation='softmax')(x) | |
vgg16_model = Model(inputs=vgg16.input, outputs=predictions) | |
# vgg16_model.summary() | |
vgg16_model.compile(optimizer ='Adam',loss='sparse_categorical_crossentropy', metrics=['accuracy']) | |
checkpoint =ModelCheckpoint("VGG16_model.h5", save_best_only=True) | |
early_stopping =EarlyStopping(patience=5, restore_best_weights=True) | |
VGG16=vgg16_model.fit_generator(train,epochs=30,validation_data=validation,callbacks=[checkpoint,early_stopping]) | |
score, acc = vgg16_model.evaluate(validation) | |
print('Test Loss =', score) | |
print('Test Accuracy =', acc) |