Ubuntu下tensorflow深度学习——环境篇(python)

本文默认环境为ubuntu18.04.4(真机非虚拟机),NVIDIA显卡(本机GTX1050Ti),opencv4.2。由于项目原因,我需要用python训练h5模型,再将其转换为pb模型,最后由tensorflow的C++接口在我的cpp程序中调用。所以,我需要配置的环境为:python-tensorflow,tensorflow的C++接口(需对源文件进行编译),anacoda虚拟环境。
由于python-tensorflow与C++的ternsorflow比较独立,所以先安装哪个都不影响,注意python的tensorflow最好安装1.x版本,因为2.x版本转换的pb文件C++接口调用会出现一些问题。
Python的tensorflow安装需要先配置以下一些环境:
1、cuda
2、cuDNN
3、Anaconda

tensorflow各版本对应的cuda与cuDNN如图所示:
在这里插入图片描述

这在tensorflow的官网的安装界面。
我安装的是tensorflow1.14,所以需要cuda10,cuDAA7.4。
1、在安装cuda之前,我们还要安装显卡驱动
(1)Ubuntu下查看Nvidia显卡的详细信息:
nvidia-smi
如果该命令没有输出,那么我们就应该安装NVIDIA的显卡驱动
(2)禁用nouveau并重启(安装Nvidia显卡的官方驱动和系统自带的nouveau驱动冲突)

`lsmod | grep nouveau
#没有lsmod就安装
apt install module-init-tools
#打开禁用列表
sudo gedit /etc/modprobe.d/blacklist.conf
#在打开文本的最后一行添加:
blacklist nouveau
options nouveau modeset=0
#更新,重启
sudo update-initramfs -u
reboot
#再次查看是否禁用nouveau
lsmod | grep nouveau

(3)安装gcc与删除旧的NVIDIA

sudo apt install build-essential
#删除旧的NVIDIA驱动:
sudo apt-get remove nvidia-*
sudo apt-get autoremove
#更新系统软件仓库列表
sudo apt-get update

(4)使用下面命令查看系统推荐哪个版本的N卡驱动

ubuntu-drivers devices

qyh@qyh-mas$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:1d.0/0000:3c:00.0 ==
modalias : pci:v000010DEd0000134Dsv000017AAsd000039C8bc03sc02i00
vendor   : NVIDIA Corporation
model    : GM108M [GeForce 940MX]
driver   : nvidia-driver-410 - third-party free
driver   : nvidia-driver-415 - third-party free
driver   : nvidia-driver-390 - third-party free.
driver   : nvidia-driver-430 - third-party free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin
#在上面这些输出中可以看到recommended关键词,说明系统推荐安装的N卡驱动是"nvidia-driver-430"`

(5)选择你看到推荐版本安装,本例使用nvidia-driver-430,然后安装几个必要组件,命令如下

sudo apt-get install nvidia-settings nvidia-driver-430 nvidia-prime
sudo ubuntu-drivers autoinstal

(6)安装双显卡切换指示器

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install prime-indicator

(7)重启

sudo reboot 

新启动后会在右上角看到一个显卡指示器,默认情况下是Nvidia图标,说明现在使用的是N卡,点击这个图标选择"Quick switch graphics…",按下确认后会自动重启桌面,此时就会切换到Intel显卡了,图标也变成了Intel。
大家可以尝试着在两个显卡之间切换,并使用下面的命令查看是否切换成功,然后测试其性能
切换到Intel卡后,查看N卡是否关闭,如果N卡末尾是(rev ff),则表示成功关闭了N卡,现在使用的是I卡,如果末尾不是ff,则说明现在使用的是N卡

lspci | grep VGA

00:02.0 VGA compatible controller: Intel Corporation .... (rev 09)

01:00.0 VGA compatible controller: NVIDIA Corporation .... (rev ff)

2、Cuda10进入官网:https://developer.nvidia.com/cuda-10.0-download-archive 下载安装
在这里插入图片描述

如果下载过慢,可以使用github代下载网站进行下载:http://g.widora.cn/ ,下载完成后根据官网说明进行安装。

sudo sh cuda_10.0.130_410.48_linux.run

然后按enter直至声明结束
因为驱动已经独立安装,所以不安装,选择如下:
在这里插入图片描述

添加环境变量:

gedit ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export PATH=$PATH:/usr/local/cuda-10.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0
#保存并退出
#应用:
source ~/.bashrc
测试是否安装成功:
cd /usr/local/cuda/samples/1_Utilities/deviceQuery 
sudo make
./deviceQuery

在这里插入图片描述

3、安装cuDNN:进入官网:https://developer.nvidia.com/cudnn 注册登陆并下载对应的版本:
在这里插入图片描述

要下载cuDNN Library for Linux,下载完成后解压进入cudnn目录,看到cuda文件夹,进入终端输入:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ 
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ 
sudo chmod a+r /usr/local/cuda/include/cudnn.h 
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
在终端查看CUDNN版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

在这里插入图片描述

注意:如果运行tensorflow-gpu报错 ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory
终端里面执行

sudo ln -sf /usr/local/cuda-10.0/lib64/libcudnn.so.7.4.2 /usr/local/cuda-10.0/lib64/libcudnn.so.7
 #libcudnn.so.7.4.2和libcudnn.so.7理论上只有一个
sudo ldconfig /usr/local/cuda-10.0/lib64

4、安装anaconda3过程比较简单,参考博客:https://blog.csdn.net/qq_15192373/article/details/81091098 即可,在此不多做赘述。

#在ubuntu中的anaconda新建一个python3.6的环境
conda create -n tf2 python=3.6
#然后进入该虚拟环境:
source activate tensorflow
#退出虚拟环境:
source deactivate

5、在虚拟环境安装tensorflow-gpu:

pip3 --default-timeout=100 install tensorflow-gpu==1.14.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

其中 --default-timeout=100为最大下载延迟时间(不这样很容易timed out),-i https://pypi.tuna.tsinghua.edu.cn/simple为配置国内源,这样下载会快很多。
安装keras:keras与tensorflow的版本对应关系如下图所示:
在这里插入图片描述

pip3 --default-timeout=100 install keras==2.2.4 -i https://pypi.tuna.tsinghua.edu.cn/simple

6、测试是否安装成功
进入pycharm,如果没有也可直接用终端输入:

import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

a = tf.constant([1.2, 2.3, 3.6], shape=[3], name='a')
b = tf.constant([1.2, 2.3, 3.6], shape=[3], name='b')

c = a + b
session = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print(session.run(c))
print(tf.version.VERSION)

gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
cpus = tf.config.experimental.list_physical_devices(device_type='CPU')
print(gpus, cpus)

输出结果:
在这里插入图片描述

表示tensorflow-gpu安装成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值