Lesson 1

Welcome aboard! In this lesson, we'll embark on the fascinating journey of *neural networks* and *deep learning* employing **TensorFlow**, an open-source library developed by the Google Brain team. We'll grasp its essence then delve into the **Digits dataset** from scikit-learn.

`TensorFlow`

offers a flexible, efficient, and extensible framework for an array of machine learning and deep learning models. Such models find applications in numerous areas like image and speech recognition and the generation of art and music. Essentially, TensorFlow forms the backbone of deep artificial learning, enabling us to develop, train, and evaluate fundamental deep learning models.

On the other hand, the `Digits dataset`

is part of `scikit-learn`

, a renowned Python library for machine learning. Containing 8x8 images of digits, the Digits dataset aims to aid us in building and training our neural network models, particularly for pattern recognition.

In this course we'll learn how we can train a neural network that's able to recognize handwritten images, cool huh? Let's get to it!

Having unraveled what TensorFlow and the Digits dataset are, we'll start by importing these for our use. In Python, the `import`

keyword brings various libraries into our projects.

First, let's import TensorFlow and alias it as `tf`

:

Python`1import tensorflow as tf`

To import the Digits dataset, which resides in the `datasets`

module of the scikit-learn library, we can use:

Python`1from sklearn import datasets`

After importing TensorFlow and the Digits dataset, the next step is to load the dataset and display a sample from it. The Digits dataset is loaded with the `datasets.load_digits()`

function:

Python`1digits = datasets.load_digits()`

Next, let's look at some of the images from the dataset along with their labels:

Python`1import matplotlib.pyplot as plt 2 3# Creating a 3x3 grid for subplots with a smaller figure size 4fig, axes = plt.subplots(nrows=3, ncols=3, figsize=(3, 3)) # Reduced figure size 5 6# Flatten the axes array for easy iterating 7axes = axes.flatten() 8 9for i in range(9): # Display the first 9 images 10 image, label = digits.images[i], digits.target[i] 11 axes[i].imshow(image, cmap='gray') 12 axes[i].set_title(f'Label: {label}') 13 axes[i].axis('off') # Hide axes for a cleaner look 14 15plt.tight_layout() # Adjusts subplot params so that the subplot(s) fits in to the figure area 16plt.show()`

This code creates a 3x3 grid of subplots within a figure of size 3x3 inches to display the first nine images from the `digits`

dataset. Each subplot shows an image with its corresponding label as the title, with the axes turned off for a clean appearance, and the `tight_layout()`

function is used to adjust the spacing between subplots for optimal display.

While it's easier to see the images in a zoomed out state like above, we can also examine a single one up-close to see what it looks like.

Python`1image, label = digits.images[99], digits.target[99] 2 3# Displaying the image 4plt.imshow(image, cmap='gray') 5plt.title(f'Label: {label}') 6plt.show()`

As the label shows, this is a handwritten one but since we are looking at it so up-close it's hard to make it out.

Since we'll be using TensorFlow in this course, let's see how you can check TensorFlow's availability in your environment before we wrap up this lesson. The CodeSignal IDE will come pre-installed with TensorFlow, but this is how you can install it and check that it's working in your own local environment.

`1pip install tensorflow`

Python`1import tensorflow as tf 2 3print(f"TensorFlow version: {tf.__version__}")`

In this lesson, you gained a fair understanding of TensorFlow and the Digits dataset, striking off essentials on your journey through the intriguing realm of neural networks and deep learning. We covered how to import TensorFlow and the Digits dataset, how to display a sample from the dataset, and ensuring TensorFlow's availability.

Going forward, brace yourselves for an enthralling ride deeper into data preprocessing, neural networks, and optimization techniques. For now, keep practicing and refining your knowledge of TensorFlow usage and handling the Digits dataset. Happy learning!