安装tensorflow-gpu

系统环境

  • 操作系统:Linux Ubuntu 18.04 LTS
  • python版本: 3.6.9
  • GPU:NAVIDIA GeForce 940MX

注意!

  • 在安装tensorflow和cuda之前一定要注意版本的对应,具体对应关系在经过测试的构建配置(本人踩过的坑,这里使用的版本仅仅做示例,要改成对应的版本)
  • cuda选择版本安装时,一定要选择local版本,不要选择network版本

安装cuda

参考: Ubuntu16.04+CUDA9.0 安装(全网最简便快速安装,测试成功)

  • 下载deb安装包
    在英伟达官网下载cuda,选择适合的版本,我选择的是10.1版,接下来根据自己的系统一步一步的点:
    选区_127.png

  • 安装cuda
    代码在官网已经给出,依次执行即可,时间有些长,复制官网的代码来执行

    1
    2
    3
    4
    sudo dpkg -i cuda-repo-ubuntu1804_10.1.105-1_amd64.deb
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
    sudo apt-get update
    sudo apt-get install cuda

    安装好后可以用命令sudo apt autoremove卸载下载完成后不再需要的软件包(非必须)

  • 配置环境变量

打开/etc/profile,记得要有修改权限sudo vim /etc/profile,添加:

1
2
export  PATH=/usr/local/cuda-11.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH

不确定路径的话ls找一找就好
其实这里挺奇怪的,我官网上点的是10.1版本,可这里怎么变成11.0了。可能是因为我使用的网络安装,添加源后使用的apt去下载,这时下载的会时默认的最新版。
最后source /etc/profile更新配置
tips:有的人会在~/.bashrc中配置终端的颜色,而执行source /etc/profile后,hostname可能会变成白色,此时,只用再执行source ~/.bashrc即可恢复(导入的环境变量依然有效)

  • 验证安装
    执行nvcc -V验证安装是否成功:
    选区_129.png

安装cudnn

参考 CUDA与cuDNN
官网上下载https://developer.nvidia.com/rdp/cudnn-download,选择之前下载的cuda对应版本即可,但要事先注册账户和填一个调查问卷,照着流程走即可
选区_130.png
选区_131.png
下载Library,我选择第一个
下载完后,解压,里边有include,lib64两个文件夹,复制到之前下载的cuda对应的目录中即可

1
2
3
4
5
6
7
cd ~/下载
tar -xvf cudnn-11.0-linux-x64-v8.0.3.33.tgz
cd cudnn-11.0-linux-x64-v8.0.3.33/cuda
sudo cp include/cudnn.h /usr/local/cuda-11.0/include/
sudo cp lib64/libcudnn* /usr/local/cuda-11.0/lib64/
sudo chmod a+r /usr/local/cuda-11.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-11.0/lib64/libcudnn*

这样就安装完了
其实在找cuda文件夹时会发现/usr/local下有cudacuda-11.0
但通过ls -l命令列出后可以发现这是个链接,所以不用担心,复制到cuda或者cuda-11.0里都是有效的
选区_134.png

安装tensorflow-gpu

终端中输入:

1
pip install tensorflow-gpu==2.3.0

==后写合适的版本,tensorflow-gpu 2.3.0对应的cuda是10.1,所以我这里发生了报错:
选区_135.png

通过降低cuda版本,程序问题解决,安装成功,可以参考这篇文章tensorflow-gpu报错“Could not load dynamic library ‘libcudart.so.10.1’”
选区_148.png