debian下安装Theano(附pydot问题解决方法)

Ubuntu能安装Theano,按道理debian也能安装theano,而且安装方法应该是一样的。先po上安装的方法:

安装过程

  1. 确保机器能上网,ctrl+alt+T打开Terminal,先 sudo apt-get update ,让源能够工作
  2. 安装依赖库

    sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g++ libopenblas-dev git
    
  3. 安装theano

    sudo pip install Theano
    

若要继续安装GPU工具CUDA,大家可以按照这里来http://www.johnwittenauer.net/configuring-theano-for-high-performance-deep-learning/

测试安装是否正确

按照官网上ubuntu的安装方法安装,把除了CUDA之外的都装了,按照下列顺序跑测试代码,正常情况下大家可能有一些fail和warning,但是没有error,说明测试跑通了。

测试代码:
1.NumPy (~30s): python -c “import numpy; numpy.test()”

2.SciPy (~1m): python -c “import scipy; scipy.test()”

3.Theano (~30m): python -c “import theano; theano.test()”

然而我的机子上theano的代码并不能跑通,有一个error!!!但是在我的Ubuntu笔记本上跑并没有error.截图如下:
theanofail

根据歪过人的安装过程,发现他在debian上装的是OpenBLAS库而非libopenblas-dev.我决定试试是否是这个库的问题。OpenBLAS需要我们在Github自己下载,在装这个之前需要先安装gfortran来支持OpenBLAS.

sudo apt-get install gfortran  

然后安装OpenBLAS

git clone https://github.com/xianyi/OpenBLAS  
cd OpenBLAS  
make FC=gfortran  
sudo make PREFIX=/usr/local install 

重新测试theano,发现还是报一样的错,运行时间还多了一秒,看来问题不在这个openblas。后来一想是在读写时报的syntax error,可能就是某些读写模块有问题,以至于不能识别特定的符号。

正确的解决方法

由于报错在于pydot的读写,我又仔细看了一遍运行过程中所有的Warning,发现在一开始程序就报了一个错:

Couldn't import dot_parser, loading of dot files will not be possible.

说明是pydot不能正确载入导致的问题,看来这才是关键所在!!根据stackoverflow上的建议,这是因为pydot的版本问题导致的,安装pydot2可以解决这个问题,于是

sudo pip install pydot2

再次运行theano.test(),一开始不再报上述警告了,这个error终于解决。然而运行结束,还是有一个error,这一回是另一个了,graph.append()的问题,截图如下:
grapth.append

cannot concatenate 'str' and 'NoneType' objects

这是pydot版本太旧的问题,把旧的pydot卸载,只剩pydot2就可以了

sudo pip uninstall pydot

再运行theano.test()就可以了。test程序终于跑通了!!!!截图如下:
OK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值