解决绘制theano图形时出现的`Runtime Error: Failed to import pydot’错误

错误信息

当我在练习theano官方例程时,遇到的一个错误。
错误信息
根据报错信息,可以判断出在代码执行pydotprint函数时需要依赖pydot和graphviz的python模块。但是,我使用pip list查看,发现已经安装了pydot和graphviz的程序包。单独执行“import pydot”时也没有报错。这让我很困惑。

分析错误

于是,我开始在网上google错误信息。在github的一个issue中,我找到了线索。虽然之前安装了graphviz的python 模块,但是此模块只是一个python接口,其核心库和程序并没有随着一起安装,需要从Graphviz的网站上下载对应的安装文件安装,这在graphviz模块所在的pypi上也有说明,只是之前被忽略了。

To render the generated DOT source code, you also need to install Graphviz.
Make sure that the directory containing the dot executable is on your systems’ path.

解决方案

于是总结解决方案如下:
1. 安装c编译的Graphviz,并把bin文件夹所在的目录添加到系统环境变量PATH中
2. 使用pip安装pydot和graphviz
3. 验证pydot是否能够链接Graphviz的二进制文件

import pydot
print pydot.find_graphviz()

如果链接成功,则会打印类似如下的结果
验证是否链接graphviz

绘制Theano Graph

该错误解决后就可以可视化theano的graph了。
执行如下的toy code:

import theano
a = theano.tensor.vector()
out = a + a**10
f = theano.function([a], out)
theano.printing.pydotprint(f, outfile = “f_optimized.png”, var_with_name_simple = True)

然后就可得到打印出的graph了。

上述代码绘制的graph

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值