 Now we want you to design a network, a confnet. So build a network like you saw a few slides ago. What will it consist of? Well, it will consist of conf layers. So we will need to, in the initialization, instantiate the relevant conf 2D. Like we're talking about 2D convolutions that requires us to specify how many channels come in, how many channels go out. Now channels, is the features. Then we need to specify the kernel size and we need to specify padding. We also need to specify fully connected layers, for which we just need to specify how many channels go in and how many channels go out. Now what will we need to do in the forward path? Well, we need to define the convolution layers. What do they consist of? Well, they consist of the convolution per se and they will generally be a real after them and a max pool, a max pool 2D after those. We will also sometimes need flatten operations. Where do we need flatten operations? Now if we have a conf layer, a set of convolutions and then afterwards we want to go into fully connected that often requires us to do a flatten operation. And then lastly, we will need fully connected components. And with these functions that we have on the slide, we can build a real working conf net. Now you will build a network from scratch. Based on what you learned so far, you should be able to build a conf net. Let's not do regularization for the moment. No, we'll get to things like drop out a little later. So what will you have to do? Well, initialize all the layers of the network. You need to make sure that you have all those layers. And then you will have to write the forward loop. And we will for the moment give you the training group and the cost functions. So build and train your network. Do not rush, take your time. I know we don't do that very often that we basically let you write a network from scratch. But I'm sure you can do it and it's going to be fun.