我正在使用 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
产生正确的课程?我发现这是我的问题。或者还有什么可能是我的问题?
我遇到了完全相同的问题,只是通过
remove.packages("keras")
然后devtools::install_github("rstudio/keras")
解决了它。 'keras3' 包中的 compile()
运行良好。
我在这里找到了解决方案https://github.com/rstudio/keras3/issues/853