Anaconda、TensorFlow安装及环境配置

1.Anaconda下载安装
Anaconda是开源的Python发行版本,是一个包管理器和虚拟环境管理器。
进入官网下载相应版本,切换到下载文件所在目录执行以下命令。

	sudo bash ***.sh(下载文件)
	conda --verison检测是否安装成功。
	若显示conda 命令未找到,则执行下面这条指令:
	vim ~/.bashrc
	在最后面添加 export PATH="/home/Jackson/anaconda3/bin:$PATH"
	保存退出后执行 source ~/.bashrc
	
	#若出现NotWritableError:The current user does not have write permissions to required path.(anaconda3文件夹带锁)
	#执行:
	sudo chown -R  username anaconda3(username为用户名)
	注意:~/目录下的隐藏文件也需要赋予权限给当前用户

常用指令

conda --version(查看conda版本)
conda create -n 虚拟环境名 python=3.6(创建虚拟环境)
conda activate 虚拟环境名(激活虚拟环境)
conda deactivate(退出当前环境)
conda env list(列出虚拟环境)
conda remove -n 虚拟环境名 --all(删除虚拟环境)
conda list(列出当前环境安装的包)
conda env export > environment.yaml(将虚拟环境导出为一个YAML配置文件)
conda env create -f environment.yaml
conda create -n 虚拟环境名 --clone clone的环境名

2.安装TensorFlow

2.1安装及测试

conda --version(查看conda版本)
python --version(查看python版本)

pip install tensorflow==1.13.1(CPU版本)
#查看版本信息
import tensorflow as tf
version = tf.__version__
print(version)

pip install tensorflow-gpu==1.13.1(GPU版本)	或
pip install tensorflow-gpu==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/

常用国内镜像源:
http://mirrors.aliyun.com/pypi/simple/
https://pypi.mirrors.ustc.edu.cn/simple/
http://pypi.douban.com/simple/

GPU版本需要安装cudatoolkit与cudnn包

2.2 显卡、显卡驱动、CUDA和cuDNN

显卡: 深度学习需要大量计算,GPU支持并行计算,可提高计算效率
驱动: 没有显卡驱动,就无法识别GPU硬件,也就无法调用其计算资源
CUDA:cudatoolkit是NVIDIA推出的用于自身GPU的并行计算框架,只有安装这个框架以后才能进行复杂的并行计算
cuDNN: CUDA Deep Neural Network library,是NVIDIA打造的针对深度神经网络的GPU加速库。

2.3TensorFlow版本对应python、cuDNN、CUDA

tensorflow-2.4.0				3.6-3.8				8.0			11.0
tensorflow-2.3.0 				3.5-3.8				7.6			10.1
tensorflow-2.2.0				3.5-3.8				7.6			10.1
tensorflow-2.1.0				2.7,3.5-3.7			7.6			10.1
tensorflow-2.0.0				2.7,3.3-3.7			7.4			10.0
tensorflow-gpu-1.15.0			2.7,3.3-3.7			7.4			10.0
tensorflow-gpu-1.14.0			2.7,3.3-3.7			7.4			10.0
tensorflow-gpu-1.13.1			2.7,3.3-3.7			7.4			10.0
tensorflow-gpu-1.12.0			2.7,3.3-3.6			7			9		

3. CUDA下载安装

3.1查看当前CUDA版本

	CUDA和cuDNN版本要匹配
	法1.
	nvcc -V
	法2.
	cd /usr/local/cuda(切换到此路径下)
	ls(查看该路径下包含的文件)
	cat version.txt(查看CUDA版本)

3.2安装环境检查

uname -a(显示电脑及操作系统信息)
cat /proc/version(显示运行的内核版本信息)
cat /etc/issue(显示发行版本信息)
lspci | grep -i nvidia(查看nvidia显卡信息)
gcc --version(查看gcc版本)
lsmod | grep nouveau(检查nouveau是否被禁用,无输出则被禁用,正确安装NVIDIA驱动无输出)

3.3NVIDIA驱动下载安装
去NVIDIA官网,下载所装显卡的驱动版本,驱动文件
为.run文件,然后使用如下命令安装:

#安装前禁用nouveau,这个是Ubuntu默认用的开源驱动
sudo vim /etc/modprobe.d/blacklist.conf
#在文末添加
blacklist nouveau
options nouveau modeset=0
#更新
sudo update-initramfs -u
reboot
#检查是否禁用成功
lsmod | grep nouveau	#无输出表示禁用成功

#安装桌面管理环境
sudo apt-get install lightdm 或
sudo apt-get install gdm3(Ubuntu默认使用的是gdm3)

#如需卸载原有驱动在安装新驱动,可执行如下指令:
#关闭图形处理界面
sudo service gdm3 stop 或
sudo service lightdm stop	#根据个人情况选择停止图像界面,以便进入命令行模式

#Ctrl + Alt + F1进入命令行模式,卸载原有驱动
sudo apt-get  --purge remove nvidia*	#--purge表示同时卸载安装包和配置文件
#卸载完成后执行:
reboot
#重启后默认进入图形界面,若没有进入,则执行下面语句
sudo service gdm3 start 或
sudo service lightdm start  重新进入图形界面

#检测电脑NVIDIA显卡型号和推荐的显卡驱动型号
ubuntu-drivers devices

sudo chmod a+x ***.run

#安装驱动之前先安装gcc、g++、make等依赖
sudo apt-get install gcc g++ make

