PyTroch, градиентные вычисления - PullRequest
0 голосов
/ 05 июля 2019

https://colab.research.google.com/github/pytorch/tutorials/blob/gh-pages/_downloads/neural_networks_tutorial.ipynb

Привет, я пытаюсь понять NN с pytorch. У меня есть сомнения в расчете градиента ..

импорт torch.optim в качестве оптимального

create your optimizer
optimizer = optim.SGD(net.parameters(), lr=0.01)


```
# in your training loop:
optimizer.zero_grad()   # zero the gradient buffers
output = net(input)
loss = criterion(output, target)
loss.backward()
optimizer.step()    # Does the update
```

Из кода about я понял, что loss.backward () вычисляет градиенты. Я не уверен, как эта информация поделилась с optimizer, чтобы обновить градиент.

Может кто-нибудь объяснить это ..

Заранее спасибо!

1 Ответ

2 голосов
/ 05 июля 2019

При создании оптимизатора в этой строке

optimizer = optim.SGD(net.parameters(), lr=0.01)

Вы предоставили net.parameters() все доступные для изучения параметры, которые будут обновляться на основе градиентов.

Модель и оптимизатор связаны только потому, что они имеют одинаковые параметры.

Параметры PyTorch являются тензорами. Они больше не называются переменными.

...