Ubuntu 20.04 深度学习基础环境配置

写在最前面:

最近一个月配了仨电脑,感觉实在遭不住了,于是写了这篇文档给自己进行一种流程上的参考。
由于是给自己的一种参考,所以本文档不会细致到每个cd和ls。因此,按照本文档进行配置前,最好了解linux最最最基本的使用操作,不然的话建议完成第1,2,3步后,花费一定时间熟悉下该系统,再进行之后的环境配置。
主要内容如下:

1. 安装Ubuntu (双系统安装方法)

(1) 安装流程参考以下博客:

 https://www.cnblogs.com/masbay/p/11627727.html

 该博客安装的是18.04版,但对于其他版本的ubuntu,该流程也具有参考性。

(2) 以中文安装的系统,建议安装成功后切换语言为英文以使各个系统文件夹名称为英文(键入命令好敲,也防止有些库路径不兼容中文),之后可以再将系统设置回中文,能够在保留系统文件夹名称为英文不变的情况下,系统以中文显示。

(3) 系统提示更新要取消,不要更新,否则系统容易莫名坏掉。

(4) 如果安装的是20.04版本:

 a) 如果启动盘没有install ubuntu。

  选择 ubuntu(safe graphics),其在扫描完u盘文件确认无误后会出现install ubuntu的选项。

 b) 如果启动花屏或安装花屏或启动后桌面卡到没反映。

  重启,使用advanced options for ubuntu 选项 ,按e进入编辑模式,在quite splash 和 $vt_handoff 之间加上 nomodeset,ctrl+X保存退出。

  正常进入ubuntu系统后,参考第2步设置grub引导,在grub引导文件中中将下句改为:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

 c)如果系统正常运行时,以一定间隔卡顿,搜索系统监听器(system load indicator),在设置中将各项监听时间改大。

 d)如果系统无法检测到分屏的第二屏幕,配置到第10步安装nvidia驱动后就会正常。

2. 设置Grub引导

(1) 修改Grub引导文件

	cd /etc/default/
	sudo gedit grub

 文档中常设的配置项:

	GRUB_DEFAULT=3  #设置为希望默认启动的系统
	GRUB_TIMEOUT=20  #设置为默认选择时间
	GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset" #解决花屏问题

(2)保存退出

	sudo update-grub

3. 添加源

	cd /etc/apt
	sudo gedit sources.list

 在文件的末尾添加阿里,中科大和清华三个常用源:

## add ali
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

## add ustc
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

## add tuna
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

 保存退出

	sudo apt-get update
	sudo apt-get upgrade

 都更新完退出当前terminal,重启一个新的。

4. 设置输入法(自带的中文输入法很卡,可以忍受则跳过此步)

(1) 安装fcitx

	sudo add-apt-repository ppa:fcitx-team/nightly
	sudo apt-get update
	sudo apt-get install fcitx fcitx-config-gtk fcitx-sunpinyin
	sudo apt-get install fcitx-table-all
	sudo apt-get install fcitx-ui-classic

 设置(Setting)–>区域和语言(Region&Language)–>管理已安装语言(Manage installed language)–>稍后提醒(Remind me later)–>键盘输入法系统(Keyboard input method system)更改为fcitx。

 重启

(2) 安装搜狗拼音

 去官网 https://pinyin.sogou.com/linux/ 下载到Downloads

	cd Downloads/
	sudo dpkg -i sogoupinyin_版本_amd64.deb

 重启

 重启后搜狗输入法会被自动添加,如果没有,在所有程序中搜索fcitx-configuration(fcitx-配置),+ 添加搜狗输入法,输入法切换默认是ctrl+space。

5. 安装terminator (推荐安装)

	sudo apt-get install terminator

 测试ctrl+alt+t出现的是否为terminator,否则去Setting–>Devices–>Keyboard设置快捷键。

6. 安装一些有用的工具(可选配置)

(1) meld 文档对比

	sudo apt-get install meld

(2) kazam截图录屏软件 (最近发现有中文不支持的乱码问题)

	sudo apt-get install kazam

(3) net-tools

	sudo apt-get install net-tools

7. 安装IDE

注:这里选择vscode,因为支持多种语言,插件丰富,用起来很方便,当然,你也可以根据喜好安装其他。

(1) 下载vscode到Downloads

 https://code.visualstudio.com/

	cd Downloads/
	sudo dpkg -i code_版本号_amd64.deb

