 So, here's the model that we build in this first-pass example. We go for just good enough to get the job done. This isn't fancy, this is definitely not pushing any limits of performance or challenging any of the leaderboard winners, but it is enough to illustrate the operation and the concepts of a convolutional neural network. So, you can see we start with a layer that has our data, feed it into a convolution block, and then another block that finds a bias term. Often, that's combined with the convolution block, but in Cottonwood those are two separate operations. They don't lose anything from being separated and it lets us be more explicit about whether or not we're including it. Then a nonlinear activation function, which in this case is hyperbolic tangent, then another convolution layer, another bias layer, another hyperbolic tangent, and then a max pooling layer, which shrinks that image down, flattens it, and then going through a linear layer, so a standard dense neural network layer, is a linear plus a bias plus a nonlinear activation function. In this case, we use logistic because it gives you something between 0 and 1, which is a nice way to match then with the original data. The original data goes through a one-hot representation, so instead of having a single label, you have an array of size 10, one for each of the different classes, and then depending on what label that is, that element gets a 1, the rest of them are zeros. The prediction then is also 10 elements between 0 and 1 that get compared to that one-hot representation, and those two get compared in the loss function, which then turns around and backpropagates that loss. The prediction also gets fed to a hard maximum function, which says, hey, of all of my guesses, which one is the largest, if I had to choose a single class for this example, that's the class I would assign it to. So that lets us then compare the predicted label to the actual label. We'll go through in much more detail each of these pieces, but here's the overall structure of the approach that we use.