This sections deals with building a CNN to identify handwritten mathematical symbols. We're going to use the HASYv2 dataset. This contains 168,000 images from 369 different classes where each represents a different symbol. This dataset is a more complex analog compared to the popular MNIST dataset, which contains handwritten numbers.
The following diagram depicts the kind of images that are available in this dataset:

And here, we can see a graph showing how many symbols have different numbers of images:

It is observed that many symbols have few images and there are a few that have lots of images. The code to import any image is as follows:

We begin by importing the Image class from the IPython library. This allows us to show images inside Jupyter Notebook. Here's one image from the dataset:

This is an image...