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