Save this video free

Lecture 7e

Prof. Schniter · 1:00:10 · Watch on YouTube

Lecture 7e Watch on YouTube →

Overview

Prof. Schniter moves from a PyTorch training-loop recap to practical methods for making deep networks train effectively, including activation choices, weight initialization, batch normalization, dropout, and learning-rate schedules. The lecture also explains why very wide networks can exhibit double descent rather than classical overfitting, and emphasizes using validation results and computational limits to choose model size.

Key takeaways

Chapters

0:00 PyTorch Training Loops and Matching Outputs to Losses
6:31 Why Deep Networks Beat Impractically Wide Two-Layer Models
13:07 Vanishing Gradients, ReLU, and Smoother Activations
18:22 Weight Initialization and Layer-Specific Scaling
23:34 Batch Normalization: Mini-Batch Statistics and Learned Scale
28:00 Batch Normalization Speeds Inception Training
32:09 Dropout Masks Activations During Training
35:39 Dropout as Ensembling and Its Training Trade-Offs
40:28 Why Nonconvex Networks Need Learning-Rate Schedules
45:32 One-Cycle Learning Rates and Range Tests
50:12 Momentum, Adaptive Solvers, and Double Descent
55:30 Choosing Width, Depth, and Dropout for Image Networks

Keep these chapters and the full searchable transcript in your own library.

Transcript excerpt

0:01 Okay. Uh, happy Friday everyone. So, last time we were talking about how to [clears throat] code these deep networks in PyTorch. Um, what PyTorch does for us essentially is it does all the back propagation without us deriving a single thing. Um, it makes extremely complicated networks and models um, essentially trivial to train. So we talked about a recipe of how how you organize how you write your pie torch code. Um first you basically describe your data set in a [snorts] way that it um it can build the computation graph and distribute it across possibly many

0:50 machines and give you many batches very easily. Then you program the the model the deep network in this case. Essentially what you do is you program the forward pass and from that it's able to figure out the backward pass. You tell it which kind of optimization algorithm you want to use. They're all variants of stochastic gradient descent but with um some improvements to avoid local minima and converge faster and so on. Um and then you write your main loop that has an outer or your main piece of code that has an outer loop over epochs and inner loop of batches within that epoch. And in the inner loop you do a

1:39 forward pass. you um you evaluate [clears throat] your loss. Then you um just with loss.backward that essentially asks PyTorch to do the backward pass to compute the gradients. And then the opt step takes one step of the optimizer using those computed gradients. And then you can do whatever other things you want to do to keep track of how your network is training. So you may want to um save the loss versus epochs. You may want to save other performance metrics like classification if you're

This is the start of the transcript. Save this video free for the whole transcript, searchable and time-coded.

Related notes

Summary, takeaways, and chapters were generated by AI from the video's transcript and may contain errors. The video belongs to its creator, Prof. Schniter.

Want the full transcript?

Save this video in YouTube Collector to get its complete searchable transcript, your own AI summaries, and a library that keeps every video you collect in one place.