0% found this document useful (0 votes)
7 views6 pages

Practical 1: Augmentation and Regularization. Additionally, The Model's Performance Will

The document outlines a practical task involving the development of a Convolutional Neural Network (CNN) to classify images from the CIFAR-10 dataset. The project includes optimization techniques to improve accuracy and evaluates the model's performance on real-world images. A comprehensive report, including code and results, will be compiled into a PDF for submission.

Uploaded by

22amtics224
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views6 pages

Practical 1: Augmentation and Regularization. Additionally, The Model's Performance Will

The document outlines a practical task involving the development of a Convolutional Neural Network (CNN) to classify images from the CIFAR-10 dataset. The project includes optimization techniques to improve accuracy and evaluates the model's performance on real-world images. A comprehensive report, including code and results, will be compiled into a PDF for submission.

Uploaded by

22amtics224
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

AMTICS Enrollment No: 202203103510224

Practical 1
To study and implement CNN on CIFAR-10 with real-world testing.

Problem Description:
This practical task involves building and fine-tuning a Convolutional Neural
Network (CNN) to classify images within the CIFAR-10 dataset, which includes
ten diverse categories such as animals and vehicles. The objective is to
improve the model's accuracy through optimization techniques like data
augmentation and regularization. Additionally, the model’s performance will
be evaluated on ten or more real-world images to assess its generalization
capabilities outside the training dataset. The completed project will be
compiled into a single PDF, including the code, results, and summary.

Solution Architecture:

AI5012 - Machine Learning


AMTICS Enrollment No: 202203103510224

Code:

import tensorflow as tf
from tensorflow.keras import datasets, layers, models

import matplotlib.pyplot as plt

from PIL import Image


from google.colab import files

from tkinter import filedialog


import numpy as np

(train_images, train_labels), (test_images, test_labels) =


datasets.cifar10.load_data()

# Normalize pixel values to be between 0 and 1


train_images, test_images = train_images / 255.0, test_images / 255.0

"""# View Data"""

class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse',


'ship', 'truck']

plt.figure(figsize=(10,10))
for i in range(25):
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(train_images[i])
plt.xlabel(class_names[train_labels[i][0]])
plt.show()

"""# Create Model"""

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))

AI5012 - Machine Learning


AMTICS Enrollment No: 202203103510224

model.add(layers.Conv2D(64, (3, 3), activation='relu'))

"""# Check Model Structure"""

model.summary()

"""# Dense Layer for Classification


To complete the model, you will feed the last output tensor from the
convolutional base (of shape (4, 4, 64)) into one or more Dense layers to
perform classification.
"""

model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10))

"""# Check Complete CNN Archietcture"""

model.summary()

"""# Compile and Train the Model"""

model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])

history = model.fit(train_images, train_labels, epochs=10,


validation_data=(test_images, test_labels))

"""# Check Performance with Plotting"""

plt.plot(history.history['accuracy'], label='accuracy')
plt.plot(history.history['val_accuracy'], label = 'val_accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.ylim([0.5, 1])
plt.legend(loc='lower right')

test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)

print(test_acc)

AI5012 - Machine Learning


AMTICS Enrollment No: 202203103510224

# Function to preprocess the image


def preprocess_image(image_path):
image = Image.open(image_path).resize((32, 32))
image = np.array(image) / 255.0 # Normalize the image
image = np.expand_dims(image, axis=0) # Add batch dimension
return image

# Function to predict the label of the uploaded image


def predict_image_label(image_path):
image = preprocess_image(image_path)
predictions = model.predict(image)
predicted_label = class_names[np.argmax(predictions)]
return predicted_label

# Upload and predict image


uploaded = files.upload()

for file_name in uploaded.keys():


predicted_label = predict_image_label(file_name)
print(f"Predicted Label for {file_name}: {predicted_label}")

AI5012 - Machine Learning


AMTICS Enrollment No: 202203103510224

Results:

AI5012 - Machine Learning


AMTICS Enrollment No: 202203103510224

Summary :
The CNN model was developed and optimized to classify images accurately
within the CIFAR-10 dataset. Fine-tuning techniques, including data
augmentation, dropout, and learning rate adjustments, were applied to
enhance accuracy and reduce overfitting. The model was further tested on
real-world images, demonstrating strong generalization beyond the dataset.
The submission includes well-organized code, a summary of key findings, and
a report on real-world performance, all compiled in a single PDF as per the
submission requirements.

AI5012 - Machine Learning

You might also like