R keras 包错误:找不到 Python 模块 tensorflow.contrib.keras.python.keras

R keras package Error: Python module tensorflow.contrib.keras.python.keras was not found

提问人:Hack-R 提问时间:6/18/2017 更新时间:5/8/2022 访问量:32344

问:

我已经在 R 中使用了 GitHub,并在 Python 中安装了 TensorFlow。kerasdevtools

但是,当我运行示例Keras命令时,例如:

model <- keras_model_sequential() 

我得到以下内容:

错误:Python 模块 tensorflow.contrib.keras.python.keras 不是 发现。

Detected Python configuration:

python:         C:\Python35\python.exe
libpython:      C:/Python35/python35.dll
pythonhome:     C:\Python35
version:        3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)]
Architecture:   64bit
numpy:          C:\Python35\lib\site-packages\numpy
numpy_version:  1.13.0
tensorflow:     C:\Python35\lib\site-packages\tensorflow

python versions found: 
 C:\Python35\python.exe
 C:\Python27\\python.exe
 C:\Python35\\python.exe
 C:\Python36\\python.exe
R TensorFlow Keras

评论

0赞 Roman Luštrik 6/18/2017
您似乎安装了许多 python 版本。R 是否可能链接到错误的版本(安装 tensorflow 的地方)?
0赞 Alexandre Passos 6/28/2017
是的,这看起来像是错误的 python 版本问题。
0赞 Hack-R 6/28/2017
但它达到了 3.5,哪个是正确的?

答:

2赞 itamar kanter 7/3/2017 #1

我遇到了类似的问题。 通过将 tensorflow 模块从 1.0.1 更新到 1.2.1 解决了该问题

评论

0赞 itamar kanter 7/9/2017
我没有使用 H2O 集群。我有独立的 Keras 和 tensorflow 安装。我通过 pip 命令在 R 外部升级了 tensorflow 包。
12赞 Nihit Save 7/23/2017 #2

我也有类似的问题。重新启动 rstudio,加载 keras 和 tensorflow 库,然后键入 .这为我解决了它。use_condaenv("r-tensorflow")

评论

0赞 Hack-R 7/27/2017
谢谢;不过,我不在这台机器中使用 Anaconda
4赞 Nihit Save 9/23/2017
R 中最新版本的 Keras 已修复此问题。更新 keras 包并键入 。install_keras()
1赞 Yoav24 10/28/2019
恭喜你是我该死的英雄
0赞 Nihit Save 10/29/2019
@Yoav24我以为他们修好了,但我很高兴它对你有所帮助。
2赞 Federico Giorgi 2/10/2023
与 R 相比,在 Python 中安装任何东西似乎非常困难。没有标准。就像,使用包管理器 pip 安装 tensorflow 不起作用。你需要一个叫做anaconda/miniconda的东西,定义一个单独的环境,甚至在Docker中运行所有的东西?这真是荒谬的家伙。我们需要在原生 R 中重写 keras。
5赞 Gabriel Barrionuevo-Rosales 7/27/2017 #3

首先,您可以从此处安装 R tensorflow 包。

然后,您可以使用install_tensorflow函数安装最新的 tensorflow 版本,如本答案所示。

之后,只需安装并更新 R-keras 库。它现在应该使用最新版本的 TensorFlow,这可能会解决您的问题。此外,请确保安装与您的 Python 版本匹配的 tensorflow 版本。

2赞 Valeri Voev 10/30/2019 #4

