OSError: `pydot` failed to call GraphViz.Please install GraphViz (https://www.graphviz.org/)
全文轉自:https://www.cnblogs.com/madhevin/p/10481930.html
keras在視覺化時,如果呼叫plot_model函式,可能是出現OSError: `pydot` failed to call GraphViz.Please install GraphViz (https://www.graphviz.org/)
1. keras模型視覺化函式
keras.utils.vis_utils模組提供了視覺化Keras模型的函式plot_model,可將模型summary資訊以圖片形式輸出。
使用方式如下:
from keras.utils import plot_model
plot_model(model, to_file='model.png')
plot_model 有 4 個可選引數:
- show_shapes (預設為 False) 控制是否在圖中輸出各層的尺寸。
- show_layer_names (預設為 True) 控制是否在圖中顯示每一層的名字。
- expand_dim(預設為 False)控制是否將巢狀模型擴充套件為圖形中的聚類。
- dpi(預設為 96)控制影象 dpi
2. 問題解決
plot_model函式依賴 pydot-ng 和 graphviz,若執行出現錯誤,則需要安裝這兩個包:
-
安裝graphviz:Linux系統中可直接用命令列安裝,windows系統下需要下載該二進位制安裝包手動安裝,官網下載地址為:
-
安裝好之後需要配置環境變數:將graphviz安裝目錄下的bin檔案路徑夾新增到Path環境變數中。
-
驗證graphviz是否安裝成功: 進入windows命令列介面,輸入dot -version,然後按回車,如果顯示graphviz的相關版本資訊,則安裝配置成功。
-
安裝pydot-ng: 直接在命令列中輸入pip install pydot-ng即可安裝。
【注意】:需要注意的是pydot與pydot-ng的區別,pydot是對應python2的舊版本,python-ng是相容python2與python3的新版本,之前看部落格安裝pydot,執行一直不成功,總是報錯:找不到graphviz,後來才發出現是pydot的問題,我這裡使用的是python3,故需要安裝pydot-ng。 -
由於plot_model函式中預設呼叫的是pydot,安裝pydot-ng後執行程式碼仍然會提示找不到pydot,這時需要在原始碼...\keras\utils\vis_utils.py模組中做如下修改, 確認修改,就能正常運行了。
import pydot 修改為 import pydot-ng as pydot