!pip install -q kaggle !mkdir -p ~/.kaggle !cp kaggle.json ~/.kaggle/ !chmod 600 /root/.kaggle/kaggle.json !kaggle datasets list !kaggle datasets download -d yaswanthgali/sport-celebrity-image-classification !unzip "/content/sport-celebrity-image-classification.zip" -d "/content/drive/MyDrive/Kaggle Datasets" dir = "/content/drive/MyDrive/Kaggle Datasets/Sports-celebrity images" from tensorflow.keras.preprocessing.image import ImageDataGenerator # All images will be rescaled by 1./255. datagen = ImageDataGenerator( rescale = 1.0/255. , validation_split=0.1, rotation_range=20, width_shift_range=0.2, height_shift_range=0.2, shear_range=60, horizontal_flip=True) train_generator = datagen.flow_from_directory( directory=dir, target_size=(100, 100), color_mode='rgb', class_mode='categorical', batch_size=32, shuffle=True, seed=2022, subset='training') validation_generator = datagen.flow_from_directory( directory=dir, target_size=(100, 100), color_mode='rgb', class_mode='categorical', batch_size=32, shuffle=True, seed=2022, subset='validation') import tensorflow as tf tf.random.set_seed(2022) model = tf.keras.models.Sequential([ tf.keras.layers.Conv2D(16, (3,3), activation='relu', input_shape=(100, 100, 3)), tf.keras.layers.MaxPooling2D(2,1), tf.keras.layers.Flatten(), tf.keras.layers.Dense(1024, activation='relu'), tf.keras.layers.BatchNormalization(), tf.keras.layers.Dense(512, activation='relu'), tf.keras.layers.BatchNormalization(), tf.keras.layers.Dense(4, activation='softmax') ]) from tensorflow.keras.callbacks import EarlyStopping monitor = EarlyStopping(monitor='val_loss', min_delta=1e-3, patience=5,verbose=3,restore_best_weights=True) model.compile(optimizer='adam',loss='categorical_crossentropy', metrics = ['accuracy']) history = model.fit(train_generator, validation_data=validation_generator, epochs=50, verbose=2, callbacks=[monitor])