ubuntu系统安装tensorfflow(显卡驱动+CUDA+cuDNN)

安装tensorflow(CPU)

打开终端,输入如下命令即可:

$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl

安装tensorflow(GPU)

系统:Ubuntu16.04
显卡:1060Ti
CUDA版本:CUDA ToolKit 9.0 + update patch *4
cuDNN版本:cuDNN v7.3 for CUDA 9.0
Tensorflow版本:Tensorflow-gpu1.12

1  安装显卡驱动

查看显卡型号和推荐的显卡驱动

ubuntu-drivers devices

从输出的信息看到推荐的是nvidia-driver-384的驱动,因此安装nvidia-384驱动。

注意:Tensorflow1.12 CUDA9.0 最低要求384以上版本的驱动

安装nvidia-384版本驱动

sudo apt-get purge nvidia*                                          # 将系统中存在的nvidia驱动全部卸载掉
sudo add-apt-repository ppa:graphics-drivers/ppa     # 添加ppa源并更新
sudo apt-get update
sudo apt-get install nvidia-384 nvidia-settings nvidia-prime               # 安装nvidia-384版本

注意:安装完成后要重启系统

查看是否安装成功

lsmod | grep nvidia            #执行后有输出

lsmod | grep nouveau        #执行后无输出

nvidia-smi                          #执行后会输出一个表格

注意:如果重启后无法进入图形界面

可以尝试CTRL+ALT+F1进入命令行界面,输入用户名和密码后清除原驱动

sudo apt-get purge nvidia*                                        

出现此问题最大的可能原因是安装的Nvidia驱动和系统或者硬件有不兼容,解决方法是将Ubuntu16.04自带的第三方显卡驱动Nouveau禁用。

编辑文件

blacklist.conf

sudo vim /etc/modprobe.d/blacklist.conf

若未安装vim则sudo apt-get install vim安装或使用vi

在文件最后部分插入以下两行内容

blacklist nouveau

options nouveau modeset=0

更新系统

sudo update-initramfs -u

reboot


相关问题可以参考 https://blog.csdn.net/m0_37851906/article/details/81588885

2  CUDA9.0的安装 

因目前最新的Tensorflow1.12暂时只支持CUDA9.0。提供AB两种方法,事实证明run的方式更稳,即B方法。

A deb

Nvidia官网:     https://developer.nvidia.com/cuda-90-download-archive

下载:

cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb (和 4个补丁文件)

注意:不安装上述补丁对后续的安装也应该没多大影响,但装上后对系统运行的性能可能有所提升

按照官网提示输入命令即可

对命令含义想有所了解可以到这里去看一下:https://www.jianshu.com/p/6432015c52a6

注意:第2条命令如果报错无法找到文件,只要更改路径使之能读取最后的pub文件即可

 如需安装补丁,执行以下命令:

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local-cublas-performance-update_1.0-1_amd64.deb   
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local-cublas-performance-update-2_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local-cublas-performance-update-3_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1604-9-0-176-local-patch-4_1.0-1_amd64.deb
sudo apt-get update
sudo apt-get upgrade cuda

设置环境变量 

运行如下命令使得环境变量生效

source ~/.bashrc

在 ~/.bashrc中设置环境变量:

export PATH=/usr/local/cuda-9.0/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export CUDA_HOME=/usr/local/cuda

测试环境变量是否生效,可以运行一下nvidia的查看CUDA版本的命令(以下两条都可以,作用相同):

nvcc --version

nvcc -V

显示如下表示生效: 

如果发现显示的版本并不是安装的版本而是比如7.5版本:

sudo apt-get autoremove nvidia-cuda-toolkit      # 卸载7.5版本

 如果想卸载某个自己装错了的版本,比如装成了8.0:

sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl

B run

去官网下载.run文件

 

下载完成之后,给文件赋予执行权限:

chmod +x cuda_10.0.130_410.48_linux.run

执行安装包,开始安装: 

./cuda_10.0.130_410.48_linux.run

开始安装之后,需要阅读说明,可以使用Ctrl + C直接阅读完成,或者使用空格键慢慢阅读。然后进行配置,我这里说明一下: 

(是否同意条款,必须同意才能继续安装)
accept/decline/quit: accept

(这里不要安装驱动,因为已经安装最新的驱动了,否则可能会安装旧版本的显卡驱动,导致重复登录的情况)
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: n

Install the CUDA 10.0 Toolkit?(是否安装CUDA 10 ,这里必须要安装)
(y)es/(n)o/(q)uit: y

Enter Toolkit Location(安装路径,使用默认,直接回车就行)
 [ default is /usr/local/cuda-10.0 ]:  

Do you want to install a symbolic link at /usr/local/cuda?(同意创建软链接)
(y)es/(n)o/(q)uit: y

