In a model you only define the forward propogation and Pytorch handles the backpropogation automatically for you with loss.backwards(). When you’re setting param.requires_grad = False you’re telling Pytorch not to do the backpropogation for those layers.
Essentially what happened to the frozen layer during training is you’re doing the forward propogation part, but Pytorch no longer does the backpropogation part and the parameters aren’t updated. They are “frozen”, usually you would freeze a certain amount of layers and perhaps train the last 3-4 layers. This is also called fine tuning.