我在 Mac 上安装 conda 时遇到了类似的问题(因此使用 ,它创建了一个名为 下的虚拟环境。然后,当我尝试像您一样实例化模型时,我收到错误“错误:找不到 Python 模块 tensorflow.python.keras”。install_keras(method = 'conda', conda = '/opt/anaconda3/bin/conda')r-reticulate~/.conda/envs

对我来说,加载执行后解决的问题是什么,然后一切正常。library(keras)use_condaenv("r-reticulate", required = TRUE)

1赞 Muhammad Umar 10/9/2020 #5

在 Windows 中,我尝试了上述所有给定的解决方案,但没有奏效。 当我在 spyder 和 R 中使用 env 创建环境时,它对我有用

conda create -n keras-tf tensorflow keras

在 Windows 中

library(keras)
library(tensorflow)
use_condaenv("keras-tf", required = T)

在 Python 中

import tensorflow as tf
5赞 Edayadulla M 12/1/2020 #6

我遇到了类似的问题,以下步骤有助于克服这个问题。

  1. 从 rstudio github 安装 TensorFlow 和 Keras。
  • devtools::install_github("rstudio/tensorflow")
  • devtools::install_github("rstudio/keras")
  1. 执行以下命令
  • tensorflow::install_tensorflow()
  • tensorflow::tf_config()

评论

0赞 kurtkim 2/1/2023
然后,应该跟随。library("keras")
0赞 SAMM5 12/9/2021 #7

有时你的环境和系统没有任何问题,只是你配置 Tensorflow 和 Keras 的方式导致了这些错误。

以下是我修复我的方法:

{install.packages("tensorflow")
install.packages("keras")
tensorflow::tf_config()
mytf <- tf$compat$v1} 

配置结果显示以下输出:

2021-12-09 11:43:39.007746: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
2021-12-09 11:43:39.007931: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
TensorFlow v2.6.2 ()
Python v3.7 (C:/Users/myName/AppData/Local/r-miniconda/envs/r-reticulate/python.exe)

然后输入:

install_keras()

之后,您可以测试:

mnist <- keras::dataset_mnist() ; mnist

这将为您提供如下输出:

$train
$train$x
, , 1

         [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
    [1,]    0    0    0    0    0    0    0    0    0     0     0     0     0     0     0     0
    [2,]    0    0    0    0    0    0    0    0    0     0     0     0     0     0     0     0
    [3,]    0    0    0    0    0    0    0    0    0     0     0     0     0     0     0     0
    [4,]    0    0    0    0    0    0    0    0    0     0     0     0     0     0     0     0
    [5,]    0    0    0    0    0    0    0    0    0     0     0     0     0     0     0     0
    [6,]    0    0    0    0    0    0    0    0    0     0     0     0     0     0     0     0
    [7,]    0    0    0    0    0    0    0    0    0     0     0     0     0     0     0     0
    [8,]    0    0    0    0    0    0    0    0    0     0     0     0     0     0     0    
....
$train$y
   [1] 5 0 4 1 9 2 1 3 1 4 3 5 3 6 1 7 2 8 6 9 4 0 9 1 1 2 4 3 2 7 3 8 6 9 0 5 6 0 7 6 1 8 7 9 3
  [46] 9 8 5 9 3 3 0 7 4 9 8 0 9 4 1 4 4 6 0 4 5 6 1 0 0 1 7 1 6 3 0 2 1 1 7 9 0 2 6 7 8 3 9 0 4
  [91] 6 7 4 6 8 0 7 8 3 1 5 7 1 7 1 1 6 3 0 2 9 3 1 1 0 4 9 2 0 0 2 0 2 7 1 8 6 4 1 6 3 4 5 9 1
 [136] 3 3 8 5 4 7 7 4 2 8 5 8 6 7 3 4 6 1 9 9 6 0 3 7 2 8 2 9 4 4 6 4 9 7 0 9 2 9 5 1 5 9 1 2 3
 [181] 2 3 5 9 1 7 6 2 8 2 2 5 0 7 4 9 7 8 3 2 1 1 8 3 6 1 0 3 1 0 0 1 7 2 7 3 0 4 6 5 2 6 4 7 1
 [226] 8 9 9 3 0 7 1 0 2 0 3 5 4 6 5 8 6 3 7 5 8 0 9 1 0 3 1 2 2 3 3 6 4 7 5 0 6 2 7 9 8 5 9 2 1
 [271] 1 4 4 5 6 4 1 2 5 3 9 3 9 0 5 9 6 5 7 4 1 3 4 0 4 8 0 4 3 6 8 7 6 0 9 7 5 7 2 1 1 6 8 9 4
 [316] 1 5 2 2 9 0 3 9 6 7 2 0 3 5 4 3 6 5 8 9 5 4 7 4 2 7 3 4 8 9 1 9 2 8 7 9 1 8 7 4 1 3 1 1 0
 [361] 2 3 9 4 9 2 1 6 8 4 7 7 4 4 9 2 5 7 2 4 4 2 1 9 7 2 8 7 6 9 2 2 3 8 1 6 5 1 1 0 2 6 4 5 8
 [406] 3 1 5 1 9 2 7 4 4 4 8 1 5 8 9 5 6 7 9 9 3 7 0 9 0 6 6 2 3 9 0 7 5 4 8 0 9 4 1 2 8 7 1 2 6
 [451] 1 0 3 0 1 1 8 2 0 3 9 4 0 5 0 6 1 7 7 8 1 9 2 0 5 1 2 2 7 3 5 4 9 7 1 8 3 9 6 0 3 1 1 2 6
 [496] 3 5 7 6 8 3 9 5 8 5 7 6 1 1 3 1 7 5 5 5 2 5 8 7 0 9 7 7 5 0 9 0 0 8 9 2 4 8 1 6 1 6 5 1 8
 [541] 3 4 0 5 5 8 3 6 2 3 9 2 1 1 5 2 1 3 2 8 7 3 7 2 4 6 9 7 2 4 2 8 1 1 3 8 4 0 6 5 9 3 0 9 2
 [586] 4 7 1 2 9 4 2 6 1 8 9 0 6 6 7 9 9 8 0 1 4 4 6 7 1 5 7 0 3 5 8 4 7 1 2 5 9 5 6 7 5 9 8 8 3
 [631] 6 9 7 0 7 5 7 1 1 0 7 9 2 3 7 3 2 4 1 6 2 7 5 5 7 4 0 2 6 3 6 4 0 4 2 6 0 0 0 0 3 1 6 2 2
 [676] 3 1 4 1 5 4 6 4 7 2 8 7 9 2 0 5 1 4 2 8 3 2 4 1 5 4 6 0 7 9 8 4 9 8 0 1 1 0 2 2 3 2 4 4 5
 [721] 8 6 5 7 7 8 8 9 7 4 7 3 2 0 8 6 8 6 1 6 8 9 4 0 9 0 4 1 5 4 7 5 3 7 4 9 8 5 8 6 3 8 6 9 9
....
[ reached getOption("max.print") -- omitted 9000 entries ]