#台式机建议不加-no-opengl-files这项参数
sudo ./***.run - no-x-check -no-nouveau-check -no-opengl-files

nvidia-smi(安装完成后使用该指令查看)

如果后续使用过程中出现如下错误:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
则说明系统内核升级了,导致新版本内核和原来的显卡驱动不匹配,解决办法如下:

#查看驱动版本号,可以看到nvidia-460.84文件夹,460.84表示驱动版本号,这个不同设备版本号会不同
ll /usr/src
#然后执行以下两条指令
sudo apt-get install dkms
sudo dkms install -m nvidia -v 460.84
#最后检查问题是否解决,如果可以显示出信息,则问题已解决
nvidia-smi

3.4 CUDA和cudatoolkit

NIVDIA官方提供安装的cudatoolkit包含了进行CUDA相关程序开发的编译、调试等过程相关的所有组件。
但对于各类深度学习框架而言,如TensorFlow、Pytorch,在使用GPU时只需要动态链接库的支持即可。
例如利用Anaconda安装Pytorch时,会自动为用户安装cudatoolkit,其中包含程序调用GPU时所要依赖的库。只要系统上存在兼容的NVIDIA driver,程序就可以直接运行,不需要NVIDIA官方提供的CUDA Toolkit。

3.5CUDA下载
对于1.13.1-2.0.0版本的TensorFlow,进入官网下载CUDA10.0。

#建议采用run文件方式进行安装,deb文件的话默认会再次安装显卡驱动,若电脑之前已经安装驱动,则会出现问题。
#可以由图形界面进入命令行模式后,删除驱动及相关配置文件

#先赋予run文件可执行权限
sudo chmod +x cuda_10.0.130_410.48_linux.run
sudo bash cuda_10.0.130_410.48_linux.run

遇到下面这条指令时,表示是否要安装驱动,此时要选择n,即不再重复安装显卡驱动
Install NVIDIA Accelerated Graphics Driver for Linux-x86*****
其他的选择y及默认路径即可

#	卸载cuda
#由图形界面模式进入命令行模式后执行
sudo apt-get --purge remove cuda*

安装结束后,执行以下指令配置变量:

可能会遇到下述问题:

The command could not be located because'/usr/bin' is not included in the PATH environment variable
因为当前/usr/bin的路径不在系统环境中,因此/usr/bin下的命令也无法使用,比如vi、sudo.

解决办法:
su
vim ~/.bashrc
export PATH=/usr/bin:$PATH(将/usr/bin写入环境变量)

没有上述问题则执行以下指令:

sudo gedit ~/.bashrc
#此处写的时cuda(软连接),而不是具体的cuda版本,是因为若要安装多个版本的cuda时,不需要在修改环境变量
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
export CUDA_HOME=/usr/local/cuda:$CUDA_HOME
命令行执行:
source ~/.bashrc(使环境变量生效)
注:修改/etc/profile里的内容,相当于系统环境变量,只需更改自己用户的环境变量配置文件(~/.bashrc)即可,多个用户之间可以保持独立性。

3.6多版本cuda安装并建立软连接(系统之前已安装好cuda-10.2, 现在再安装cuda-10.0)
注意,安装其他cuda版本是,遇到是否建立软连接选项时,选择n,否则会系统会自动指向最新安装的版本。

软链接(soft link)也成为符号链接(symbol link),类似于Windows系统中的快捷方式,通过访问这个软连接,可以准确定位到对应的实体文件。

#ln命令,该指令的作用是为一个文件在不同的位置建立一个同步的链接
#ln -s 源文件 目标文件,建立软连接并不会消耗磁盘空间,而硬链接是会占用磁盘空间的

cd /usr/local
ls
#可以看到安装好的cuda各个版本(cuda-10.0和cuda-10.2)以及建立好的软连接cuda:
cuda cuda-10.0 cuda-10.2
#其中cuda是建立的软连接,指向当前正在使用的cuda版本
#查看当前指向的cuda版本,此时指向的是第一次安装好的cuda版本,即cuda-10.2
stat cuda

#删除之前的软连接
cd /usr/local
sudo rm -rf cuda
#重新建立软连接
sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda
#再次查看当前指向的cuda版本,此时指向的是第二次安装好的cuda版本,即cuda-10.0
stat cuda

4.cuDNN下载安装

对于1.13.1-2.0.0版本的TensorFlow,进入官网下载cuDNN7。

打开终端输入解压指令

sudo tar -zxvf cudnn-10.0-linux-x64-v7.6.5.32.tgz -C /usr/local/cuda/include
如果文件上锁,则切换到文件所在目录执行指令:
chmod 777 cudnn.h
将库(.lib)和头文件(.h)copy到之前的cuda目录:
sudo cp /usr/local/cuda/include/cuda/include/cudnn.h /usr/local/cuda-10.0/include
sudo cp /usr/local/cuda/include/cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64

修改访问权限

sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h 
sudo chmod a+r /usr/local/cuda-10.0/lib64/libcudnn*

检查是否安装成功

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
出现如下信息表示安装成功:
#define CUDNN_MAJOR 7
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION(CUDNN_MAJOR * 1000 + CUDNN_MAJOR * 100 +CUDNN_PATCHLEVEL)
#include "driver_types.h"

5.测试TensorFlow

import tensordlow as tf
#验证CUDA是否可用
tf.test.is_built_with_cuda()	#返回值为True表示可用
#验证GPU是否可用
tf.test.is_gpu_available()	#返回值为True表示可用
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值