Ubuntu深度学习环境配置一箩筐

前言:我从其它专业转到深度学习方向,由于最开始接触的时候缺乏很多计算机方面的系统知识,所以环境配置中常常出现各种问题而不知其所。网上同一个问题往往有多种解决方案而有的可用,有的不可用,最开始只能通过不断尝试探索出解决问题的确切方案,但随着趟过的坑越来越多,也慢慢了解了一些常见问题背后的原因。为了避免自己忘记,方便查找,同时也希望能够帮助到其他和我有相同境况的小伙伴不再将大量时间浪费在信息鉴别与筛查,方案收集与试错上,谨以此记。


文章目录

  • Ubuntu深度学习环境配置一箩筐
  • 1. Ubuntu安装Python3&pip3
    • 1.1 安装基础依赖
    • 1.2 添加源并更新
    • 1.3 安装特定版本Python&pip3
    • 1.4 配置软链接
    • 1.5 清理apt缓存
  • 2. 打包容器为镜像并推送到DockerHub
    • 2.1 登录DockerHub
    • 2.2 添加commit
    • 2.3 打上tag并推送
    • 2.4 保存docker镜像
    • 2.5 加载docker镜像
  • 3. CUDA安装结束后添加环境变量
  • 4. Ubuntu解压zip文件
  • 5. NVIDIA驱动版本与CUDA版本对应关系
  • 6. 安装pytorch
    • 6.1 v1.8.0+conda
    • 6.2 v1.8.0+pip
    • 6.3 v1.7.1+conda
    • 6.4 v1.7.1+pip
  • 7. Dockerfile打包镜像
  • 8. 安装ssh服务端和客户端
  • 9. 使用MobaXterm本地访问远程tensorboard
    • 9.1 配置MobaSSHTunnel
    • 9.2 激活相应conda虚拟环境
    • 9.3 连接远程tensorboard
  • 10. Docker使用
    • 10.1 列出现有镜像列表
    • 10.2 删除某个镜像
  • 11. 安装Nvidia docker
    • 11.1 向库中添加源
    • 11.2 更新apt库
    • 11.3 安装Nvidia docker
    • 11.4 重启Docker服务
  • 12. apt-get代理设置
    • 12.1 通过环境变量设置
    • 12.2 通过配置文件设置
    • 12.3 通过命令行临时设置
  • 13. 在Shell脚本中嵌入Python脚本
  • 14. Ubuntu开启和关闭图形界面
  • 15. Ubuntu快速安装NVIDIA显卡驱动
  • 16. Ubuntu之间传输数据
  • 17. SSH公钥/私钥免密登录
    • 17.1 服务器端开启密钥登录模式
    • 17.2 客户端生成公私钥
    • 17.3 上传公钥到服务器
    • 17.4 将公钥写入到授权文件中
  • 18. Ubuntu弹出移动硬盘
  • 19. 本地访问远程服务器上的jupyter lab
    • 19.1 建立conda环境并安装jupyter lab
    • 19.2 生成jupyter notebook登录密码
    • 19.3 生成jupyter配置文件
    • 19.4 服务器运行jupyter
    • 19.5 本地使用
  • 总结

1. Ubuntu安装Python3&pip3

1.1 安装基础依赖

sudo apt-get install software-properties-common

1.2 添加源并更新

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

1.3 安装特定版本Python&pip3

sudo apt install -y python3.8
sudo apt install -y python3-pip

1.4 配置软链接

sudo ln -s /usr/bin/python3.8 /usr/bin/python
sudo ln -s /usr/bin/pip3 /usr/bin/pip

如果软链接已经存在则使用-f参数进行覆盖

1.5 清理apt缓存

