При создании оптимизатора в этой строке
optimizer = optim.SGD(net.parameters(), lr=0.01)
Вы предоставили net.parameters()
все доступные для изучения параметры, которые будут обновляться на основе градиентов.
Модель и оптимизатор связаны только потому, что они имеют одинаковые параметры.
Параметры PyTorch являются тензорами. Они больше не называются переменными.