安装GPU版本的tensorflow过程总结
安装tensorflow
安装完了后再用pip去安装tensorflow的指令如下:$ sudo pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0-cp27-none-linux_x86_64.whl
安装完成后import tensorflow时如果出现错误:ImportError: numpy.core.multiarray failed to import
这是因为numpy的版本不对,应该更新下numpy,方法如下:
先卸载之前的numpy:
sudo apt-get remove python-numpy
由于scipy依赖于numpy,所以卸载完numpy之后相当于scipy包也跟着一起被卸载了(其他依赖于numpy的包一样)
然后再用pip的方式重新安装numpy:
sudo pip install numpy
或者对numpy进行升级:
sudo pip install -U numpy
之后还得再重新安装一下scipy的包:
sudo apt-get install python-scipy
更新tensorflow
如果显示没有tf.summary.FileWriter这个函数,那么就是由于tensorflow的版本不够高导致,因为tensorflow1.0及以上才有这个函数
首先卸载之前的tensorflow:
sudo pip uninstall tensorflow
然后将tensorflow升级,在官网上下载tensorflow的whl文件,我下载的是最新的1.3版本
https://github.com/tensorflow/tensorflow
下载完输入如下指令安装即可:
sudo pip install --upgrade tensorflow_gpu-1.3.0rc0-cp27-none-linux_x86_64.whl
安装完tensorflow后import tensorflow却出现了:
ImportError: libcudnn.so.6.0 cannot open shared object file: No such file or directory
这是因为该tensorflow对应的libcudnn得是6.0版本的,所以换成6.0版的就可以了,cudnn6.0版下载链接如下:
https://www.zhihu.com/question/37082272
http://pan.baidu.com/s/1hs23HrA
安装了tensorflow1.3之后
在import tensorflow.contrib的时候出现下面这个error:
Tensorboard AttributeError: ‘module’ object has no attribute ‘cpu_count’
解决方法:
sudo pip install --upgrade psutil
psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。将这个库更新就好了
卸载tensorflow:
sudo pip uninstall tensorflow //卸载python2.7下的 sudo pip3 uninstall tensorflow //卸载python3下的
运行tf-openpose代码踩过的坑:
配置python3.4的时候首先安装pip3
sudo apt-get install python3-pip
出现requires setuptools >= 0.8 for dist-info support.这种错误时
输入以下命令即可:
sudo pip3 install setuptools --no-use-wheel --upgrade
安装python3.4版本对应的tensorflow的时候注意去官网:
https://www.tensorflow.org/install/install_linux#common_installation_problems
然后按照里面的提示安装最新1.4版本的
sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.4.0-cp34-cp34m-linux_x86_64.whl
安装python3下的opencv:
http://blog.csdn.net/qingyuanluofeng/article/details/51558270
http://blog.csdn.net/fireflychh/article/details/73970244
安装opencv的时候一直卡在下载ippicv的地方
http://blog.csdn.net/huangkangying/article/details/53406370
安装opencv出现modules/cudalegacy/src/graphcuts.cpp:120:54: error: ' NppiGraphcutState ' has not been declared
在raphcuts.cpp中将
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
改为
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
安装完tensorflow的时候出现AttributeError: type object 'NewBase' has no attribute 'is_abstract',原因是six没有更新
I solved this problem on mac osx doing this :
python
import six
Then we localize the package six:
>>> six.__file__
'/Library/Python/2.7/site-packages/six.pyc'
Then we upgrade the concerned package
sudo pip install six --upgrade --target="/Library/Python/2.7/site-packages/"
提示找不到spicy模块,但是不能用sudo apt-get install python3-spicy安装,因为这样的话,安装的是老版本的,并且这样安装了之后还会影响numpy
应该用下面的方式安装
sudo pip3 install spicy
sudo pip3 install numpy
如果用pip install安装或者卸载tensorflow不成功,甚至是安装或者卸载了python3.4下的tensorflow,那么可能是usr/local/bin下的pip软链接没有指向pip2.7,而是指向了pip3,改一下软链接就可以了
更改cudnn版本
在spyder环境下,利用GPU模式下的tesorflow跑cnn时,出现
E tensorflow/stream_executor/cuda/cuda_dnn.cc:390]Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source wascompiled with 5110 (compatibility version 5100). If using a binary install, upgrade your CuDNNlibrary to match. If building fromsources, make sure the library loaded at runtime matches a compatible versionspecified during compile configuration.
F tensorflow/core/kernels/conv_ops.cc:605]Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
这个问题
原因:大概就是cudnn版本不符合,我的是5.0,官网要求的是5.1
更新cudnn首先要下载一个cudnn的压缩包,可以官网上下,也有网盘
链接:http://pan.baidu.com/s/1slPfR8x 密码:g4fv
然后将这个压缩包解压到主文件夹,会自动命名为cuda,cuda文件夹下有include和lib64两个文件夹
1、删除原来的cudnn系统路径下的一些文件
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn* #这里*是通配符,libcudnn*指的是名字中带有libcudnn的所有文件
2、安装刚才解压的cudnn版本,在终端cd到刚解压的cuda文件夹,然后继续输入下面两个指令,这两个指令相当于把解压后的cuda文件夹下的一些文件拷到系统路径下面
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/ #这里*是通配符,lib*指的是名字中带有lib的所有文件
3、在系统路径下建立软链接(解压出来的lib64下面有3个so文件。分别是 libcudnn.so 和 libcudnn.so.5以及 libcudnn.so.5.1.3文件。 并且这3个点so文件大小都一样。其实都是软连接!libcudnn.so链接到libcudnn.so.5,而libcudnn.so.5.又链接到libcudnn.so.5.1.3。 真正的文件只有libcudnn.so.5.1.3)
cd /usr/local/cuda/lib64
sudo chmod +r libcudnn.so.5.1.10
sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig