首页 > 解决方案 > Keras 中的“未知 RProp 优化器”

问题描述

我正在尝试使用此问题此问题中详述的 RProp 优化器来训练模型。

我从这个 Github 存储库下载了rprop.py脚本并将其添加到我的 Keras/tf 代码库中,位于.C:\mini\envs\aiml3\Lib\site-packages\tensorflow_core\python\keras\optimizer_v2

在我的 R 脚本(在 RStudio 中运行)中,我运行以下命令来创建我的模型:

model <- keras_model_sequential() %>%
  layer_dense(units = 2, activation = "sigmoid", input_shape = c(2)) %>% #logistic, input
  layer_dense(units = 1, activation = "sigmoid") #output

model %>% compile(
  optimizer = "rprop",
  loss = "binary_crossentropy",
  metrics = c("accuracy")
)

但我收到以下回溯的错误:

Error in py_call_impl(callable, dots$args, dots$keywords) : 
  ValueError: Unknown optimizer: rprop

Detailed traceback: 
  File "C:\mini\envs\aiml3\lib\site-packages\tensorflow_core\python\training\tracking\base.py", line 457, in _method_wrapper
    result = method(self, *args, **kwargs)
  File "C:\mini\envs\aiml3\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 251, in compile
    self._set_optimizer(optimizer)
  File "C:\mini\envs\aiml3\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 1454, in _set_optimizer
    self.optimizer = optimizers.get(optimizer)
  File "C:\mini\envs\aiml3\lib\site-packages\tensorflow_core\python\keras\optimizers.py", line 848, in get
    return deserialize(config)
  File "C:\mini\envs\aiml3\lib\site-packages\tensorflow_core\python\keras\optimizers.py", line 817, in deserialize
    printable_module_name='optimizer')
  File "C:\mini\envs\aiml3\lib\site-packages\tensorflow_core\python\keras\utils\generic_utils.py", line 180, in deserialize_keras_object
    config, 

看起来我的脚本无法识别优化器。我不确定如何在我的模型中实例化它。

标签: pythonrtensorflowkeras

解决方案


基本上问题在于 Keras 中没有“rprop”优化器。您可以在此处找到可用优化器的列表:https ://keras.io/api/optimizers/

作为具体的解决方法,您可以改用 rmsprop。查看文档以获取使用示例。


推荐阅读