r - R:使用 Torch 进行优化 - optimizer$step() 抛出此错误
问题描述
在 R 中使用 Torch 创建一个简单的神经网络,其中 optim_adam 作为优化器。在尝试更新模型参数时,我在运行优化器$step() 时收到以下错误 - “param$ state[["exp_avg"]] 中的错误:'closure' 类型的对象不是子集的对象”。
可能是什么原因?
我在运行此代码时也遇到错误(https://blogs.rstudio.com/ai/posts/2020-10-09-torch-optim/)。
代码:
d_in <- 3
d_out <- 1
n <- 100
# create random data
x <- torch_randn(n, d_in)
y <- x[, 1, NULL] * 0.2 - x[, 2, NULL] * 1.3 - x[, 3, NULL] * 0.5 + torch_randn(n, 1)
d_hidden <- 32
model <- nn_sequential(
nn_linear(d_in, d_hidden),
nn_relu(),
nn_linear(d_hidden, d_out)
)
learning_rate <- 0.08
optimizer <- optim_adam(model$parameters, lr = learning_rate)
### training loop --------------------------------------------------------------
for (t in 1:200) {
y_pred <- model(x)
loss <- nnf_mse_loss(y_pred, y, reduction = "sum")
optimizer$zero_grad()
loss$backward()
optimizer$step()
}
解决方案
推荐阅读
- javascript - JavaScript toFixed() 可以在特定大小后不剪切所有内容吗?
- sql - 从数据库 codeignter 获取用户数据
- parsing - 语法中的 SR 冲突 - 如何解决?(柠檬/yacc)
- java - 对快速排序和归并排序进行基准测试可以得出归并排序更快
- reactjs - 从 react-scripts 3.2.0 更新到 3.3.0 时,为什么我的 react 项目会崩溃?
- android - 似乎不支持在模态页面中进行正常导航 [Xamarin.Forms]
- javascript - 混淆 javascript 错误:无法读取 null 的属性“类型”
- javascript - 在猫鼬中更新文档的最佳方法是什么?
- r - 当excel文件存在或工作表存在时如何在R中使用write.xlsx
- java - 选择带有偏移量支持的一定数量的最近日期的时间戳记录