 So now it's time to talk a little bit about PyTorch. In a way, it's numpy. It's just numpy running on a GPU with all kinds of artificial neural network-related components with a focus on tensors and, above all, automatic differentiation. So there are lots of alternatives that I should mention here. TensorFlow is the big Google backed competitor to PyTorch. It is far less attractive at the moment in the academic space. So most people doing research in deep learning here at UPenn use PyTorch. TensorFlow has strong applications in, say, edge computing and in a range of commercial applications. I should mention another alternative, which is up and coming, which is JAX. It's incredibly flexible. In a way, it's just numpy. It's very, very close to what numpy does. And then there's, of course, MATLAB that you should all be. No, I'm just kidding. Don't use MATLAB for deep learning. So let's just see what these packages do for us. So here you have an example of deep learning using only numpy. For some people doing 5.19 or 5.20, they get this as an exercise. It's totally doable. It's just really, really long. Here is how an equivalent module might look like in PyTorch. It's extremely compact. We basically just define an initialization of how we put together the network pieces. And then we define the forward computation. And then once we have that, getting the gradients computed and the optimizer and so forth is really always just a few lines of code. So this transition has really revolutionized the way we do deep learning research. When I was a PhD student, not unlike you guys, there were no packages like that. So I was maintaining these big codes that contained a few lines of the forward calculation and lots of lines on the backward calculation. Every file, everything I would do always contained those components. Life is so much easier. You have no idea how nice it is with these modern tools. Now within PyTorch, variables are generally tensor. And what I want you to do is now go through the tutorial that we provide for you and learn about simple tensors and operations that we can do with them.