花费了三天时间,太辛苦了。
首先剧透:有很多人说theano不支持python3.6,我试过了,是的,我失败了,如果各位不信也可以再试试。
同时我下载了anaconda python2.7,然而,我还是失败了。
是的,我放弃了theano的安装,太挫败了,我可能会用cpu版本跑一跑论文开源代码。
但是,我还是要写一写我的安装流程,可能是我的电脑出了问题,各位要是有人成功,‘家祭无忘告乃翁’
主体内容直接来自于 https://www.cnblogs.com/XUEYEYU/p/10914689.html#4431269,我对于自己所遇到的问题在进行了说明。
1
pip install theano
安装theano
如果只用cpu,在这里就ok了
2,更改配置文件
参考
http://deeplearning.net/software/theano/tutorial/using_gpu.html#gpuarray
在当前用户根目录下新建文件
linux自然是在~/
windows 是在系统盘里users(用户)目录下,当前用户名的目录下
新建 .theanorc, 注意有个点
在windows上必须有文件名,故.theanorc.txt也可
然后在新建的文件里输入
[global]
device = cuda
floatX = float32
保存后即可调用gpu
如果进行了搜索,可以发现有各种五花八门的设置方法,由于我没有成功过,并不清楚哪种是对的,大家可以去github.theano.issues
搜索,引用中的网站也是官方的内容,但似乎内容有点旧了。
这时在python里尝试使用theano
import theano
报错。说没有安装pygpu或者版本过低这就需要执行第三步
这时进行import
应该是没有问题的,如果安装遇到了问题可以进行删除重新安装或者麻烦自行谷歌,在import
成功后不要高兴的太早,引用中所说的版本过低其实直接由warning打印:
#我的笔记本警告
WARNING (theano.configdefaults): g++ not available,
#我的笔记本缺少太多东西,服务器里会发出警告,大致如下
Warning:pygpu version...
那就安呗,再接再厉,你可以的!
3
下载libgpuarray
libgpuarray Required for GPU/CPU code generation on CUDA and OpenCL
devices (see: GpuArray Backend). 下载https://github.com/Theano/libgpuarray/releases
然后解压我是在windows装,相对来说比较麻烦
可能需要vsstudio和cmake
下载cmake
https://cmake.org/download/
cmake有cmakegui方便使用
这里注意到visual studio是必须的,我原先为vs2013版本,但是会提醒visual C++ 14.0 is requeired
,安装visual c++ 14.0是没用的,必须安上visual studio 2015(14.0)
才行,这里再说一句,我只安装了要求的版本,我不知道高级版本支不支持。
visual studio各个版本的下载连接
4
打开cmakegui
点击第一行的browse source 。。。 选择刚才解压的libgpuarray目录下
然后点击下方的configure
这里选择一会要编译的工具。根据自己安装的版本选择。这里选择架构
剩下的可默认,也可指定编译器。然后点击finish就会自动configure
然后点击configure旁边的generate
然后点击open Project
就会打开工程
64位机选择X64即可
注意,Cmake_INstall_prefix 是表示安装在哪里一定要注意后面会用到
这里选择 all_build右键重新生成
有概率会编译失败,重新生成即可
如果有错误可以看输出的情况再次考虑
比如mako包没装,就需要pip install mako
注意这里mako安装包不会直接提示,而只是简单的进行报错,要记得点击错误就会看到错误信息,使用pip mako
即可解决
5
完成后,进入到之前解压的libgpuarray目录里
然后在cmd里打开
python setup.py build
在这里如果没有安装正确的visual studio 2015(14.0)
会报错
Visual C++ 14.0 is required. Please...
完成build,在使用指令python setup.py install
在这里 我出现了 gpuarray.lib的问题,然而这个文件就在libgpuarray-0.7.6\lib\Release下
我把这个文件拷出到上一级目录,也就是libgpuarray-0.7.6\lib下,再次build就不出错了
我下载的libgpuarray并没有release这个文件夹,只有Debug文件夹,把其中后缀为.lib
拉到上一级目录就没有报错了。
安装完成后,可以看到在
Python37\Lib\site-packages 目录里有了 pygpu的包
这时,在python里import pygpu就不会报错了
是的,我看到了我的目录中有了pygpu包,但是import的时候…报错了。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\python36_\lib\site-packages\pygpu-0.7.6-py3.6-win-amd64.egg\pygpu\__init__.py", line 7, in <module>
from . import gpuarray, elemwise, reduction
ImportError: DLL load failed: 找不到指定的模块。
到这里其实我就可以结束了…
但是 参考文的作者还没结束
6
打开安装的libgpuarray目录,发现有bin,include,lib三个库
将这几个文件拷贝到或者移动到
xxx\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\x86_64-w64-mingw32
文件夹中,也就是Gcc或者G++等 mingww64编译器的include库
是的,这里我先去解压文件里去找了,里面没有include
这个文件夹
但是,如果你还记得上面有一句十分重要的话
Cmake_INstall_prefix 是表示安装在哪里一定要注意后面会用到
在排除各种问题后,我找到了这句话,好兴奋啊!
啊啊啊啊啊啊!
F**K!
我的C:\Program Files
或者C:\Program Files(x86)
都没有相应的安装文件
呵呵呵呵呵呵呵呵呵呵呵呵
但是不能气馁是不是,于是我又去尝试anaconda方法,我也不知道自己是多辣鸡了
总之结果又是
呵呵呵呵呵呵呵呵呵呵呵呵
theano你失去我了!
上面就是我安装theano的经历,但是如果有人在win10下python3.6版本成功安装了theano,十分希望你能分享给我你的方法,或者告诉我上述步骤我哪里做错了。
谢谢各位!
Live long and prosper