我如何手动使用PyTorch优化器的梯度而不是自动渐变?



Autograd对于我目前正在使用的数据集似乎不可靠,我想使用Torch的SGD优化器手动计算梯度。我已经写了代码来显式地计算梯度,所以我知道梯度,但我不知道如何使用这些而不是火炬的自动梯度。
我特别想做以下事情:

optimizer = torch.SGD([X], lr)
for epoch in epochs:
loss = my_function(X)
gradients = compute_gradients_using_my_function(X,loss)
optimizer.apply_grads([X], gradients)

你的问题我有点不明白。为了更好地理解在autograd的引擎盖下发生了什么,请查看此代表https://github.com/karpathy/micrograd。这是一个简单版本的autograd,由Andrej Karpathy编写。

最新更新