【问题标题】:R reticulate package does not see keras library in winpythonR网状包在winpython中看不到keras库
【发布时间】:2017-10-19 15:29:47
【问题描述】:

我正在尝试在 RStudio 中使用安装在 Winpython 版本 3.4.4.amd64 中的 keras 库(通过 reticulate 和 kerasR 库)。我在 Windows 7 64 位机器上工作。我也尝试过使用 Winpython 3.6.1.amd64 版

我在 R 中尝试过的内容:

# diagnostics
library(reticulate) 
# reticulate::use_python("PATH_TO_PYTHON") 
path_to_python <- "C:\\dev\\WinPython3.4\\python-3.4.4.amd64"

use_python(path_to_python) 

py_module_available("keras")
[1] FALSE               # it responds with TRUE for eg. matplotlib

py_config()
# python:         C:\dev\WinPython3.4\python-3.4.4.amd64/python.exe
# libpython:      C:/dev/WinPython3.4/python-3.4.4.amd64/python34.dll
# pythonhome:     C:\dev\WINPYT~1.4\PYTHON~1.AMD
# version:        3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC # v.1600 64 bit (AMD64)]
# Architecture:   64bit
# numpy:          C:\dev\WINPYT~1.4\PYTHON~1.AMD\lib\site-packages\numpy
# numpy_version:  1.11.3

当我使用 Spyder IDE 并加载 keras 时,它不会向我抛出错误。早些时候我注意修改 .keras json 文件以使用 theano 而不是 tensorflow。

当我尝试其他库时,例如 py_module_available("theano") 我得到 TRUE。

我不知道我在这里想念什么。我想将 keras 与库(kerasR)一起使用。我在工作,无法修改注册表和环境路径。会是这个原因吗?

当我尝试时

reticulate::import("keras")

我明白了:

Error in py_module_import(module, convert = convert) : 
  AttributeError: 'NoneType' object has no attribute 'write'

Detailed traceback: 
  File "C:\dev\WINPYT~1.4\PYTHON~1.AMD\lib\site-packages\keras\__init__.py", line 2, in <module>
    from . import backend
  File "C:\dev\WINPYT~1.4\PYTHON~1.AMD\lib\site-packages\keras\backend\__init__.py", line 66, in <module>
    sys.stderr.write('Using TensorFlow backend.\n')

我对 3.6.1.amd64 进行了相同的尝试,结果相同。 我没有想法,非常感谢所有建议。

【问题讨论】:

  • 我对这些软件包一无所知,但 keras 是否正确安装在您的 python 3.4 中。签入 PowerShell:"C:\path\to\python.exe",后跟 import keras。或者在 IDLE 或脚本中做同样的事情。你有错误吗?
  • 上次我检查时,Tensorflow 无法在 Windows 上运行 python-3.4。
  • 在可用于 winpython 的 Spyder ide 中,我可以导入 keras,我将 .python.json 更改为使用 theano 而不是 tensorfliw。也许当从 r python 使用时从不同的位置读取 python.json?有没有办法检查?

标签: python r rstudio keras reticulate


【解决方案1】:

同样,我在 WIN7 下尝试在 Anaconda3 5.0.0 中安装 R“keras”库时遇到问题。

https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.3.0-cp36-cp36m-win_amd64.whl 一直无法在 Python 3.6 中安装(传输/轮子问题),看起来像是 python 3.6 兼容性问题,不过我确实检查了 64 位架构:

>>>import platform
>>>platform.architecture()

('64bit', 'WindowsPE')

在 conda 环境 r-tensorflow 中将 PYTHON 从 3.6 降级到 3.5,并且在 R 中使用 reticulate 来指向该环境:use_condaenv("r-tensorflow")

https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.3.0-cp35-cp35m-win_amd64.whl 版本也无法正确安装,必须在 Python 3.5 中使用 tensorflow-1.2.1-cp35-cp35m-win_amd64.whl,这样就可以了

问题是,install_keras() 似乎调用了 install_tensorflow(method = "conda"),它实际上覆盖并使用 pip 重新安装 tensorflow:

activate r-tensorflow && pip install --upgrade --ignore-installed "https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.3.0-cp35-cp35m-win_amd64.whl"

我的猜测是最好使用“kerasR”而不是“keras”库,然后尝试强制执行 tensorflow-1.2.1-py35。如果您找到解决方法,请发布。

【讨论】:

    【解决方案2】:

    关于 Keras/theano 的安装,请在 SO 中查看此线程

    How do I install Keras and Theano in Anaconda Python on Windows?

    一旦完成重新启动你的comp....然后让我们尝试从R studio连接kerasR 下面给出(顺序)............

    ########## 深度学习安装和启动
      #### First activate  environment where keras/theano were installed via anaconda prompt  :  
    

    (C:\Users\ADMIN\Anaconda3) C:\Users\ADMIN&gt;activate mydeeplearning # mydeeplearning 是我安装 python keras theano 等的环境名称.....

    然后从 R 工作室

    尝试安装最新的 github 包版本,而不是从 cran ......

    devtools::install_github("statsmaths/kerasR")
    devtools::install_github("rstudio/reticulate")# install the latest reticulate package as it solves some errors/bugs
    
    library(kerasR)
    library(reticulate)
    
    py_available(initialize = FALSE)  # should give TRUE
    
    use_python("C:/Users/ADMIN/Anaconda3/envs/mydeeplearning/python.exe") # plz change it to your Path
    keras_init()  # will give `successfully loaded keras`
    
    # further checks if everything is working
    keras_available()   # should give `[1] TRUE`
    reticulate::py_config()  # should show u]the correct python path which we tried changing initially  using `use_python("C:/Users/ADMIN/Anaconda3/envs/mydeeplearning/python.exe") `
    
    python:         C:/Users/ADMIN/Anaconda3/envs/mydeeplearning/python.exe
    libpython:      C:/Users/ADMIN/Anaconda3/envs/mydeeplearning/python35.dll
    pythonhome:     C:\Users\ADMIN\ANACON~1\envs\MYDEEP~1
    version:        3.5.3 |Continuum Analytics, Inc.| (default, May 15 2017, 10:43:23) [MSC v.1900 64 bit (AMD64)]
    Architecture:   64bit
    numpy:          C:\Users\ADMIN\ANACON~1\envs\MYDEEP~1\lib\site-packages\numpy
    numpy_version:  1.13.1
    
    python versions found: 
     C:/Users/ADMIN/Anaconda3/envs/mydeeplearning/python.exe
     C:\PROGRA~1\Python35\python.exe
     C:\Users\ADMIN\ANACON~1\python.exe
     C:\PROGRA~1\Python35\\python.exe
     C:\Users\ADMIN\ANACON~1/envs/mydeeplearning/python.exe    
    
    reticulate::py_module_available("keras") #should give `[1] TRUE`   
    reticulate::py_available()#should give `[1] TRUE`   
    reticulate::import("keras.models")# should give `Module(keras.models)`
    

    应该可以了....花了我几乎一整天的时间来安装并找出错误....但现在感觉很高兴.....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      相关资源
      最近更新 更多