安装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模式下的tesorflowcnn时,出现

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

然后将这个压缩包解压到主文件夹,会自动命名为cudacuda文件夹下有includelib64两个文件夹

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下面有3so文件。分别是 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

posted @ 2017-06-10 23:06  YYYYQQQQ  阅读(13294)  评论(0编辑  收藏  举报