r - R:使用 Torch 进行优化 - optimizer$step() 抛出此错误
问题描述
在 R 中使用 Torch 创建一个简单的神经网络,其中 optim_adam 作为优化器。在尝试更新模型参数时,我在运行 optimizer$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()
}
谢谢!
解决方案
推荐阅读
- php - 谷歌分析电子商务来源
- python - Pyspark 数据处理为矢量化格式
- jquery - 使用 jquery rails 刷新页面
- python - 返回不一致值的逻辑回归成本函数
- python - Python Flask 应用程序上的 AWS Beanstalk 错误 504 超时
- c# - 在 discord.net C# 中记录已删除的消息
- python - 如何通过两个独立的列对矩阵进行排序?
- php - 如何为添加到左侧类别的导航菜单创建复选框输入
- php - Laravel api 控制器 - 如何在发送 JSON 响应之前从数据库查询中过滤掉空(“假”)数据?
- runtime-error - 检测结构或哈希表何时被修改或损坏