关键问题
theano也可以算是被淘汰的东西了(2017发布最后版本),估计大都往tensorflow去了,偶然得到一个需要theano支持的算法,开始了漫长的作死安装。总结起来,最关键的问题就是:版本和依赖
theano有很多的依赖项,对各个依赖的版本有严格的要求,官方强推conda(但事实证明conda也没有周全,这也许很conda本身的文件有关,但总之不加考虑的直接装theano是会有问题的)
可靠的参考
在自己的环境下(win10+conda虚拟python2.7环境,ps:conda安装一定要勾选添加path,否则numpy会有坑)尝试了很久,这个方法是可行的,最后一步还应该给theano加版本号,如下
conda install theano=1.0.1
这样,在Anaconda Prompt下就可以跑通了。
>>> import numpy
>>> import theano.tensor as T
>>> from theano import function
>>> x = T.dscalar('x')
>>> y = T.dscalar('y')
>>> z = x + y
>>> f = function([x, y], z)
但是,在非Anaconda Prompt下会出现个WARNING:Using NumPy C-API based implementation for BLAS functions,解决方法看这里,加个.theanorc.txt文件,非常有效。这样之后,上面的代码在非Anaconda Prompt下就可以跑通了。
补充:在后续过程中出现can not find mkl_rt或者can not find blas之类的错误,实际上是在.theanorc.txt中的[blas]设置之后还是找不到,在安装文件夹中搜索对应的.dll文件,确定好路径,重写[blas]如下(以mlk_rt为例):
[blas]
ldflags=-LD:\Program_Files\Anaconda3\envs\python27-theano\Library\bin -lmkl_rt
还没完,如果要做下面的测试:
>>>import theano
>>>theano.test()
还要装nose和parameterized,nose用conda装就好,conda找不到parameterized,用pip装一下,现在应该不缺模块了,但还是有ERROR,和gof有关,尝试中。。。