apt-get autoclean
apt autoclean
rm -rf /var/lib/apt/lists/*rm -rf ~/.cache/pip
rm -rf ~/.cache/pip3

2. 打包容器为镜像并推送到DockerHub

2.1 登录DockerHub

docker login

2.2 添加commit

docker commit [ID] [Name]

2.3 打上tag并推送

docker tag [ID] 用户名/仓库名
docker push 用户名/仓库名

2.4 保存docker镜像

docker save -o docker_iamges_name.tar REPOSITORY:TAG

2.5 加载docker镜像

docker load -i docker_iamges_name.tar

3. CUDA安装结束后添加环境变量

export PATH=/usr/local/cuda-11.4/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}source ~/.bashrc

4. Ubuntu解压zip文件

unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]

5. NVIDIA驱动版本与CUDA版本对应关系

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

CUDA Toolkit Toolkit Driver Version
Linux x86_64 Driver Version Windows x86_64 Driver Version
CUDA 11.6 Update 1 >=510.47.03 >=511.65
CUDA 11.6 GA >=510.39.01 >=511.23
CUDA 11.5 Update 2 >=495.29.05 >=496.13
CUDA 11.5 Update 1 >=495.29.05 >=496.13
CUDA 11.5 GA >=495.29.05 >=496.04
CUDA 11.4 Update 4 >=470.82.01 >=472.50
CUDA 11.4 Update 3 >=470.82.01 >=472.50
CUDA 11.4 Update 2 >=470.57.02 >=471.41
CUDA 11.4 Update 1 >=470.57.02 >=471.41
CUDA 11.4.0 GA >=470.42.01 >=471.11
CUDA 11.3.1 Update 1 >=465.19.01 >=465.89
CUDA 11.3.0 GA >=465.19.01 >=465.89
CUDA 11.2.2 Update 2 >=460.32.03 >=461.33
CUDA 11.2.1 Update 1 >=460.32.03 >=461.09
CUDA 11.2.0 GA >=460.27.03 >=460.82
CUDA 11.1.1 Update 1 >=455.32 >=456.81
CUDA 11.1 GA >=455.23 >=456.38
CUDA 11.0.3 Update 1 >= 450.51.06 >= 451.82
CUDA 11.0.2 GA >= 450.51.05 >= 451.48
CUDA 11.0.1 RC >= 450.36.06 >= 451.22
CUDA 10.2.89 >= 440.33 >= 441.22
CUDA 10.1 (10.1.105 general release, and updates) >= 418.39 >= 418.96
CUDA 10.0.130 >= 410.48 >= 411.31
CUDA 9.2 (9.2.148 Update 1) >= 396.37 >= 398.26
CUDA 9.2 (9.2.88) >= 396.26 >= 397.44
CUDA 9.1 (9.1.85) >= 390.46 >= 391.29
CUDA 9.0 (9.0.76) >= 384.81 >= 385.54
CUDA 8.0 (8.0.61 GA2) >= 375.26 >= 376.51
CUDA 8.0 (8.0.44) >= 367.48 >= 369.30
CUDA 7.5 (7.5.16) >= 352.31 >= 353.66
CUDA 7.0 (7.0.28) >= 346.46 >= 347.62

6. 安装pytorch

6.1 v1.8.0+conda

# CUDA 10.2
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=10.2 -c pytorch# CUDA 11.1
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge# CPU Only
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cpuonly -c pytorch

6.2 v1.8.0+pip

# CUDA 11.1
pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html# CUDA 10.2
pip install torch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0# CPU only
pip install torch==1.8.0+cpu torchvision==0.9.0+cpu torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html

6.3 v1.7.1+conda

# CUDA 9.2
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=9.2 -c pytorch# CUDA 10.1
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch# CUDA 10.2
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.2 -c pytorch# CUDA 11.0
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch# CPU Only
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cpuonly -c pytorch

6.4 v1.7.1+pip

# CUDA 11.0
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html# CUDA 10.2
pip install torch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2# CUDA 10.1
pip install torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html# CUDA 9.2
pip install torch==1.7.1+cu92 torchvision==0.8.2+cu92 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html# CPU only
pip install torch==1.7.1+cpu torchvision==0.8.2+cpu torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

7. Dockerfile打包镜像

docker build [OPTIONS] PATH | URL | -

Options 常用参数:

  • -t: 打包出镜像的名称及标签,通常写法为 name:tag
  • --rm: 构建成功后,删除中间产生的容器。
  • --force-rm=true: 无论是否构建成功,都删除中间产生的容器
  • --no-cache: 构建镜像时不使用缓存。
  • -f: 指定 DockerFile 的路径

8. 安装ssh服务端和客户端

apt-get install openssh-server
apt-get install openssh-client

启动ssh服务和检查启动情况

# 启动SSH服务
/etc/init.d/ssh start
# 检查启动情况
ps -e | grep ssh

生成密钥

ssh-keygen

9. 使用MobaXterm本地访问远程tensorboard

9.1 配置MobaSSHTunnel

forward port:本地端口

SSH Server:服务器和SSH端口

Remote Server:localhost

Remote port:6006

9.2 激活相应conda虚拟环境

conda activate tensorboard_NN
# 启动tensorboard
tensorboard --log_dir=/path/to/log_dir --host=localhost

9.3 连接远程tensorboard

激活SSHTunnel后在浏览器中输入

127.0.0.1:本地端口

服务器ip:6006

即可访问

10. Docker使用

10.1 列出现有镜像列表

docker images
docker image ls

10.2 删除某个镜像

docker rmi repo:tag

11. 安装Nvidia docker

11.1 向库中添加源

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

11.2 更新apt库

sudo apt-get update

Note:如果此时连接不上https://nvidia.github.io,但是服务器可以连接外网,则可能需要设置apt代理,可通过临时设置代理进行安装和更新。

sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:8889/" update

Note:8889为本机代理转发端口

11.3 安装Nvidia docker

# 不使用临时代理
sudo apt-get install -y nvidia-docker2
# 使用临时代理
sudo apt-get install -o Acquire::http::proxy="http://127.0.0.1:8889/" nvidia-docker2

11.4 重启Docker服务

sudo systemctl restart docker

12. apt-get代理设置

12.1 通过环境变量设置

export http_proxy=http://127.0.0.1:8000
sudo apt-get update

12.2 通过配置文件设置

Acquire::http::proxy "http://127.0.0.1:8000/";
Acquire::ftp::proxy "ftp://127.0.0.1:8000/";
Acquire::https::proxy "https://127.0.0.1:8000/";

12.3 通过命令行临时设置

sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:8000/" update

13. 在Shell脚本中嵌入Python脚本

#!/bin/bash# "$@" 是传递给python脚本的参数,此处相当于从标准输入读入
# python代码段的缩进应当用空格控制,否则会遇到违法缩进的错误
# << -符号可有可无,但是最好有。-符号存在时,结束标识符可以在任意位置,-符号不存在时,结束标识符只能在一行的开头
# END是结束标识符,可以自定义,例如EOD,EOF等都可以。
python3 - "$@" <<-END
import torchprint('Hello, world!')
END

14. Ubuntu开启和关闭图形界面

# 关闭图形界面
sudo systemctl set-default multi-user.target
# 开启图形界面
sudo systemctl set-default graphical.target
# 重启生效
sudo shutdown -r now

15. Ubuntu快速安装NVIDIA显卡驱动

# 检查现有驱动程序
ubuntu-drivers devices
# 安装驱动 驱动版本为上面命令列出的版本
sudo apt install nvidia-driver-xxx-server

16. Ubuntu之间传输数据

# scp
scp -r user@ip:/path/to/file /path/to/file

17. SSH公钥/私钥免密登录

17.1 服务器端开启密钥登录模式

sudo vim /etc/ssh/sshd_config# ----------------------------------------
# 是否允许 root 远程登录
PermitRootLogin yes# 密码登录是否打开
PasswordAuthentication yes# 开启公钥认证
RSAAuthentication yes # 这个参数可能没有 没关系
PubkeyAuthentication yes# 存放登录用户公钥的文件位置
# 位置就是登录用户名的家目录下的 .ssh
# root 就是 /root/.ssh
# foo 就是 /home/foo/.ssh
AuthorizedKeysFile .ssh/authorized_keys
# ----------------------------------------service sshd restart

17.2 客户端生成公私钥

ssh-keygen

此命令会在用户目录/.ssh文件夹下创建公私钥:id_rsa(私钥)、id_rsa.pub(公钥)

17.3 上传公钥到服务器

ssh-copy-id -i user/.ssh/id_rsa.pub user@ip
# 或使用scp上传

17.4 将公钥写入到授权文件中

cat >>~/.ssh/authorized_keys<id_rsa.pub

18. Ubuntu弹出移动硬盘

# 首先使用umount解除所有挂载
sudo udisksctl power-off -b /dev/sdb

19. 本地访问远程服务器上的jupyter lab

19.1 建立conda环境并安装jupyter lab

conda create -n jupyter python=3.8
conda activate jupyter
pip install jupyter lab

19.2 生成jupyter notebook登录密码

ipython
# 如果提示没有,则要先安装
# 在交互界面中输入
from notebook.auth import passwd
passwd()
# 输入密码,同时记住输出的字符串

19.3 生成jupyter配置文件

jupyter notebook --generate-config
# 修改配置文件
vim ~/.jupyter/jupyter_notebook_config.py
# 主要修改内容
c.NotebookApp.allow_remote_access = True
c.NotebookApp.open_browser = False
c.NotebookApp.ip='*'
c.NotebookApp.port = 8888
c.NotebookApp.password = 'sha1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  • 允许远程访问
  • 不使用本地浏览器打开
  • IP白名单
  • 映射到本地的端口
  • 配置密码(上一步的输出字符串)

19.4 服务器运行jupyter

nohup jupyter lab &

19.5 本地使用

在浏览器中输入服务器ip:端口,即可访问

总结

之前本想通过超链接的方式以一篇文章作为目录,链接到其它文章中,没想到可以直接在前面加目录。希望这一箩筐能够帮到大家,我也会不定时更新~

Ubuntu深度学习环境配置一箩筐相关推荐

  1. Ubuntu 深度学习环境配置、Theano TensorFlow PyTorch 安装、常用软件安装方式

    文章目录 介绍 系统和显卡 深度学习环境配置 安装 Nvidia 显卡驱动 安装 CDUA 安装 cuDNN 深度学习框架安装 安装 Theano-gpu 安装 TensorFlow-gpu 安装 P ...

  2. win10系统安装与双系统ubuntu深度学习环境配置

    双系统还是虚拟机 要装双系统.因为虚拟机是虚拟出来的显卡,无法调用电脑的显卡,跑不了GPU. 双系统安装 详情请见 windows10安装ubuntu双系统教程(绝对史上最详细) 但这里有个问题,bi ...

  3. Ubuntu深度学习环境配置

    文章目录 1. 显卡驱动 2. GCC 3. CUDA 4. Anaconda 5. 其他python相关库 1. 显卡驱动 下载对应驱动 https://www.nvidia.cn/Download ...

  4. 深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:伍天舟.马曾欧.陈信达 入门深度学习,很多人经历了从入门到放弃的心 ...

  5. 【深度学习】相当全面的深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)...

    作者:伍天舟.马曾欧.陈信达 入门深度学习,很多人经历了从入门到放弃的心酸历程,且千军万马倒在了入门第一道关卡:环境配置问题.俗话说,环境配不对,学习两行泪. 如果你正在面临配置环境的痛苦,不管你是W ...

  6. 保姆级教程:深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 入门深度学习,很多人经历了从入门到放弃的心酸历程,且千军万马倒在了 ...

  7. 深度学习环境配置10——Ubuntu下的torch==1.7.1环境配置

    深度学习环境配置10--Ubuntu下的torch==1.7.1环境配置 注意事项 一.2022/9/18更新 学习前言 各个版本pytorch的配置教程 环境内容 环境配置 一.Anaconda安装 ...

  8. Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇)

    Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇) 折腾了两三天总算顺利在电脑上完成了装x的双系统安装,一路走来还比较顺利,主要在ubuntu的显卡设置上躺了 ...

  9. 基于Ubuntu 18.04机器人操作系统环境和深度学习环境配置

    基于Ubuntu 18.04机器人操作系统环境和深度学习环境配置详解 CUDA+Cudnn+ROS+anaconda+ubuntu装机必备 笔记本双系统安装 U盘启动项安装ubuntu18.04.1 ...

最新文章

  1. 【408预推免复习】计算机组成原理之计算机的运算方法
  2. poj 3071 Football(概率dp)
  3. 节点身份认证(1)DID(Decentralized Identity)系统
  4. 【CV项目实战】纯新手如何从零开始完成一个工业级图像分割任务的整个流程?...
  5. 【数据结构与算法】之深入解析“我的日程安排表I”的求解思路与算法示例
  6. themleft模板库_Thymeleaf模板引擎常用总结
  7. 7-2 最长公共子序列 (10 分)(思路加详解)
  8. 石家庄学院c语言试题,谁会高级语言程序设计?要求用C语言,帮帮我把,愁死我啦...
  9. 信息学奥赛一本通 2052:【例3.2】范围判断
  10. jQuery进阶部分笔记
  11. java生成三角网_源码:基于离散点的构TIN算法(三角网)
  12. Python稳基修炼之计算机等级考试易错细节题1(含答案和解析)
  13. ES11新特性_绝对全局对象globalThis---JavaScript_ECMAScript_ES6-ES11新特性工作笔记067
  14. 值得尝试的 MQTT 客户端工具
  15. android 脱壳 加固,安卓的脱壳之战-爱加密加固
  16. python列表的操作
  17. 为什么可以做Shopyy独立站
  18. 普通学渣的春招,秋招历程以及实习心路
  19. C++Error2208:…尝试引用已删除的函数
  20. 软件设计师---软件工程

热门文章

  1. 【bzoj2149】拆迁队
  2. 小米手机通过相册修改头像时报java.lang.SecurityException
  3. 阻塞IO和非阻塞IO(NIO)
  4. callbackData
  5. 用Proxmark3进行无卡嗅探
  6. Promise学习笔记(下)
  7. android下提取PPS,SPS
  8. Oracle数据库中的多表关联查询
  9. java 经济学_经济学中的囚徒困境
  10. C语言单片机位运算——看完马上懂(个人总结)