keras可视化遇到pydot&graphviz无法导入问题

python使用pydot报错:OSError: `pydot` failed to call GraphViz.Please install GraphViz (https://www.graphviz.org/) and ensure that its executables are in the $PATH.

首先确保pip install pydot;pip install pydot-ng;pip install graphviz

如果还报错:原因其实不在于pydot,跟python包没有关系,而是因为graphviz需要安装二进制执行文件(跟imagick类似),所以还需要去官网下一个graphviz安装包安装:https://graphviz.gitlab.io/_pages/Download/Download_windows.html

下载gtapviz.zip解压后在系统变量中添加路径即可.

keras可视化遇到pydot&graphviz无法导入问题

如果执行起来还有有报错的话,就用终极大法,在代码中添加其路径:

import os
os.environ["PATH"] += os.pathsep + 'G:/17/graphviz/bin/'

代码如下

  1. import numpy as np
  2. from keras.models import Sequential
  3. from keras.layers.core import Dense, Activation
  4. from keras.optimizers import SGD
  5. from keras.utils import np_utils
  6. from keras.utils import plot_model
  7. import os
  8. os.environ["PATH"] += os.pathsep + 'G:/17/graphviz/bin/'
  9.  
  10. def run():
  11.     # 构建神经网络
  12.     model = Sequential()
  13.     model.add(Dense(4, input_dim=2, kernel_initializer='uniform'))
  14.     model.add(Activation('relu'))
  15.     model.add(Dense(2, kernel_initializer='uniform'))
  16.     model.add(Activation('sigmoid'))
  17.     sgd = SGD(lr=0.05, decay=1e-6, momentum=0.9, nesterov=True)
  18.     model.compile(loss='binary_crossentropy', optimizer=sgd, metrics=['accuracy'])
  19.  
  20.     # 神经网络可视化
  21.     plot_model(model, to_file='model.png')
  22.  
  23. if __name__ == '__main__':
  24.     run()

结果如下:

keras可视化遇到pydot&graphviz无法导入问题