【菜菜的CV进阶之路 - 深度学习环境搭建】配置Ubuntu深度学习环境

news2024/11/25 11:04:47

六、配置Ubuntu深度学习环境

1、安装Google chrome

使用wget下载最新的Google Chrome .deb软件包:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

更多地址可参考:在Deepin v20系统中下载和安装谷歌Chrome最新版deb软件包。

在Ubuntu 20.04上安装软件包需要管理权限,以具有sudo特权的用户身份运行以下命令,以在系统上安装Chrome .deb软件包:

sudo apt install ./google-chrome-stable_current_amd64.deb

出现提示时,输入您的用户密码,安装将开始,它会自动安装,结束后即意味着Google Chrome浏览器安装结束。

启动Google Chrome浏览器

在活动搜索栏中,键入“Google Chrome”,然后单击图标以启动该应用程序:

或输入命令行:

google-chrome

2、在Ubuntu下的Markdown编辑器Typora的安装与配置

来源:https://jasonkayzk.github.io/2019/09/04/Ubuntu%E4%B8%8B%E5%AE%89%E8%A3%85Typora/

3、安装pycharm

参考:

https://blog.csdn.net/feimeng116/article/details/105837483

**【错误】tar:归档中找不到 **

tar: 由于前次错误,将以上次的错误状态退出

tar -zxvf xxxx -C /usr/local 要使用这个 -C参数

-C 切换到指定目录 因为不是在当前文件夹解压的,要去别的文件夹解压,所以必须要加这个参数

sudo tar -zxvf pycharm-professional-2020.3.3.tar.gz -C /opt/pycharm/

Ubuntu命令行快捷启动Pycharm

pycharm安装目录为/home/dell/pycharm-community-2018.1.2/bin。那么安装完成之后系统不会给pycharm添加系统路径,只有把终端切换到安装目录/home/dell/pycharm-community-2018.1.2/bin下才能输入命令’matlab‘启动Matlab。。

方法:在目录/usr/local/bin里面创建一个指向Matlab安装目录/home/dell/pycharm-community-2018.1.2/bin的符号链接:(非默认安装需替换安装路径)

sudo ln -s /home/dell/pycharm-community-2018.1.2/bin/pycharm.sh /usr/local/bin/pycharm

然后启动pycharm,即可

sudo pycharm

4、Ubuntu 20.04 安装微信、QQ等

https://blog.csdn.net/xinjieyuan/article/details/104640921

https://zhuanlan.zhihu.com/p/144286142

【错误】安装完deepin的依赖后,系统崩溃

执行 apt --fix-broken install 安装依赖包后解决了。

保险起见,再执行 sudo apt update更新一下。

https://github.com/zq1997/deepin-wine

sudo apt install libjpeg62:i386       #解决微信无法查看发送图片问题

在这里插入图片描述

5、安装anaconda

Anaconda是用来管理环境和python库的软件。

这里选择安装轻量版的Miniconda3,在Terminal里面执行下列命令即可,建议全程回车(yes)使用默认设置:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh #下载
sh Miniconda3-latest-Linux-x86_64.sh  #执行安装文件

然后一直按回车键,直到出现“Do you accept the license terms”, 输入“no”

出现“Anaconda3 will now be installed into this location: /home/xxx/anaconda3”,直接按回车键,安装在该目录中。

出现“Do you wish the installer to initialize Anaconda3 by running condo init?”, 输入“no”。

这时anaconda已经基本安装完成了。

sudo rm Miniconda3-latest-Linux-x86_64.sh  #删除安装文件

区分Ubuntu自带python和anaconda中的python
Linux中会自带python, Ubuntu20.04中自带python3,已经没有python2了。这时不区分不影响anaconda的正常使用,但pytorch和tensorflow对这Linux中自带的python3和anaconda中的python的使用需求不同,后期需要进行两者的切换。所以最好在这里就对他们进行区分。

先退回到根目录

$cd ~

用gedit打开.bashrc文件,并进行修改。

$sudo gedit .bashrc 

利用vim打开.bashrc文件
在文件最后加入以下命令:

alias python3="/usr/bin/python3.8"            (非命令文字删除)\\给系统自带的python起一个别名,就叫python3
export PATH="/home/xxx/anaconda3/bin:$PATH"                (非命令文字删除)\\anaconda3中的python
保存即可。

继续在终端中对刚才修改的. bashrc文件执行以下。

$source .bashrc

试试刚才进行区分的设置。

在这里插入图片描述

进行了这样的区分后,以后可以根据输入的不同对两种python进行任意地切换了。

