前阵子在学院的集群上跑keras代码(tensorflow backend),发现装了keras之后,import keras
会报错,后来发现是安装的keras不兼容老版本的tensorflow,也可能是代码的原因。看了下集群上的tensorflow版本.....0.5
还没GPU
支持,坑爹那!!!没办法,为了跑代码,准备给集群升级tensorflow的gpu版本。
准备工作:
- cuda8.0 : cuda-repo-rhel7-8-0-local-ga2-8.0.61-1.x86_64.rpm (NVIDIA官网下载)
- cudnn5.1 : cudnn-8.0-linux-x64-v5.1.solitairetheme8 (NVIDIA官网下载)
- tensorflow : tensorflow_gpu-1.2.0rc0-cp27-none-linux_x86_64.whl (tensorflow github 上下)
大致的安装过程可以参考:https://computingnoob.wordpress.com/2016/12/19/installing-cuda-8-on-centos-7/
这里只讲下我遇到的坑。
1. cudnn5.1
最坑的是`cudnn5.1`的文件格式,`.solitairetheme8`是什么个鬼......天真的我是直接在`Windows`下用解压工具解压之后传到服务器上对应的位置的。后来装了tensorflow之后`import tensorflow`各种报错。后来查了相关资料之后发现不能这么搞...正确的打开方式是在linux下执行代码
cp cudnn-8.0-linux-x64-v5.1.solitairetheme8 cudnn-8.0-linux-x64-v5.1.tgz
tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
这样解压出来的文件才是对的。= = 这个是我通过观察windows解压的文件颜色和linux下通过上面这种方法解压得到的文件对比才发现的......机制如我(:з」∠).....
2.cuda
这里大致列下安装命令
sudo rpm -i cuda_installer_downloaded_file.rpm
sudo yum clean all
sudo yum install cuda
安装后的路径为/usr/local/cuda-8.0/
,然后把cudnn解压后的文件覆盖到这个路径下,我是直接到cudnn解压出来的cuda目录下,执行命令
cp include/* /usr/local/cuda-8.0/inlcude/
cp lib64/lib* /usr/local/cuda-8.0/lib64/
3.修改环境变量
因为我是root账号,直接vim /etc/profile
,在export PATH
那行下面加上两行代码
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
修改完之后别忘了执行 source /etc/profile
命令,不然还得重启添加的环境变量才能起作用。
4.tensorflow-gpu安装
我是直接下载的.whl文件,然后用pip install tensorflow_gpu-1.2.0rc0-cp27-none-linux_x86_64.whl
命令安装,奇葩的是...安装了之后还是报错...是numpy
相关模块导入的错误。可能是版本不匹配之类的问题,懒得想了...直接pip uninstall numpy
,pip uninstall tensorflow-gpu
(刚才安装的tensorflow
在pip list
的名字是 tensorflow-gpu
),然后pip install tensorflow_gpu-1.2.0rc0-cp27-none-linux_x86_64.whl
,这样tensorflow
安装的时候会自动安装需要的numpy
模块,安装安成后import tensorflow
,无错误提示...完美...
5.tensorflow gpu测试代码
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
然后会出提示:
image.png大功告成!!!
网友评论