【避坑解決】OSError: `pydot` failed to call GraphViz.Please install GraphViz (https://www.graphviz.org/) and ensure that its executables are in the $PATH. 解決辦法


今天想用keras中的plot_model輸出網絡結構圖,但是卻出現了這個錯誤,看了網上的一些解決方法,記錄下來。

一、常規操作是:(我的解決方案直接看第二部分)

1、使用pip命令安裝這兩項內容

pip install pydot pip install graphviz

2、windows下緊接着下載graphviz-2.38.msi進行安裝(https://www.softpedia.com/get/Others/Miscellaneous/Graphviz.shtml),linux、mac應該有類似的安裝方法。

3、將’C:/Program Files (x86)/Graphviz2.38/bin/'添加進環境的Path

   如何添加環境變量就不截圖了(https://baijiahao.baidu.com/s?id=1652502091402613426&wfr=spider&for=pc

理論上這個時候應該這個時候就好用了,但是仍然會出現相同或者其他錯誤,其實感覺最主要的原因應該就是plot_model中,使用的pydot已經不再更新了,應該使用其他進行替代,好像應該是在keras中沒有更新,但是在tensorflow中其實已經更新。

二、我嘗試的方法

1、找到keras下的vis_utils.py進行修改,我的在C:\Users\Harry\.conda\envs\my-keras\Lib\site-packages\keras\utils

根據自己的情況查找(強烈安利Everyting,一鍵檢索)

try: import pydot except ImportError: pydot = None

替換為

try: # pydot-ng is a fork of pydot that is better maintained.
  import pydot_ng as pydot except ImportError: # pydotplus is an improved version of pydot
  try: import pydotplus as pydot except ImportError: # Fall back on pydot if necessary.
    try: import pydot except ImportError: pydot = None

2、與第一部分一致,復制過來稍作修改。

①、使用pip命令安裝這兩項內容

pip install pydot_ng
pip install graphviz

、windows下緊接着下載graphviz-2.38.msi進行安裝(https://www.softpedia.com/get/Others/Miscellaneous/Graphviz.shtml),linux、mac應該有類似的安裝方法。

③、將’C:/Program Files (x86)/Graphviz2.38/bin/'添加進環境的Path

   如何添加環境變量就不截圖了(https://baijiahao.baidu.com/s?id=1652502091402613426&wfr=spider&for=pc

3、在程序開頭添加

import os os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

應該這樣就可以使用了

plot_model(model, to_file="1.png", show_shapes=True)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM