Tensorflow 源码安装
注意点:
1. pip 方式安装需依据官网的配置需求:
https://tensorflow.google.cn/install/install_sources#ConfigureInstallation
(踩的坑:先安装了最新的cuda9.2和cudnn7.1.4,在pip安装tensorflow时发现只支持cuda9.0,所以需再装cuda9.0)
1) 多版本cuda切换:
参考:https://blog.csdn.net/maple2014/article/details/78574275/
- cuda安装:
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n # 如果在这之前已经安装好更高版本的显卡驱动就不需要再重复安装,如果需要重复安装就选择 yes,此外还需要关闭图形界面。
Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ]: # 一般选择默认即可,也可以选择安装在其他目录,在需要用的时候指向该目录或者使用软连接 link 到 /usr/local/cuda。
/usr/local/cuda-9.0 is not writable.
Do you wish to run the installation with 'sudo'?
(y)es/(n)o: y
Please enter your password:
Do you want to install a symbolic link at /usr/local/cuda? # 是否将安装目录通过软连接的方式 link 到 /usr/local/cuda,yes or no 都可以,取决于你是否使用 /usr/local/cuda 为默认的 cuda 目录。
(y)es/(n)o/(q)uit: n
Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: n
- cuda切换:
将~/.bashrc 或 ~/.zshrc 下与cuda相关的路径都改为 /usr/local/cuda/ 而不使用 /usr/local/cuda-8.0/ 或/usr/local/cuda-9.0/。
命令:切换到/usr/local下:stat cuda 可查看cuda当前软链接。
#在切换cuda版本时
rm -rf /usr/local/cuda#删除之前创建的软链接
sudo ln -s /usr/local/cuda-8.0/ /usr/local/cuda/
nvcc --version #查看当前 cuda 版本
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Mon_Jan_23_12:24:11_CST_2017
Cuda compilation tools, release 8.0, V8.0.62
#cuda8.0 切换到 cuda9.0
rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-9.0/ /usr/local/cuda/
nvcc --version
2. 安装tensorflow时libcublas.so.9.0缺少:
- 确保cuda和cudnn版本对应tensorflow正确。
- 终端导入tensorflow无误,pycahrm报错:
(参考:https://blog.csdn.net/weixin_40920290/article/details/80462734#%E6%B7%BB%E5%8A%A0%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E4%BD%BF%E5%85%B6%E7%94%9F%E6%95%88)
主要的原因是pycharm没有读取.bashrc文件的权限,因此需要自己手动设置.
1) 手动设置
2) 修改pycharm.sh
IFS="$(printf '\n\t')"
后面按Enter空出一行,然后添加
LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64"
3.bazel编译tensorflow源码:
参考:
https://hk.saowen.com/a/a9cc5b7c90a6f350850d8554c018f7415981fc8d470b481c90afd7573f5e12cd (官网方法)
https://hk.saowen.com/a/a9cc5b7c90a6f350850d8554c018f7415981fc8d470b481c90afd7573f5e12cd (cuda9.2英文教程)
https://www.cnblogs.com/shouhuxianjian/p/9416934.html (源码编译行为分析)
https://www.cnblogs.com/jourluohua/p/9180709.html (源码编译行为分析)
出现错误:
1. libcublas.so.9.0缺少:
https://stackoverflow.com/questions/47080760/tensorflow-fails-to-compile/47295278