Introduction to Machine Learning with TensorFlow

June 25, 2025

Introduction to Machine Learning with TensorFlow

TensorFlow is Google's open-source machine learning framework that makes it easy to build and deploy ML models. Let's explore the fundamentals and build your first neural network.

What is TensorFlow?

TensorFlow provides:

  • High-level APIs: Keras for rapid prototyping
  • Flexibility: From research to production deployment
  • Ecosystem: TensorBoard, TensorFlow Lite, TensorFlow.js
  • Community: Extensive documentation and tutorials

Installation and Setup

Install TensorFlow using pip:

pip install tensorflow numpy matplotlib pandas scikit-learn

Your First Neural Network

Let's build a simple neural network to classify handwritten digits:

import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt

# Load the MNIST dataset
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()

# Normalize the data
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0

print(f"Training data shape: {x_train.shape}")
print(f"Test data shape: {x_test.shape}")

Building the Model

Create a sequential neural network:

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dropout(0.2),
    keras.layers.Dense(10, activation='softmax')
])

# Compile the model
model.compile(
    optimizer='adam',
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy']
)

# Display model summary
model.summary()

Training the Model

Train your neural network:

# Train the model
history = model.fit(
    x_train, y_train,
    epochs=10,
    batch_size=32,
    validation_split=0.1,
    verbose=1
)

# Evaluate on test data
test_loss, test_accuracy = model.evaluate(x_test, y_test, verbose=0)
print(f"Test accuracy: {test_accuracy:.4f}")

Visualizing Training Progress

Plot the training history:

# Plot training history
plt.figure(figsize=(12, 4))

plt.subplot(1, 2, 1)
plt.plot(history.history['accuracy'], label='Training Accuracy')
plt.plot(history.history['val_accuracy'], label='Validation Accuracy')
plt.title('Model Accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()

plt.subplot(1, 2, 2)
plt.plot(history.history['loss'], label='Training Loss')
plt.plot(history.history['val_loss'], label='Validation Loss')
plt.title('Model Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.legend()

plt.tight_layout()
plt.show()

Making Predictions

Use your trained model to make predictions:

# Make predictions
predictions = model.predict(x_test[:10])

# Visualize predictions
fig, axes = plt.subplots(2, 5, figsize=(12, 6))
for i, ax in enumerate(axes.flat):
    ax.imshow(x_test[i], cmap='gray')
    predicted_class = np.argmax(predictions[i])
    actual_class = y_test[i]
    ax.set_title(f'Pred: {predicted_class}, Actual: {actual_class}')
    ax.axis('off')

plt.tight_layout()
plt.show()

Saving and Loading Models

Save your trained model:

# Save the model
model.save('digit_classifier.h5')

# Load the model
loaded_model = keras.models.load_model('digit_classifier.h5')

# Verify the loaded model
loaded_predictions = loaded_model.predict(x_test[:5])
print("Model loaded successfully!")

Next Steps

Now that you understand the basics, explore:

  • Computer Vision: Convolutional Neural Networks (CNNs)
  • Natural Language Processing: Recurrent Neural Networks (RNNs)
  • Transfer Learning: Using pre-trained models
  • TensorFlow Extended (TFX): Production ML pipelines
  • TensorFlow Lite: Mobile and embedded deployment

Machine learning with TensorFlow opens up exciting possibilities for solving real-world problems with data!