Keras的plot_model告诉我要安装pydot。

10

我正在使用Windows 10机器上的Python 3.6.3。我使用pip install安装了pydot和graphviz:

    py -m pip install pydot
    py -m pip install graphviz

我也去了graphviz的网站,并下载并安装了Windows版本,链接在这里:http://www.graphviz.org/Download_windows.php,默认安装到program files(x86)中。但是当我尝试在Keras中绘制我的模型时,我仍然收到错误消息,说我必须安装pydot和graphviz并且导入失败。我可以执行:

    import pydot
    import graphviz

在我的 Python 控制台上一切都很好,没有出现任何错误。我应该做什么才能绘制我的神经网络图呢?


尝试执行以下命令: py -m pip3 install pydot py -m pip3 install graphviz - Marcin Możejko
我没有pip3。但通常如果我只使用“py -m pip”,那已经是针对Python 3的,因为要进入Python 2,我必须执行py -2.7 -m pip install...等等。此外,我已经测试了Python 3的导入语句,它可以正常工作。 - enumaris
4个回答

11
安装的GraphViz可执行文件路径(dotneato等)需要在PATH环境变量中,以便pydot找到它们。早期版本的pydot会搜索这些可执行文件,但不再这样做
另外:
  1. pydot是一个Python包。
  2. GraphViz是一组用C编写的计算图形布局的工具。
  3. graphviz是与pydot完全无关的Python包。这两个Python包不会以任何方式相互交互。安装其中一个应该就足够了(连同GraphViz)。
另请参见:

和从那里链接。


那是否意味着我必须进入pydot的源代码并手动添加graphviz的路径? - enumaris
我搞定了,抱歉,我以前从未编辑过我的Windows PATH变量。 - enumaris
如果用户直接调用pydot(而不是通过keras或其他中介),则一种中间解决方案是通过Dot.write_*Dot.create_*方法的prog参数传递路径(请参阅[此docstring](https://github.com/erocarrera/pydot/blob/35a8d858bd9da0b37268fe9b317fe4895387e75f/pydot.py#L1834))。但是,不建议使用此解决方案。最好设置环境配置,并在重新安装操作系统时将其复制。在*nix系统中,通常在`~/.bashrc`中完成此操作(我建议将此配置文件提交到`git`仓库)。 - 0 _
1
请查看此答案的完整过程 -> https://dev59.com/-V8d5IYBdhLWcg3w3FVk#50025414 - sync11
@dataLeo keras >= 2.1.6 已经更新到最新版本的 pydot: https://github.com/keras-team/keras/pull/9904 - 0 _
@loannis 感谢您的回复。我的答案针对的是Keras 2.1.5版本。 - sync11

2

补充@Ioannis的回答,您需要通过conda安装GraphViz可执行文件(conda install GraphViz)。

对于我的情况,在安装了GraphViz之后,我尝试使用最新的pydot (pip install pydot),然后错误得到了解决。


1
我通过以下方式安装软件包来解决这个问题:

conda install graphviz
conda install pydot
conda install pydotplus

1

为了补充@dataLeo的解决方案,Python 3用户可以使用pydotplus包代替pydot-ng包。总结如下:

  1. 通过命令“conda install pydot”和“conda install -c conda-forge pydotplus”安装pydot+graphviz和pydotplus。
  2. 进入vis_utils.py文件,并将第11行从import pydot更改为import pydotplus as pydot

PS:您可以通过在ipython控制台中检查plot_model命令的帮助来定位vis_utils.py文件,即在from keras.utils import plot_model之后,在ipython控制台中键入??plot_model

在Windows 10-64位Anaconda python-3.6上测试通过


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接