我希望能够显示梯度下降过程中错误的演变。
我的代码很简单,我试图根据梯度下降来估计一个线性函数,我重复了几次。
我在PyTorch上工作,在包文档中寻找了一段时间的解决方案后,我没有找到任何非常确定的东西。
我的代码看起来像这样:
x <- df_tensor[,4,drop=FALSE]
y <- df_tensor[,1,drop=FALSE]
my_model <- nn_linear(1,1)
ds <- tensor_dataset(x, y)
dl <- dataloader(ds)
optimiser <- optim_sgd(my_model$parameters, lr = 0.01)
loss <- nnf_mse_loss
for (e in 1:10) {
coro::loop(for (b in dl) {
y_pred <- my_model(b[[1]])
c_loss <- loss(y_pred, b[[2]])
optimiser$zero_grad()
c_loss$backward()
optimiser$step()
})
}
1条答案
按热度按时间1hdlvixo1#
我对PyTorch不太清楚,但是
optim
from base R可以通过trace参数输出步骤的细节。创建于2022年11月16日,使用reprex v2.0.2