Install the CUDA 10.0 Samples?(不用安装测试,本身就有了)
(y)es/(n)o/(q)uit: n

Installing the CUDA Toolkit in /usr/local/cuda-10.0 ...(开始安装)


查看/usr/local/cuda/bin下是否有nvcc可执行程序,如果没有说明cuda没有正常安装,需要重新安装,如果有,进入下一步

接下来配置他们的环境变量

在vim ~/.bashrc的最后加上以下配置信息:

export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}

最后使用命令source ~/.bashrc使它生效。 

重启后使用nvcc -V 查看CUDA版本是否正确。

3  cuDNN7.3的安装

官网下载 https://developer.nvidia.com/rdp/cudnn-archive

有两种方式,具体参考 https://blog.csdn.net/dudu815110/article/details/88592558

这里只给出Tar File形式的安装

选择下载cuDNN v7.3 for CUDA9.0版本(子项选择cuDNN v7.3 Library for Linux)

安装包为cudnn-9.0-linux-x64-v7.3.0.29tgz

解压

tar -zxvf cudnn-9.0-linux-x64-v7.3.0.29.tgz         #在当前目录下会生成cuda目录

 将cudnn.h文件和lib文件拷贝到CUDA的安装目录下

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d

注意:很多教程上面第二行命令中没有 -d,此处一定不能少,否则会提示.so不是symbol link 

赋予执行权限 

sudo chmod a+x /usr/local/cuda/include/cudnn.h
sudo chmod a+x /usr/local/cuda/lib64/libcudnn*

经过上述步骤,就基本配置好了系统以及CUDA环境,下面我们就可以安装配置Tensorflow框架了

4 Tensorflow-1.12的安装 

Python开发环境配置

如果之前没有装过Python可参考 https://blog.csdn.net/qq_40311292/article/details/97367227

首先,确保系统中安装了如下Python环境:python3, pip3,以及 virtualenv,在命令行查询相应的版本:

python3 --version
pip3 --version
virtualenv --version

如果提示没有安装,则用如下命令安装:

sudo apt update
sudo apt install python3-dev python3-pip
sudo pip3 install -U virtualenv 

(可跳过)创建Python虚拟环境 

python的虚拟环境用来隔离系统和相应的安装包,这非常有利于不同版本之间的隔离,总之好处多多,尤其是不同的项目使用不同的软件版本时,能避免令人头痛的版本混乱问题,强烈建议安装虚拟环境。安装命令如下:

virtualenv --system-site-packages -p python3 ./venv

上述命令的意思是创建一个虚拟环境(该虚拟环境文件被放置到venv目录下),该环境使用python3,并且将python3下已经安装的包都复制过来(–system-site-packages),如果选择不复制python3下已经安装的包,则使用–no-site-packages,这样,已经安装到系统python环境中的所有第三方包都不会复制过来,这样就会得到一个不带任何第三方包的“干净”的python运行环境。这里我们选择复制python3下已经安装的软件包。 

如果要使用,则用下述命令激活该虚拟环境

source ./venv/bin/activate

如果环境激活,则shell命令行前面会出现(venv)。
在该虚拟环境下安装任何软件包都不会影响系统python环境。如果要退出该虚拟环境,则在命令行执行即下述命令可退出该虚拟环境。 

deactivate

建立软链接
为了使用方便,我们可以建立一个软链接,假设我们的虚拟环境安装的绝对路径是/home/scek/Project/venv/,则激活的shell命令的绝对路径是/home/scek/Project/venv/bin/activate。一般我们启动终端的时候,会默认在/home/scek/目录下,在这个目录下建立软链接,链接名称假设为venv,则用下面命令:

ln -s ./Project/venv/bin/activate  venv

建立软链接之后,一启动终端,就可以直接输入: 

source venv

即可激活虚拟环境,对比原始命令可以说十分方便了 

source ./Project/venv/bin/activate

 安装Tensorflow

安装很简单,执行如下命令即可:

sudo pip3 install tensorflow-gpu

上述命令会安装最新的release版本(目是1.12版本),如果要指定安装版本,则采用如下命令

sudo pip3 install tensorflow-gpu==1.12

注意:这里如果前面在安装pip顺便根据提示更新了pip版本,很可能又踩到一个坑,出现如下报错:

这是因为将pip更新为10.0.0后库里面的函数有所变动造成这个问题。 解决方法如下:

sudo gedit /usr/bin/pip

将 from pip import main 改为 from pip._internal import main 

保存即可。   (具体参考 https://blog.csdn.net/zong596568821xp/article/details/80410416

测试安装是否成功

 python -c "import tensorflow as tf; print(tf.__version__)"

如果安装成功,则会输出当前的版本。 

另一个坑:libcublas.so.9.0: cannot open shared object file: No such file or directory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值