手把手教你搭建深度学习环境(代码片段)

ghsticker ghsticker     2022-12-19     642

关键词:

最近实验室买了一台新的机器,正好要从头配置机器的环境,把环境记录一下

1.安装ubuntu系统

1.1制作系统盘

首先,我们需要准备三个东西

  • ubuntu的镜像文件,我这里选择的是ubuntu-20.04.2.0-desktop-amd64.iso
  • 镜像制作软件UISO9
  • 一个空的U盘

有个这三样我们就可以开始安装我们的ubuntu系统了。

我们需要先安装好UISO9,制作U盘镜像系统。其中不需要购买软件,只需要试用即可。

第一步:打开我们下载好的iso文件

第二步:选择启动,点击写入硬盘映像,并确认硬盘驱动器是你U盘,映像文件是你下载的ISO文件,点击写入,三四分钟后即可写入完成

1.2 系统安装

我们要在自己本身的要在系统中划出一部分空间来存放ubuntu系统,所以我把分出了400G的硬盘用来安装ubuntu系统。

我们在安装系统之前,还是需要按F2进入机器的bios,修改几个设置,

  1. 找到Secure Boot 将他设置成Disable
  2. 在中设置成UEFI快速启动

这两步中根据品牌的不同,位置也是不同的,在列表中仔细寻找到该位置即可。

设置完以后,重新启动电脑,按F12,选择启动的顺序,这个时候我们需要选择U盘选项进行启动,我们会进入U盘引导项,选择install Ubuntu即可。

接下来就是我们安装ubuntu系统的过程了,一定要注意在安装的时候要断网安装

  1. 先选择中文简体,然后点击安装Ubuntu

  1. 选择键盘布局,我们直接默认,点击继续。

  1. 这里我们的硬盘空间足够大,选择正常安装,但是一定要勾掉安装Ubuntu是下载更新。

  1. 安装类型选择其他选项,继续

  1. 然后我们选择刚开始在window上划分出来给ubuntu系统的空间,点击+号,把挂载点选择成 / 即为根目录。最后点击现在安装。

  2. 下面一步选择时段直接继续就行,然后在设置一个登陆的名字和密码,点击继续后等待安装。

这样Ubuntu系统就安装完毕了。装系统的内容可以参考这篇博客,写的超级详细

安装以后发现一个巨大的坑,就是ubuntu无法联网,经过搜索各种博客,最终解决,可查看这篇博客

接下来我们要对ubuntu系统进行换源,这里也解释一下为什么在安装ubuntu的时候特意强调一定要断网在安装,因为ubuntu安装过程中会下载很多东西,因为国内网络原因,网速会特别的慢,这样会导致我们好几个小时都安装不好ubuntu。

接下来我们将软件源更换成国内的

  1. 我们现将原来的源备份
cp /etc/apt/sources.list /etc/apt/sources.list.bak
  1. 将源的内容设置为阿里云镜像,这里需要注意要用vi,而不要用vim
sudo vi /etc/apt/sources.list

#将sources.list文件修改为:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  1. 更新软件列表:
sudo apt update
sudo apt upgrade

2. 安装Anaconda

进入官网下载anaconda,也可以使用清华源下载这个会快一些

下载好后,我们开始安装anaconda

bash Anaconda3-2019.03-Linux-x86_64.sh

接下来回车继续,后面会出现一堆的License许可声明,按Q,就会到底部,出现下面如图输入yes,回车

接下来是确认安装目录,我们也是回车

接下来是询问是否进入系统我们就初始化环境,我们这里选择no

出现下面的内容即为安装成功。

因为我们在初始化的时候选择的是no,所以我们需要手动的配置conda的环境变量。

# 在终端输入,这里的/home/gh/anaconda/bin就是你安装anaconda的路径下的bin文件夹
echo 'export PATH="/home/gh/anaconda/bin:$PATH"' >> ~/.bashrc

# 更新文件
 source ~/.bashrc

怎么查看我们安装是否成功呢?运行下面这个命令,要是显示的是你的anaconda的python环境,那就是对的。

