ubuntu下配置anaconda和tensorflow常见问题的解决方案
实验速度遇到了瓶颈,于是申请换了显卡,gpu从gtx560更新到gtx980ti,硬盘从1T的机械硬盘换成了256g的固态硬盘,内存也从8g变成了32g,准备体验一波飞速训练的网络了。
本来以为配置tensorflow已经是轻车熟路了,然而这次重新装系统,重新配环境还是遇到了不少问题,记录在这里以后参考。
ubuntu和cuda toolkit的安装很简单,需要注意tensorflow官网上要求的toolkit版本和cudnn的版本。
tensorflow官网的谷歌版本可访问: tensorflow.google.cn
anaconda的安装按官网上的要求安装,anaconda-navigator是一个很好用的东西。
tensorflow的安装卡了我半天时间,主要是记录这里的常见问题。
-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------
首先创建anaconda下的tensorflow环境
conda create -n tensorflow pip python=2.7这里根据python版本选择2.7或者3.6
**source activate tensorflow
因为要使用gpu版本所以链接是
https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.7.0-cp27-none-linux_x86_64.whl
然而执行这个命令时,会出现 File is not a zip file 的bug
出现这个问题的原因是网络不稳定,下载时会中断,因此程序会判断你的文件不完整而拒绝install
解决方法是先将文件完整地下载到本地,再在本地进行安装
于是,首先执行wget https://storage.google...x86_64.whl
再pip install时把地址换成下载好的本地地址即可。 wget是个好东西,各种稳定下载大型文件,对于一些网络不稳定的国外数据非常适用
下载好后tensorflow已经可以用python的命令行执行了
使用前先要source activate tensorflow
打开python命令行
$python
>>>import tensorflow as tf
已经不会报错了
但是,编程是肯定不能用命令行的,要用spyder
在这个环境下打开spyder
同样import tensorflow as tf
会报错 No module named tensorflow
为何,因为这里调用的spyder是不在tensorflow环境env下的spyder
参考:
https://stackoverflow.com/questions/30170468/how-to-run-spyder-in-virtual-environment
tensorflow环境下没有spyder,所以需要在这个环境装一个spyder
conda install -n tensorflow spyder
装好后依然要在source activate tensorflow即tensorflow的环境下打开spyder
我的电脑会出现spyder界面全是黑色的bug
QOpenGLShaderProgram: could not create shader program
这个问题是第一次遇到,google了好久找到了两种看起来有理有据的解决方法,我只试了第一种:
参考:
https://github.com/spyder-ide/spyder/issues/3226
在tensorflow环境下的spyder里找到start.py
这是我的位置,提供参考:
在里面加上一个依赖:
from OpenGL import GL
-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------
然后为这个依赖装上依赖的库
(tensorflow) [email protected]:~$ pip install pyopengl
安装好后再次打开spyder,就能正常运行了
尝试跑一下tensorflow官网上的cnn识别mnist
顺利执行,速度也比原来快了一大截,可喜可贺