Keras: "RuntimeError: Failed to import pydot." after installing graphviz and pydot

Keras: "RuntimeError: Failed to import pydot." after installing graphviz and pydot

我在 windows 10

上使用 Anaconda Python 2.7

我正计划进行 Keras 可视化,所以(当 spyder 打开时)我打开了 Anaconda 命令提示符并 pip 安装了 graphviz 和 pydot。现在,当我尝试 运行 以下内容时:

from keras.models import Sequential

或任何类型的 "from keras." ,我得到错误:

ImportError: cannot import name gof

我已经卸载并重新安装了 Keras、Graphviz 和 pydot。我正在使用 theano 的开发版本。我找不到修复方法。

P.S

如果我卸载 graphviz 和 pydot,keras 又可以工作了

编辑

卸载 anaconda 并重新安装包括 theano、keras、graphviz 和 pydot 后,我现在收到以下错误:

from keras.utils.visualize_util import plot

Using Theano backend.
Using gpu device 0: GeForce GTX 970M (CNMeM is disabled, cuDNN not available)
Traceback (most recent call last):

  File "<ipython-input-1-65016ddab3cd>", line 1, in <module>
  from keras.utils.visualize_util import plot

  File "C:\Anaconda2\lib\site-packages\keras\utils\visualize_util.py", line  8, in <module>
  raise RuntimeError('Failed to import pydot. You must install pydot'

RuntimeError: Failed to import pydot. You must install pydot and graphviz  for `pydotprint` to work.

我用了pip install graphvizpip install git+https://github.com/nlhepler/pydot.git

错误消息有点误导,如您所见here。问题是没有安装graphviz

但是你提到 graphviz 是使用 pip 安装的。这也是一种误导,因为 graphviz 包只是一个 python 包装器,graphviz binaries 必须单独安装才能使 python 包装器工作。

我遇到了同样的问题。我在 Ubuntu 上使用 Anaconda python。但似乎 Keras 使用系统的 python 而不是 Anaconda python。最初,我使用 conda 安装了 pydot 和 graphviz。当我在系统的 python(使用 /usr/bin/pip 安装 pydot)中安装 pydot 和 graphviz 时,它工作正常。

我的 Keras(没有 anaconda)也有类似的问题。我已经用这种方式解决了我的问题

sudo pip install pydot
sudo pip install graphviz
sudo add-apt-repository ppa:gviz-adm/graphviz-dev
sudo apt-get update
sudo apt-get install graphviz-dev

在osxbrew install graphviz中通过brew安装graphviz,对于ubuntu使用apt-get install graphviz,不需要通过pip安装graphviz。

Keras 2.0.6 寻找 pydot-ng(维护得更好),如果找不到,则回退到 pydot。我通过从 source 安装 pydot-ng 解决了这个问题。

如果您使用的是 Anaconda 环境,您最好通过 conda install.

安装 pydotplusgraphviz
conda install graphviz
conda install pydotplus

注意: 你最好将你的 Keras 更新到最新版本(2.0.9+),它会自动检查并选择使用 pydotpluspydot-ngpydot 中的哪一个。 pydot-ng很久没人维护了,只支持py3.4-和py2.7

对于 Mac 上的 Anaconda:

使用 conda 安装这个包 运行:

conda install -c anaconda graphviz

  1. 安装graphviz到系统。从 here 或 Mac:

    下载软件包
    brew install graphviz
    
  2. 安装 python pydot-ng 和 graphviz 包装器。

    pip install pydot-ng graphviz
    conda install -c anaconda pydot-ng #Anaconda user
    
  3. 在代码中使用 pydot-ng

    import pydot_ng as pydot
    
  4. 如果Keras visualization utils仍然使用pydot,尝试在visualize_util.py

  5. 中将import pydot更改为import pydot_ng as pydot

1)康达安装graphviz
2)pip 安装 graphviz
3)pip 安装 pydot
然后:

import os os.environ["PATH"] += os.pathsep + AppData\Local\Continuum\anaconda3\envs\tensorflow\Library\bin\graphviz'

我做的就是跟着做的

import keras
import pydotplus
from keras.utils.vis_utils import model_to_dot
keras.utils.vis_utils.pydot = pydot

plot_model(your_model_name, to_file='model.png')

这对我有用。 在 mac 蟒蛇 python=3.6.8

下面的代码在 jupyter/tensorflow-notebook docker 容器中运行的 jupyter notebook 中运行。

!conda install -y graphviz pydotplus

import pydotplus
import keras.utils
keras.utils.vis_utils.pydot = pydotplus
keras.utils.plot_model(your_model_name, to_file='model.png', show_shapes=True)

你需要告诉keras使用pydotplus

如果你是通过pip安装的,则与pydot或graphviz无关

您应该去下载 graphviz brinary 并安装。

不要忘记将 bin 文件夹添加到您的路径中:C:/Program Files (x86)/Graphviz2.38/bin/

然后关闭并重新打开您的控制台。

安装 pydot 和 graphviz 并将 graphviz 添加到路径后,您可以重新启动 IDE 或终端。 see here.