[Keras] ImportError: Failed to import pydot. You must install pydot and graphviz for `pydotprint` to

问题描述

事情是这样的,当时我正在愉快地使用Keras搭建模型,发现官方还有一个绘制模型的函数plot_model(),于是我愉快地调用了这个函数keras.utils.plot_model(model, 'model.png', show_shapes=True),结果就报了下面的错误:

InvocationException: GraphViz's executables not found
...
ImportError: Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.

我寻思了一下,是不是因为我没装pydotgraphviz才导致的报错?于是我愉快地打开PyCharm,给我的虚拟环境装上了pydotgraphviz,可是它还在报错。

然后我就自闭了一会,自闭完呢,我就去百度和谷歌寻找解决方案,果然,有很多人遇到了跟我一样的问题。根据大佬 [1] 的回答,这是一个环境问题,解决方案是在命令行pip install graphviz什么的,或者手动在官网下载graphviz的安装包,然后添加系统环境变量Path,例如C:\Program Files (x86)\Graphviz2.38\bin这样的东西。

我寻思这个解决方案挺靠谱的,然后我就愉快地试了一下,结果,仍旧报错。

然后我再次自闭了一会,重新寻找解决方案。有人 [2] 说,安装的顺序很重要,要先安装pydot,后安装graphviz;有人 [3] 说要使用keras.utils.vis_utils.plot_model而不是keras.utils.plot_model。总之,感觉都不靠谱。

最后你猜这么着,我在PyCharm里把安装好的graphvizpydot都给卸载了,然后再命令行里安装了pydotpip install pydot),就!成功了!

然后我寻思了一会到底是什么原因导致的报错,我试着把graphviz的系统变量删了,居然没报错,哎,算啦算啦,能用就行啦!

环境

  • Windows 10
  • Python 3.6
  • TensorFlow 2.0 Beta (内置的 Keras)

效果图

generated model figure

Reference

  1. Rob. (August 25, 2018). Graphviz and Pydotplus not working. Retrieved from https://datascience.stackexchange.com/questions/37428/graphviz-and-pydotplus-not-working
  2. web_ninja. (August 26, 2013). Why is pydot unable to find GraphViz’s executables in Windows 8? Retrieved from https://stackoverflow.com/questions/18438997/why-is-pydot-unable-to-find-graphvizs-executables-in-windows-8
  3. XifengGuo. (November, 6, 2017). pydot issue. Retrieved from https://github.com/XifengGuo/CapsNet-Keras/issues/7
发布了40 篇原创文章 · 获赞 84 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/xovee/article/details/91952352