which python

安装好anaconda3后,需要给anaconda换成国内的镜像源

我们可以直接运行下面的内容进行修改镜清华源像源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
 
# 搜索时显示通道地址
conda config --set show_channel_urls yes

但是这样运行完以后,配置文件会是这样:

我们需要把- default那一行删除掉

因为要后面可能需要科学上网,所以请大家自行学习科学上网方式,使用科学上网,会让你的安装环境过程减少一大半的问题。

3. 安装 CUDA

首先,我们需要去CUDA官网下载,普通网络可能进去有点慢,所有最好可以科学上网。

选择自己想要下载的版本,这里我下载的CUDA11.0,选择runfile版本的下载。

.run形式安装cuda,清理原有显卡驱动后,先安装自己显卡对应的驱动。

.deb形式安装cuda,由于会默认安装自带的旧版本驱动,故安装成功后,卸载此驱动,再重新安装显卡对应的驱动。

下面会给出下载命令行

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

这里如果wget下载比较慢的话,可以配置wget后面的链接到迅雷,通过它下载这样会快一些。

下载完后,我们安装前先看一下nvidia的驱动

nvidia-smi

标1的位置你现在nvidia驱动的版本,标2的位置是安装CUDA的最高版本

这里一定要对应好自己下载的CUDA版本与NVIDIA Driver与Linux与GCC的版本对应关系,可参考博客查看对应关系

执行安装命令:

sudo sh cuda_11.0.2_450.51.05_linux.run

安装的时候会出现下图,选择continue,这里网上有一些博客会说移除掉现有的Nvidia驱动,其实并不需要,保证现装的驱动版本正确即可,还有一些博客会让你禁用nouveau,并且卸载点图形界面,重新安装自己下载的驱动,我试过…然后系统崩溃了,又重新装系统从头配环境…

下一步,我们输入accept

再下一步,因为我们已经有驱动,一定要把Driver这一个给勾掉,不要选他,按回车就可以取消勾选了,最后选择Install,安装

最后安装完毕以后会出现:

安装好以后,需要配置环境变量

sudo gedit ~/.bashrc

在最后面加上

# CUDA Soft Link
export PATH=/usr/local/cuda-11.0/bin$PATH:+:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64$LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH

刷新一下:

source ~/.bashrc

测试CUDA是否安装成功,输入

nvcc -V

显示如下,安装成功

4. 安装cuDNN

首先我们需要下载cuDNN,下载的时候我们需要他的官网需要我们注册登录才可以下载,但是他注册登录的功能还是崩溃的…我们需要绕过他的注册登录

点击这里下载,找到自己对应版本的cuDNN,这里我选择cuDNN8.1.1。

点击右键有一个复制链接地址,把这个地址复制到迅雷上,就可以避免注册和登陆,但是有的版本采用这种方法下载的时候,迅雷会一直显示连接资源,出现这种情况,就只能老老实实注册登陆吧。

下载好以后,首先解压:

tar -xvf cudnn-11.2-linux-x64-v8.1.0.77.tgz

复制解压出来的文件到安装好的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 /usr/local/cuda/lib64/libcudnn*

5.配置SSH & 远程桌面

5.1 配置SSH

因为在学校里面,只要连接校园网就是在同一个局域网下,我将ubuntu系统配置SSH,用于远程连接使用。

sudo apt install ssh

会自动安装好很多依赖包并启动服务,完成之后用XShell等软件就可以SSH登录服务器了。

5.2配置远程桌面

为了方便的可以直接在局域网下远程控制桌面版Ubuntu,安装一下Xrdp,Xrdp是一个开源工具,允许用户通过Windows RDP访问Linux远程桌面。 除了Windows RDP之外,xrdp工具还接受来自其他RDP客户端的连接,如FreeRDP,rdesktop和NeutrinoRDP。 Xrdp现在支持TLS安全层,这样就可以使用window自带的远程工具进行远程控制了。

