Convolutional Neural Networks

A convolutional neural network (CNN) is a specialized deep learning model in TensorFlow designed to process and analyze visual data, utilizing convolutional layers to automatically learn and extract relevant features from images.

Further Reading:

# Define the model
model = tf.keras.models.Sequential([
                                                         
  # Add convolutions and max pooling
  tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(28, 28, 1)),
  tf.keras.layers.MaxPooling2D(2, 2),
  tf.keras.layers.Conv2D(32, (3,3), activation='relu'),
  tf.keras.layers.MaxPooling2D(2,2),

  # Add the same layers as before
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dense(10, activation='softmax')
])

# Print the model summary
model.summary()

# Use same settings
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# Train the model
print(f'\\nMODEL TRAINING:')
model.fit(training_images, training_labels, epochs=5)

# Evaluate on the test set
print(f'\\nMODEL EVALUATION:')
test_loss = model.evaluate(test_images, test_labels)

# It's likely gone up to about 92% on the training data and 90% on the validation data.
# That's significant, and a step in the right direction!

Summary