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

独自空忆成欢 提交于 2019-11-28 08:11:32
Matias Valdenegro

The error message is a bit misleading, as you can see here. The problem is that graphviz is not installed.

But you mention that graphviz was installed using pip. This is also misleading, since that graphviz package is just a python wrapper, and the graphviz binaries have to be installed separately for the python wrapper to work.

If you are using an Anaconda environment, you'd better install pydotplus and graphviz via conda install.

conda install graphviz
conda install pydotplus

Note: You'd better update your Keras to the newest version (2.0.9+), it can automatically check and choose which one of pydotplus,pydot-ng,pydot to be used. pydot-ng has been unmaintained for a long time, and it only supports py3.4- and py2.7.

I had the same problem. I am using Anaconda python on Ubuntu. but it seams that Keras uses system's python not the Anaconda python. Initially, I installed pydot and graphviz using conda. When I installed pydot and graphviz in system's python(using /usr/bin/pip install pydot) it worked fine.

Keras 2.0.6 looks for pydot-ng (better maintained) and then if it's not found, falls back on pydot. I resolved this issue by installing pydot-ng from source.

What I did is followed.

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')

That's worked for me. On mac Anaconda python=3.6.8

yogesh

Install graphviz by brew in osx brew install graphviz, for ubuntu use apt-get install graphviz, do not need to install graphviz by pip.

I had similar problem with my Keras (without anaconda). I have solved my problem using this way

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

For Anaconda on Mac:

To install this package with conda run:

conda install -c anaconda graphviz

  1. Install graphviz to the system. Download the package from here, or on Mac:

    brew install graphviz
    
  2. Install python pydot-ng and graphviz wrapper.

    pip install pydot-ng graphviz
    conda install -c anaconda pydot-ng #Anaconda user
    
  3. Use pydot-ng in your code

    import pydot_ng as pydot
    
  4. If Keras visualization utils still uses pydot, try to change import pydot to import pydot_ng as pydot in visualize_util.py

1)Conda install graphviz
2)pip install graphviz
3)pip install pydot
then:

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

The below works inside a jupyter notebook runing in a jupyter/tensorflow-notebook docker container.

!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)

You need to tell keras to use pydotplus

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!