还有一点要注意:有的Xwindow软件是不太兼容xrdp的(比如ubuntu 18.04的默认桌面),但是ubuntu 20.04使用的Gnome是完全ok的。

安装过程如下:

sudo apt install xrdp 

安装完成xrdp 服务将会自动启动,可以输入下面的命令验证它:

sudo systemctl status xrdp

输出会是这个样子

● xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-05-22 17:36:16 UTC; 4min 41s ago

默认情况下,Xrdp 使用/etc/ssl/private/ssl-cert-snakeoil.key,它仅仅对“ssl-cert” 用户组成语可读。运行下面的命令,将xrdp用户添加到这个用户组:

sudo adduser xrdp ssl-cert

重启 Xrdp 服务,使得修改生效:

sudo systemctl restart xrdp

这样就可以使用window自带的远程控制电脑了。

我在配置完以后还是出现了一点问题,在连接成功后远程一直是黑屏,要是同样出现这种情况,可以采用下面的方法进行解决:

vim /etc/xrdp/startwm.sh

在文件中添加

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

最后重启使配置生效:

sudo systemctl restart xrdp

linux编程手把手教你搭建linux编程环境(代码片段)

纸上得来终觉浅,绝知此事要躬行Linux编程环境搭建有两套方案。关于这两套方案我都会做详细的讲解,以便帮助大家减少Linux编程学习的障碍。方案一:云服务器+Xshell这种方案就是将我们的Linux操作机部署在云服... 查看详情

手把手教你搭建vue环境(代码片段)

第一步node环境安装1.1如果本机没有安装node运行环境,请下载node安装包进行安装1.2如果本机已经安装node的运行换,请更新至最新的node版本下载地址:https://nodejs.org/en/ 或者 http://nodejs.cn/第二步node环境检测为了快乐的使用... 查看详情

手把手教你:基于深度残差网络(resnet)的水果分类识别系统(代码片段)

系列文章手把手教你:图像识别的垃圾分类系统手把手教你:人脸识别考勤系统手把手教你:基于粒子群优化算法(PSO)优化卷积神经网络(CNN)的文本分类目录系列文章一、项目简介二、水果分类结... 查看详情

☀️手把手教你camel环境搭建☀️《❤️记得收藏❤️》(代码片段)

☀️手把手教你Camel环境搭建☀️《❤️记得收藏❤️》目录😊开讲啦!!!!🏳️‍🌈:person_fencing:1、Vagrant环境😀1.1、Vagrant是什么😃1.2、Vagrant能做什么😄1.3、Vagrant相关软件下载Ƕ 查看详情

手把手教你搭建深度学习平台——避坑安装theano+cuda

python有多混乱我就不多说了。这个混论不仅是指整个python市场混乱,更混乱的还有python的各种附加依赖包。为了一劳永逸解决python的各种依赖包对深度学习造成的影响,本文中采用python的发行版Anaconda。Step1安装Anaconda这里不建议... 查看详情

手把手教你搭建selenuim自动化环境(代码片段)

看完这篇文章,你将学到如何在Windows上搭建Python+Selenium自动化环境。1.本次使用的系统环境是最新的Windows1017134系统;2.本次使用的Python版本为3.4.4,使用这个版本的原因是3.5以后就不支持XP系统了,但是我有需... 查看详情

手把手教你搭建yolov5+strongsortwithosnet环境(代码片段)

项目介绍YOLOv5+StrongSORTwithOSNet模型由YOLOv5检测器、StrongSORT跟踪算法、OSNet行人重识别模型组成项目地址:https://github.com/mikel-brostrom/Yolov5_StrongSORT_OSNet由于现在的代码中没有yolov5和reid代码,所以需要下载源码加入到YOLOv5&... 查看详情

手把手教你vscode搭建stm32开发环境(代码片段)

摘要:作为一个51单片机或STM32单片机的使用者,keil一直是我们的必备的一款工具之一。但keil的一些问题也一直存在,当然也有人用其他的比如STM32CubeIDE。但是今天推荐的是VScode+KeilAssistant插件,不需要很复杂... 查看详情

