 Hey, welcome to the course. We're going to be using code walkthroughs as a way for me to explain my solutions to the coding exercises that I pose to you. This is only to show one possible way to do it. There are lots of ways to go about this, lots of really good ways to go about this. I'm not showing you the right way or even the best way, but I'm showing you a way and the benefit of that is that at each step along the way you're free to either do it in your own style to differ from what I write as much as you want, but also if you get a little bogged down or sometimes the changes can be hard to keep track of, you can always revert back to whatever my solution was to the previous exercise and build from that. So the goal is to give you maximum flexibility, but to always have a get out of jail free card in case you get tripped up. The walkthroughs themselves are actually entirely optional. It's just a way for me to verbally step through what I've done, but you're welcome to just look at the code of my solution and for some people that actually is a much easier way to ingest the ideas and to understand the work that was done. So they're not gonna, you're gonna be blocked from progressing to the next example if you don't watch the video. They're just here for in case it's helpful. Here we're taking a look at our very first test data set. This is our as simple as possible example. We've named it dataloader2by2.py. The very first thing we've done in line one is import numpy, and numpy will let us do all kinds of numerical computations, has a great set of tools. The most important thing we'll use it for right now is its very useful data structure called a numpy array. We define the function get data sets and within it we create this variable examples, which is a list of arrays and each of these arrays is two rows by two columns and the way that we initialize the array here is to do a list of lists. It's a little bit confusing because we have examples which is itself a list and then within it we have a bunch of arrays which are each initialized as a list of lists. So there's a bunch of square brackets running around. But the way I've spaced it here, you can see the rows and the columns and you can, if you use your imagination, imagine each zero as a black pixel and each one as a white pixel, then what you see in this first example is an image with a black bar on top and a white bar on the bottom. The second example has a white bar on the left and a black bar on the right. The third example has a white bar on top and a black bar on the bottom and so forth. And as you go through here, you can see that we have diagonals. We can have corners and altogether, there's lots of variations that we can have of this. In fact, because we have four pixels, each of which we're allowing to have two values. We can have two to the fourth or sixteen different examples, which we enumerated most of them here, if not all. And then we just close that out. For this example, that's all we had to do was create a list of these NumPy arrays, each of which is a very tiny two by two matrix, or two by two two-dimensional array, which you can imagine as an image. So this is our silly, simple image test set as we get things up and going. The goal being that if we can run this ridiculously simple example through, we know what answer we should get, then once that's, if that doesn't work, we know something's wrong. Once it does work, then we can swap this out for a slightly more complex example until we step our way up to the full problem that we're trying to solve.