6、安装显卡驱动

gpu驱动安装分为:1. 禁用nouveau, 2. 卸载旧的驱动(如果你是第一次安装驱动,这步可以省略),3.gcc安装,4,安装驱动
】:这部分参考https://www.cnblogs.com/fanminhao/p/8902296.html。

禁用nouveau
Ubuntu系统集成的显卡驱动程序是nouveau,它是第三方为NVIDIA开发的开源驱动,我们需要先将其屏蔽才能安装NVIDIA官方驱动。 所以我们要先把驱动加到黑名单blacklist.conf里。

// 修改属性
$sudo chmod 666 /etc/modprobe.d/blacklist.conf  
//用gedit打开
$sudo gedit /etc/modprobe.d/blacklist.conf
// 在最后一行加入以下几句,保存退出
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
// 对刚才修改的文件进行更新
$sudo update-initramfs -u

记得重启计算机,打开终端检查nouveau是否被禁用

$lsmod | grep nouveau \\若执行完该句,没有任何输出,则nouveau被成功禁用

卸载旧的驱动
如果你是第一次安装gpu驱动,这一步可以省略。当然如果你不是第一次安装驱动,亲测也可以忽略这一步。

$sudo apt-get remove --purge nvidia*

安装gcc
必须先安装gcc, 才能安装gpu驱动。

$sudo apt-get  install  build-essential \\安装gcc,不要怀疑,就是build-essential,我也不知道为啥
$gcc --version \\检查gcc是否安装成功

这里我只安装了gcc,gpu驱动就可以成功安装了,如果你执行到下面,提示你make,g++没有安装的话,再回来执行以下语句进行安装即可。

$sudo apt-get install g++
$sudo apt-get install make

下载对应版本的gpu驱动
安装gpu驱动的方法分为2种:ppa源安装和利用run文件进行安装。
这里推荐使用run文件安装。因此需要根据你的显卡类型选择合适的run文件下载,官网下载链接(速度较快,可直接使用):gpu驱动下载链接.

在这里插入图片描述

在这里插入图片描述

安装驱动
先按Ctrl+Alt+F1,关闭图形界面(过程中出现星号则证明需要输入密码)。再在新出现的界面输入以下命令:

$sudo service lightdm stop

