Let's do a quick teaser of how good we could get if we were to use some fancy deep neural networks (DNNs), and give you a sneak peek of what is to come in the future chapters of this book.
If we use the following "not quite so deep" neural network, which takes about 2 minutes to train on my laptop (where it takes 1 minute to train the SVM), we get an accuracy of around 0.964!
Here is a snippet of the training method (you should be able to plug it into the preceding code, and play with some parameters to see if you could do it later):
def train_tf_model(X_train, y_train):
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(20, (8, 8),
input_shape=list(UNIFORM_SIZE) + [3],
activation='relu'),
tf.keras.layers.MaxPooling2D(pool_size=...