(2) 安装插件

 常用插件:

 1) 通用类

  Chinese (Simplified) Language Pack for Visual Studio Code
  Bracket Pair Colorizer

 2) C++

  c/c++
  C++ Intellisense
  CMake

 3)Python

  Python
  Jupyter

 4) 文档类

  vscode-pdf
  Markdown Preview Enhanced

 5) 其他

  Git History
  Git Graph

8. 配置C++环境

(1) 安装c++底层环境

	sudo apt-get install build-essential

(2) 安装cmake

 https://cmake.org/files/ 选择某一版本后,下载linux-x86_64.bash后缀的。

 在希望安装它的位置,把下载好的.bash文件copy进去

	bash cmake-版本-linux-x86_64.bash

 安装结束后

	sudo gedit ~/.bashrc

 在文档最后添加cmake的环境, PATH=你的cmake的bin目录路径:$PATH

# add cmake path
export PATH=/home/ryuuru/Software/cmake/cmake-3.20.0-linux-x86_64/bin:$PATH

 保存退出

	source ~/.bashrc

 测试是否安装成功

	cmake --version

9. 配置Python环境

(1) 安装anaconda

 官网国内访问较慢,建议从清华镜像下载 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

	cd Downloads/
	bash Anaconda_版本.sh

 安装过程ctrl+d快速下翻协议,除了安装vscode,其他都是enter或者yes

 安装结束关闭当前terminal,重启一个新的

	sudo gedit ~/.bashrc

 查看文档最后有没有加入anaconda环境

 如果没有的话在文档最后添加:

	export PATH="/home/用户名/anaconda3/install/bin:$PATH"

 保存退出

	source ~/.bashrc

 安装结束关闭当前terminal,重启一个新的

	conda -V

 查看是否出现conda版本,出现则表示安装成功

	sudo gedit ~/.condarc

 在打开的文档中添加国内源

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
  - https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
  - defaults
show_channel_urls: true

 保存退出,清理缓存

	conda clean -i

新建一个conda环境,测试一下

	conda create -n 环境名 python==3.9.0(期望的python版本,也可以指定其他库,这里配置一个3.9.0的)

 创建结束后,查看环境是否建立成功,并切换环境。

	conda env list
	conda activate 环境名

(2) 在conda环境里安装python常用库

 几乎必备的库:

	conda install pip 
	conda install ipython 

 其他根据实际应用可选安装:

  matplotlib (画图)
  numba (python代码加速库)
  black (python代码格式校验,自动格式)
  mypy (静态类型检查工具)

10. 配置深度学习环境

注:

  •  配置此环境前,建议前面c++和python的都配好,因为深度学习领域c++和python都会涉及。

  •  https://tensorflow.google.cn/install/source 可以查看tensorflow版本和对应cuda,cudnn版本。

  •  如果没有一定要运行某指定版本的需求,最好选择和自己电脑接近的nvidia驱动和cuda版本。

    •   不要安装低版本出现一堆问题后还死磕!

    •   不要随便给gcc和g++降级!(虽然降级后可选版本使用,但实际c++和python和神经网络三方混合编程时,很容易出现问题)

  •  本配置中电脑显卡为RTX3090,因此选择了nvidia-driver-470, cuda11.0, cudnn8.0.5

(1) 安装nvidia显卡驱动

 查看电脑里是否已经有nvidia驱动,以后也可以使用该命令查看显卡情况。

	nvidia-smi

 如果没有,查看显卡硬件型号和推荐驱动:

	ubuntu-drivers devices

 在显示的里面找一个版本装:(需要bios里安全模式关闭)

 如果有特定版本要求

	sudo apt-get install nvidia-driver-xxx

 如果安装recommend的

	sudo ubuntu-drivers autoinstall

 重启

 再次运行nvidia-smi命令,会发现安装成功。

 注:现在ubuntu提供安装驱动的功能很便捷,不建议自行从nvidia官网下载然后离线安装,因为其过程会包含:卸载现有驱动,切换图形界面到命令界面,安装过程中由于是中文系统偶尔会乱码,一旦安装失败需要重装回现有驱动,再切换命令界面到图形界面等一系列繁琐过程,也比较容易出问题。

