【问题标题】:Error loading the keras package in R studio在 R studio 中加载 keras 包时出错
【发布时间】:2026-02-21 14:45:02
【问题描述】:

我在 Windows 10 上使用 R4.0.1 和 Rstudio1.3.959。我已经安装了张量流:

install.packages("tensorflow")
library(tensorflow)
install_tensorflow(method = "conda", conda_python_version = 3.6)

我通过以下方式检查了安装是否成功:

library(tensorflow)
tf$constant("Hellow Tensorflow")

输出:张量("Const:0", shape=(), dtype=string)

tf$constant(1.5)

输出:张量("Const_1:0", shape=(), dtype=float32)

我进一步检查了:

tf_config()

输出: TensorFlow v1.13.2() Python v3.6 (C:/Users/user/AppData/Local/r-miniconda/envs/r-reticulate/python.exe)

从这里看来,张量流安装正确并且工作正常。 但是,我在加载 Keras 库时遇到了问题。我做了以下事情:

install.packages("keras")
library(keras)

当我加载库时,它给出了以下错误

Error: package or namespace load failed for ‘keras’:
 .onLoad failed in loadNamespace() for 'keras', details:
  call: py_module_import(module, convert = convert)
  error: ImportError: cannot import name 'swish'

Detailed traceback: 
  File "C:\Users\user\AppData\Local\r-miniconda\envs\r-reticulate\lib\site-packages\tensorflow\keras\__init__.py", line 14, in <module>
    from . import activations
  File "C:\Users\user\AppData\Local\r-miniconda\envs\r-reticulate\lib\site-packages\tensorflow\keras\activations\__init__.py", line 23, in <module>
    from tensorflow.python.keras.activations import swish

由于无法加载 keras 包我无法运行以下代码

install_keras(method = "conda")

我可以获得以下附加信息:

library(reticulate)
> py_discover_config("keras")
python:         C:/Users/user/AppData/Local/r-miniconda/envs/r-reticulate/python.exe
libpython:      C:/Users/user/AppData/Local/r-miniconda/envs/r-reticulate/python36.dll
pythonhome:     C:/Users/user/AppData/Local/r-miniconda/envs/r-reticulate
version:        3.6.10 |Anaconda, Inc.| (default, May  7 2020, 19:46:08) [MSC v.1916 64 bit (AMD64)]
Architecture:   64bit
numpy:          C:/Users/user/AppData/Local/r-miniconda/envs/r-reticulate/Lib/site-packages/numpy
numpy_version:  1.18.1

我还可以看到使用的默认 python 版本:

Sys.which("python")
                                                                 python 
"C:\\Users\\user\\AppData\\Local\\R-MINI~1\\envs\\R-RETI~1\\python.exe"

如果有人能解决这个安装问题,我将不胜感激。谢谢

【问题讨论】:

  • 您在 conda env 中缺少 swish python 模块。尝试激活 conda env,我想你可以通过 conda activate r-reticulate 来做到这一点,其中 (r-reticulate) 是 keras 调用的 conda env 的名称(可能与 conda env list 不同,一旦激活就执行经典的 pip install swish
  • @JacobJacox 我如何在 R 工作室中做到这一点?
  • 我进一步这样做: pip install swish ,我得到以下信息: 要求已经满足:在 c:\users\user\anaconda3\lib\site-packages (1.1) 要求已经满足:请求>=2.9.1 在 c:\users\user\anaconda3\lib\site-packages (来自 swish) (2.22.0) 。然后我尝试加载库(keras),仍然给出同样的错误。我注意到 swishi 的路径与 tensorflow 的路径不同。
  • 您必须通过 conda 提示符执行此操作。您使用 TF 1.13 的任何原因?
  • 我已经这样做了: install_tensorflow(method = "conda", conda_python_version = 3.6, + version = "2.2.0") 但它仍然显示为: tf_config(): TensorFlow v1.13.2 ( ) Python v3.6 (C:/Users/user/AppData/Local/r-miniconda/envs/r-reticulate/python.exe)

标签: r tensorflow keras


【解决方案1】:

我是 Windows 10 用户,我今天遇到了同样的问题。检查多个帖子后,以下步骤对我有用。

  1. 将 R 更新到最新的 4.1.2 版本。 R Studio 可能会说 R 是最新的(今天发生在我身上),但它可能不是。 install.packages("installr") library(installr) updateR()

  2. 更新 Rcpp、jsonlite 和 curl 包,即使它们声称是最新的。 install.packages("Rcpp") install.packages("jsonlite") install.packages("curl")

  3. 开始一个Fresh R 会话。

  4. 运行以下命令从 github 安装、reticulate、tensorflow 和 keras: devtools::install_github("rstudio/reticulate") devtools::install_github("rstudio/tensorflow") devtools::install_github("rstudio/keras")

  5. 运行以下命令(如果前面的命令包含功能,其中一些可能是多余的。无论如何在此处输入它们可能会有所帮助。)。 library(keras) install_keras() library(reticulate) library(tensorflow)

  6. 使用以下命令测试 TensorFlow 安装: tf$constant("Hello World!")

如果你得到以下输出,你就在那里。输出之前可能有一些文本(忽略它们)。 tf.Tensor(b'Hello World!', shape=(), dtype=string)

在运行 DNN 或 RNN 时,安装软件包后,只需调用 library(keras) 就足够了。

玩得开心!

【讨论】:

    【解决方案2】:

    这可能有点不同,但我发现手动管理依赖环境更容易。这样就可以打开 conda 提示符并执行:

    conda create -n env_name python=3.6 tensorflow
    

    然后在你做任何事情之前在 R 中调用

    library(keras)
    library(tensorflow)
    use_condaenv(condaenv = "env_name",required = T)
    

    默认情况下,您将获得 TF 2.xx,您可以在 conda env 中指定。

    编辑:对于 TF gpu,您需要指定 conda create -n env_name python=3.6 tensorflow-gpu,如果您的 PC 上有 GPU,您将获得 CUDa 和 CUDNN。

    【讨论】: