编译我的 keras_model_sequential() 时遇到问题

问题描述 投票:0回答:1

我正在使用 R 书进行深度学习,在前几章中已经存在很多错误。

所以我已经弄清楚如何安装

keras
tensorflow
,如下所示:

# install.packages("remotes") 
# remotes::install_github("rstudio/reticulate", force = TRUE) 
# remotes::install_github(sprintf("rstudio/%s", c("tensorflow", "keras"))) 
# reticulate::miniconda_uninstall() # start with a blank slate
# reticulate::install_miniconda() 
# #keras::install_keras() 
# #keras::install_keras(method = "conda", conda = "auto") 
# library(keras) 
# tensorflow::install_tensorflow(conda = "auto", envname = "r-reticulate", version = "release") 
# reticulate::use_condaenv(condaenv = "r-reticulate", conda = "auto", required = TRUE)

然后我就可以正常导入

mnist
数据集了。

mnist <- keras::dataset_mnist()

此后我使用

keras_model_sequential
函数,如下所示:

model1 <-
  keras_model_sequential(list(
    layer_dense(
      units = 512,
      input_shape = c(28, 28),
      activation = "relu",
      name = "layer1"
    ),
    layer_dense(
      units = 10,
      activation = "softmax",
      name = "output"
    )
  ))

当我尝试编译它时,出现以下错误代码:

model1 %>% keras::compile(optimizer = "rmsprop",
                          loss = "sparse_categorical_crossentropy",
                          metrics = "accuracy")

Error: Fehler in UseMethod("compile") : nicht anwendbare Methode für 'compile' auf Objekt der Klasse "c('keras.models.sequential.Sequential', 'keras.models.model.Model', 'keras.backend.tensorflow.trainer.TensorFlowTrainer', 'keras.trainers.trainer.Trainer', 'keras.layers.layer.Layer', 'keras.backend.tensorflow.layer.TFLayer', 'keras.backend.tensorflow.trackable.KerasAutoTrackable', 'tensorflow.python.trackable.autotrackable.AutoTrackable', 'tensorflow.python.trackable.base.Trackable', 'keras.ops.operation.Operation', 'python.builtin.object')" angewendet`

所以我认为我的

keras_model_sequential
生成的类一定与
keras.engine.training.Model
不同,这是根据文档所期望的。

当我拨打

summary(model1)
时,会出现以下内容: 当我拨打
class(model1)
时,有多个结果:

[1] "keras.models.sequential.Sequential" 

[2] "keras.models.model.Model" 

[3] "keras.backend.tensorflow.trainer.TensorFlowTrainer" 

[4] "keras.trainers.trainer.Trainer" 

[5] "keras.layers.layer.Layer" 

[6] "keras.backend.tensorflow.layer.TFLayer" 

[7] "keras.backend.tensorflow.trackable.KerasAutoTrackable" 

[8] "tensorflow.python.trackable.autotrackable.AutoTrackable" 

[9] "tensorflow.python.trackable.base.Trackable" 

[10] "keras.ops.operation.Operation" 

[11] "python.builtin.object"

如何让

keras_model_sequential
产生正确的课程?我发现这是我的问题。或者还有什么可能是我的问题?

r tensorflow keras mnist
1个回答
0
投票

我遇到了完全相同的问题,只是通过

remove.packages("keras")
然后
devtools::install_github("rstudio/keras")
解决了它。 'keras3' 包中的
compile()
运行良好。 我在这里找到了解决方案https://github.com/rstudio/keras3/issues/853

© www.soinside.com 2019 - 2024. All rights reserved.