(2) 安装cuda

 nvidia官网如果登录不进去,或者下载时各种页面进不去,可以尝试把developer.nvidia.com改为 developer.nvidia.cn

 https://developer.nvidia.cn/cuda-toolkit-archive 下载cuda,这里选择11.0版本。

 下载时选择Linux → x86_64 → Ubuntu → 你的ubuntu版本 → runfile

 按照下面Base installer的指示运行命令即可

	wget http://developer.download.nvidia.cn/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run

 下载结束后,在runfile所在文件夹下打开terminal

	sudo sh cuda_11.0.2_450.51.05_linux.run

 安装过程:

  选择continue回车;
  输入accept回车;
  Cuda Installer页面,在Driver处按空格取消勾选,其余地方正常,选择Install回车。

 安装完成后,添加环境。

	sudo gedit ~/.bachrc

 在文档最下面添加

# add cuda path
export PATH=/usr/local/cuda-你的版本/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-你的版本/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

 保存退出。

	source ~/.bashrc

 关闭当前terminal,重启。

	nvcc -V

 出现cuda版本输出则安装成功。

(3) 安装cudnn,本质上只是复制文件到指定文件夹

 https://developer.nvidia.cn/zh-cn/cudnn 下载cudnn

 下载前需要登录/注册nvidia账号,回答一个问卷。

 下载后解压,进入解压后cudnn-版本/cuda的文件夹下,可以看到一个include文件夹和一个lib64文件夹,在此处右键打开terminal。

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

 之后cd /usr/local/cuda/ 看一下复制过去的文件都在不在,权限是不是正确。

(4) 运行cuda sample

	/usr/local/cuda-你的版本/bin/cuda-install-samples-你的版本.sh  你希望存放sample的路径

 进入你存放sample的路径,1_Utilities文件夹下,deviceQuery文件夹

	make
	./deviceQuery

 最后有Result = PASS 就是运行成功,如果有运行失败的情况,可以尝试sudo运行sample。

(5) 安装tensorflow

 在第9步配置python环境中已经安装好了Anaconda,这里以python3.7.7,tensorflow1.14为例,新建一个conda环境,并安装tensorflow1.14gpu。

	conda create -n tf14 python==3.7.7 # 创建环境
	conda activate tf14 # 切换到刚创建的环境
	conda install pip
	conda install ipython
	conda install tensorflow-gpu==1.14.0

 都安装好后

	ipython #可以看到python版本是我们安装的3.7.7
	import tensorflow as tf
	hello = tf.constant("hello")
	sess = tf.Session()

 运行完此行时,能够看到很长的一串输出,最下面可以看到device: GPU 等如下字样则代表安装成功,可以正常使用tensorflow-gpu。

326] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 22247 MB memory) -> physical GPU (device: 0, name: NVIDIA GeForce RTX 3090, pci bus id: 0000:01:00.0, compute capability: 8.6)
	print(sess.run(hello))

11. 配置其他编程支持环境(推荐安装)

(1) git

	sudo apt-get install git

 如果有大文件传输建议安装一个git-lfs

	git config --global user.name "你的名字"
	git config --global user.email "你的邮箱"

 登录你的github, Setting,进入SSH and GPG keys页面。

 generating ssh keys里面有新建key的方法,同时,我们在新建了key后也要在此页面选择 New ssh key添加我们的key。

 新建key。

	ssh-keygen -t ed25519 -C "your_email@example.com"

 新建过程中会显示存储key的路径。

 cd 到此路径 sudo gedit 打开.pub文件,复制其中内容,粘贴到github上的New ssh key页面, Add SSH key。

 添加后,测试ssh连接。

	ssh -T git@github.com

 输入yes,出现Hi, xxx. You’ve successfully authenticated.字样则表示成功。

(2) docker

 安装依赖

	sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

 添加秘钥

	curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

 添加源(以下一段一起复制)

	sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

 更新源

	sudo apt-get update

 安装docker

	sudo apt install docker-ce

 测试安装结果,此处一般会新pull一个hello-world的image,之后会删掉

	sudo docker run hello-world

 设置免sudo运行

	sudo usermod -aG docker 用户名
	sudo systemctl restart docker

 重启

 删掉之前pull的hello-world,顺便测试下免sudo是否成功

	docker ps -a  #查看所有容器,能看到那个hello-world的
	docker stop 容器名/容器id  #停止hello-world的容器
	docker rm $(docker ps -a -q)  #删掉所有已经停止运行的容器
	docker images #查看所有镜像
	docker rmi 镜像名  #删掉该镜像
  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值