然后cd进入到下载好的.run文件目录中(我安装的是Ubuntu20.04中文版,所以直接下载后的目录为/home/xxx/下载,但是这里不会正常显示中文,因此推荐把下载后的.run文件换个位置再进行下面的操作。

//以移动后的目录为/homg/xxx/为例
$cd /home/xxx/
//修改权限
$sudo chmod a+x NVIDIA-Linux-x86_64-xxx.run
//执行安装
$sudo ./NVIDIA-Linux-x86_64-xxx.run -no-x-check -no-nouveau-check -no-opengl-files

过程中根据提示,选择Accept等。

如果出现错误:

verifying archive integrity... error

可能是版本没有对上或安装包没有下好(我第二次安装才成功),可以从官网或从[这里][http://http.download.nvidia.com/XFree86/Linux-x86_64/460.56/]重新下载,再次尝试就好了。

//执行此语句,出现显卡信息则证明安装成功。
$nvidia-smi

在这里插入图片描述

7、cuda安装

安装cuda
由于系统不同,每个人安装cuda的语句不尽相同,在该页面中链接: 选择合适的cuda版本进行安装

在这里插入图片描述

然后直接根据下载页面的语句提示安装即可。

【错误】there is enough space in /tmp and that the installation package is not corrupt:

这个错误有两种可能:

1、/tmp空间不足,cuda一个文件就4gb,我只给系统盘分了32gb,解决方法,使用磁盘空间更大的/home:

首先在/home目录下新建一个tmp文件夹

sudo mkdir /home/tmp

然后更改文件夹权限

sudo mkdir /home/tmp
sudo chmod 1777 /home/tmp
export TMPDIR=/home/tmp

之后再输入

sudo sh cuda_11.1.1_450.80.02_linux.run --tmpdir=/home/tmp

2、如果以上方法还是报错,考虑是否下载的文件有问题:

比如出现错误:ubuntu段错误(核心已转储)

使用ulimit -a命令查看内容如下:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31239
max locked memory (kbytes, -l) 65536
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 31239
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
发现stack size 大小只有8192太小了
使用命令:
ulimit -s 102400

将stack size 改为100m问题解决。

如果还是不行则考虑是否使用了不稳定的下载方式,比如使用了SSR的ipv6(我改成校园网,再用上面的方法安装就ok了TT…)。

在这里插入图片描述

在这里插入图片描述

配置环境
类似于以上章节中区分两种python的环境,这里也要打开.bashrc文件添加路径。

$sudo gedit ~/.bashrc \\进入vim界面。输入字母i,进入编辑模式
\\在bashrc文件中输入以下命令,注意修改你的cuda版本
export D_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64
export PATH=$PATH:/usr/local/cuda-11.1/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.1
\\输入完成后退出
\\这时候返回终端了
$source ~/.bashrc \\运行.bashrc文件

安装完成检查

nvcc --version

在这里插入图片描述

8、cuDNN安装

cudnn的安装相比以上过程就简洁多了~但是在Nvidia下载cudnn文件时稍微有点麻烦,你需要先注册一个Nvidia账号,再填写一个调查问卷。

然后才能进入cudnn的正式下载页面。链接: 选择合适的cudnn版本进行安装
根据你的cuda版本和电脑系统,选择合适的cudnn进行下载(大概1G多,需要一段时间进行下载)。

在这里插入图片描述

下载好后,将.tz文件进行解压缩。选择下载第一个,cuDNN Library!我下载的是cudnn-11.0-linux-x64-v8.0.4.30。
下载到本地后,解压后文件里面有cuda文件夹,cd到cuda文件夹后执行后续命令:

$cd /home/xxx/ \\cd到目录

记得在你创建的虚拟环境中进行:

创建Deeplearning的环境

\\这步中Deeplearning可以换成任何你喜欢的名字
$conda create -n Deeplearning python=3.8
\\查看你创建的环境
$conda env list
\\激活创建的环境
$conda activate Deeplearning
\\关闭环境
$conda deactivate

激活环境:

$ conda activate Deeplearning \\Deeplearning是我上面起的名字

【错误】CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate’.

解决方法:

# 激活环境
source activate
# 退出环境
source deactivate

然后:就可以正常用了:

在这里插入图片描述

之后输入以下命令:

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就安装好了。

9、pytorch-gpu安装

https://blog.csdn.net/m0_37412775/article/details/109355044#commentBox

在“四、pytorch-cpu安装”中已经展示了如何安装pytorch-cpu版本了,这可以让你在不使用gpu时也能对代码进行调试验证,也就是import torch是可以正常导入的,但torch.cuda.is_available()会返回False。这时我们安装pytorch-gpu版本。

安装过程十分简单,截止2020年10月31日,开心的是pytorch已经支持cuda11.1了。所以打开官网,选择对应版本进行安装(下图以pip安装为例)。

在这里插入图片描述

在终端输入

pip install torch==1.7.0+cu110 torchvision==0.8.1+cu110 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

超级快就可以搞定!然后进行终极验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/143957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue学习笔记(一)

Vue学习笔记1. 什么是Vue2. 安装Vue2.1 使用独立版本2.2 使用CDN方式2.3 使用NPM方式3.Vue语法3.1 el挂载点3.2 data数据对象3.3 V-text 设置标签内的内容3.4 V-html3.5 V-on3.6 计数器3.7 v-show3.8 V-if3.9 v-bind3.10 v-for3.11 V-model4.class与style绑定5.表单输入绑定5.1…

【vue2】基础概念 01 (vue框架介绍、el、data、插值表达式)

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:vue框架介绍、结构元素详解(el、data、插值表达式) 目录&#xf…

《我是个怪圈》读书笔记

文章目录书籍信息论灵魂及其尺寸摇曳在恐惧与梦想之间的那只电灯泡(取自拉塞尔埃德森的诗)模式的因果潜力关于自我与符号副现象模式与可证性哥德尔的典型怪圈奇迹般步调划一的同步在公式与大整数之间翻转很大的整数与公式步调一致的移动质雅数怪圈论向下…

vue实现文件预览功能

目录 一、使用插件预览 1.前端实现在线预览文档 通过联机查看 Office 文档 打开新窗口预览文件 当前页面预览文件 注意事项 在创建好url之后,可能会出现无法打开文档的情况,这时候就需要对照官网的解释来查找问题了,官方文档的解释如下…

k线图入门精讲

K线图是贵金属技术分析的基础手段,刚入门的投资者应认真学习和理解k线的基础知识,因为有了认识才能分析。然而,多数上班族精力有限,无法耗费大量精力学习,今天小编就为准备了K线入门的“精读班”。 一、K线的作用 K线图…

【node.js】fs\path\http模块的使用 02

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:Node.js的fs\path\http模块的使用,模块化开发概念 目录 一、node.js概念与作…

Java程序员你自己的菜鸟气质霸气侧漏了吗?

对于刚入行的程序员来说,面对各种各样的陌生配置环境和代码库,难免会手忙脚乱,尽显菜鸟本色。 但从啥都需要教的菜鸟到啥都懂的大神程序员,并不简单,这需要牺牲一根又一根宝贵的头发,直到它们肉眼可数。 …

线上服务器CPU占用过高?7步带你搞定

一. 前言在Java开发岗位的面试中,时不时会出现一些运维类的题目,其实这也反映了后端面试的一种趋势。现在企业对后端开发的要求越来越全面,不仅要求我们会写代码,还要我们能够进行部署和运维。今天壹哥就结合一个真实的项目案例&a…

【Linux】Linux权限

权限的概念 限制人的,访问的对象天然可能没有这种“属性”权限:一件事情是否允许被谁“做”。 权限 人 事物属性 Linux上的用户分类 root,超级管理员,几乎可以干任何事情(1个)普通用户(多个&a…

雷电飞机大战游戏|基于Java开发实现雷电飞机大战游戏

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

【前端】Vue项目:旅游App-(8)city:标签页Tabs动态数据:网络请求axios与request、数据管理store与pinia、各种封装

文章目录目标过程与代码安装相关库封装网络请求相关代码网络请求数据网络请求数据操作封装pinia管理数据并封装tab栏改为动态数据效果本篇总结总代码修改或新建的文件serviceindexmodules的cityrequest的configrequest的indexstoremodules的citymodules的loadingcity.vue参考目…

录屏没有声音怎么办?录屏怎么录声音

相信部分朋友在录制视频时,有出现录制视频没有声音,导致该段视频没有声音而无法播放。录屏怎么录声音?可以使用支持录制声音的专业的电脑录屏软件。今天小编就在这给大家分享在录制视频同时,将声音也录制进去的操作步骤。一、录屏…

【Linux】主函数的三个形参

主函数的形参有三个:argc参数个数,argv参数内容,envp环境变量。其中argc是整型,argv和envp是指针数组(存的字符串) argv源于我们自己在使用执行命令时传的内容,envp源于程序的父进程&#xff08…

力扣sql入门篇(十)

力扣sql入门篇(十) 1 查找重复的电子邮箱 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT Email FROM Person GROUP BY Email HAVING count(id)>21.3 运行截图 2 合作过至少三次的演员和导演 2.1 题目内容 2.1.1 基本题目信息 2.1.2 示例…

Java并发编程(六)ExecutorService

ExecutorService invokeAny() he invokeAll() 具有阻塞特性 invokeAny invokeAny 的作用是取得第一个完成任务的结果的值。 如果线程中增加 if (!Thread.currentThread().isInterrupted()) 判断,则会中断这些线程。 其他线程如果抛出 InterruptedException() 异常&a…

从徘徊迷茫到行业精英,社科院与杜兰大学金融管理硕士改变你的人生轨迹

在以“内卷”为主基调的职场环境里,似乎不停地进阶已经成为了职场人的唯一出路。但是,如何在进阶路上冲破职业瓶颈,到达心之所往的理想位置,则没有一个标准的答案。有的职场人士通过考取不同的技能证书来增加自身优势,…

Java Agent 踩坑之 appendToSystemClassLoaderSearch 问题

作者:卜比 本文是《容器中的 Java》系列文章之 2/n,欢迎关注后续连载 😃 。 从 Java Agent 报错开始,到 JVM 原理,到 glibc 线程安全,再到 pthread tls,逐步探究 Java Agent 诡异报错。 背景 …

数据分析,你还在单纯地看数据?

企业的数字化意识越来越强,工作中也开始使用各种业务系统来管理业务,管理数据。很多人以为上了业务系统,对数据进行统计了,就是数据分析,这是大错特错的观点,数据分析是通过数据来剖析企业经营管理和业务发…

Using chatbots to scaffold EFL students argumentative writing (论文翻译)

使用聊天机器人来指导学生的议论文写作摘要研究表明,英语作为外语的学生的议论文写作受益于与同龄人的互动。然而,在实践中找到一个理想的对象很困难,聊天机器人被认为是这个问题的潜在解决方案。聊天机器人是人工智能的一种形式,…

Studio One6最新更新教程及安装包下载

Studio One6拥有多达50款原生效果插件,例如Analog Delay延迟插件,除能制作延迟效果外,还提供了制作复古的镶边与和声效果。Rotor插件制作的经典旋转扬声器效果也是非常不错的。这些插件,无论是在用户界面,还是使用体验…