1. 程式人生 > 實用技巧 >OSError: `pydot` failed to call GraphViz.Please install GraphViz (https://www.graphviz.org/)

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,若執行出現錯誤,則需要安裝這兩個包:

      1. 安裝graphviz:Linux系統中可直接用命令列安裝,windows系統下需要下載該二進位制安裝包手動安裝,官網下載地址為:

        下載地址:https://graphviz.gitlab.io/_pages/Download/Download_windows.html 或者https://www2.graphviz.org/Packages/stable/portable_source/

      2. 安裝好之後需要配置環境變數:將graphviz安裝目錄下的bin檔案路徑夾新增到Path環境變數中。

      3. 驗證graphviz是否安裝成功: 進入windows命令列介面,輸入dot -version,然後按回車,如果顯示graphviz的相關版本資訊,則安裝配置成功。

      4. 安裝pydot-ng: 直接在命令列中輸入pip install pydot-ng即可安裝。
        【注意】:需要注意的是pydot與pydot-ng的區別,pydot是對應python2的舊版本,python-ng是相容python2與python3的新版本,之前看部落格安裝pydot,執行一直不成功,總是報錯:找不到graphviz,後來才發出現是pydot的問題,我這裡使用的是python3,故需要安裝pydot-ng。

      5. 由於plot_model函式中預設呼叫的是pydot,安裝pydot-ng後執行程式碼仍然會提示找不到pydot,這時需要在原始碼...\keras\utils\vis_utils.py模組中做如下修改, 確認修改,就能正常運行了。

                       import pydot    修改為    import pydot-ng as pydot