今天想用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)
