在R Studio中加载keras软件包时出错

时间:2020-06-22 07:23:07

标签: r tensorflow keras

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

Checkgateway.GetDetail("Example")

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

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

输出:Tensor(“ Const:0”,shape =(),dtype = string)

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

输出:Tensor(“ Const_1:0”,shape =(),dtype = float32)

我进一步检查:

tf$constant(1.5)

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

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

tf_config()

加载库时,出现以下错误

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

由于无法加载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

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

install_keras(method = "conda")

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

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

如果有人可以解决此安装问题,我将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

这可能有所不同,但是我发现手动管理依赖环境会更容易。因此,您可以打开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。