This code trains two different CNN models on the MNIST dataset and compares their accuracy on the test set.
import tensorflow as tf
from tensorflow.keras import layers, models
# Load sample data
(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()
train_images = train_images / 255.0
test_images = test_images / 255.0
# Model 1: Simple CNN
model1 = models.Sequential([
layers.Reshape((28,28,1), input_shape=(28,28)),
layers.Conv2D(16, 3, activation='relu'),
layers.MaxPooling2D(),
layers.Flatten(),
layers.Dense(10, activation='softmax')
])
model1.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model1.fit(train_images, train_labels, epochs=2, verbose=0)
# Model 2: Deeper CNN
model2 = models.Sequential([
layers.Reshape((28,28,1), input_shape=(28,28)),
layers.Conv2D(32, 3, activation='relu'),
layers.MaxPooling2D(),
layers.Conv2D(64, 3, activation='relu'),
layers.MaxPooling2D(),
layers.Flatten(),
layers.Dense(10, activation='softmax')
])
model2.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model2.fit(train_images, train_labels, epochs=2, verbose=0)
# Evaluate both models
loss1, acc1 = model1.evaluate(test_images, test_labels, verbose=0)
loss2, acc2 = model2.evaluate(test_images, test_labels, verbose=0)
print(f"Model 1 accuracy: {acc1:.4f}")
print(f"Model 2 accuracy: {acc2:.4f}")