手把手教你内网环境搭建百度地图(代码片段)

百度地图内网访问方案现在有一个项目,需要实现内网访问百度地图。上网查阅资料发现有以下两种思路:1、离线百度地图api以及一些资源(控件、logo)2、离线百度地图api以及一些资源(控件、logo、瓦片图&... 查看详情

《嵌入式-stm32开发指南》手把手教你搭建stm32开发环境[linux版-3](代码片段)

《嵌入式-STM32开发指南》手把手教你搭建STM32开发环境[Linux版-1]《嵌入式-STM32开发指南》手把手教你搭建STM32开发环境[Linux版-2]7OpenOCDOpenOCD是用于对STM32进行下载仿真的工具,是一个开源软件包。OpenOCD官网OpenOCD下载地址7.1OpenO... 查看详情

《嵌入式-stm32开发指南》手把手教你搭建stm32开发环境[linux版-3](代码片段)

《嵌入式-STM32开发指南》手把手教你搭建STM32开发环境[Linux版-1]《嵌入式-STM32开发指南》手把手教你搭建STM32开发环境[Linux版-2]7OpenOCDOpenOCD是用于对STM32进行下载仿真的工具,是一个开源软件包。OpenOCD官网OpenOCD下载地址7.1OpenO... 查看详情

手把手教你搭建facebook区块链libra的开发环境(代码片段)

     脸书在发布了区块链新应用Libra之后,又发布了Libra的编程语言Move,可能是刚刚发布笔者尝试在ubantu系统下安装Move语言的开发环境,可能是发布时间太短,笔者还是遇到了很多坑的。这里用博客记录一下相... 查看详情

java学习第一步:jdk环境搭建(手把手教你)

众所周知,当你学习一门新语言的时候,总是免不了环境搭建这一步:软件、插件、各种包......尤其是Java,我周围就有很多同学都是因为不会搭建JDK环境而放弃后续的学习——其实大部分都是因为怕麻烦、粗心或者手残而失败... 查看详情

《嵌入式-stm32开发指南》手把手教你搭建stm32开发环境[windows版-3](代码片段)

《嵌入式-STM32开发指南》手把手教你搭建STM32开发环境[Windows版-1]《嵌入式-STM32开发指南》手把手教你搭建STM32开发环境[Windows版-2]前面的章节讲解了STM32的新建工程到编译下载,接下来将讲解STM32的调试。6OpenOCDOpenOCD是用于对S... 查看详情

《嵌入式-stm32开发指南》手把手教你搭建stm32开发环境[windows版-3](代码片段)

《嵌入式-STM32开发指南》手把手教你搭建STM32开发环境[Windows版-1]《嵌入式-STM32开发指南》手把手教你搭建STM32开发环境[Windows版-2]前面的章节讲解了STM32的新建工程到编译下载,接下来将讲解STM32的调试。6OpenOCDOpenOCD是用于对S... 查看详情

手把手教你搭建国产嵌入式模拟器skyeye开发环境(代码片段)

SkyEye介绍SkyEye是一个开源软件(OpenSourceSoftware)项目,中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定"仿真"和"... 查看详情

手把手教你在fpga上搭建一个cortex-m3软核(代码片段)

...号,不错过精彩内容转自| 电子电路开发学习本文将手把手教你如何基于ARMDesignStart计划,在FPGA上搭建一个Cortex-M3软核处理器。以XilinxArtix-7™系列FPGA为例,介绍如何定制一颗ARMCortex-M3SoC软核,并添加GPIO和UART外设... 查看详情

手把手教你在fpga上搭建一个cortex-m3软核(代码片段)

...号,不错过精彩内容转自| 电子电路开发学习本文将手把手教你如何基于ARMDesignStart计划,在FPGA上搭建一个Cortex-M3软核处理器。以XilinxArtix-7™系列FPGA为例,介绍如何定制一颗ARMCortex-M3SoC软核,并添加GPIO和UART外设... 查看详情