ubuntu20配置深度学习环境

目录

  • 系统环境
  • 安装anaconda
    • 文件的安装
    • anaconda环境配置
      • anaconda换中科大源
      • 常用的anaconda命令
  • 安装显卡驱动
  • 安装CUDA
  • 下载cudnn
  • 安装pytorch
    • 更换conda源
    • 选择对应的pytorch版本进行安装

系统环境

ubuntu20,安装了ros noetic。

参考博客主要有:

  1. https://github.com/afeng616/Build-Cozy-Ubuntu-Environment/blob/master/documents/07-%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83.md
  2. https://blog.csdn.net/weixin_46414430/article/details/129266433

安装anaconda

文件的安装

直接在清华镜像上下载。
我直接下载最新版本,Anaconda3-2024.02-1-Linux-x86_64.sh
在下载的地方,敲命令安装:

bash Anaconda3-2024.02-1-Linux-x86_64.sh

然后按回车,接下来就有很多条款部分,直接按q跳出
会出现下面的画面,输入yes后按回车。
在这里插入图片描述
接着就是设置安装位置,这里我选择默认安装地址。按完回车后就是等待安装的过程。
最后安装完后,会有选项:需不需要初始化,我们填yes,需要初始化。
在这里插入图片描述

anaconda环境配置

安装完后,还需要配置conda,使得conda这个指令能用在任何地方,像python,code这种一样。
主要是去修改~/.bashrc文件。

gedit ~/.bashrc

然后在最后面一行添加anaconda的bin目录,就是前面安装的时候设置的目录。

export PATH="/home/xz/anaconda3/bin:$PATH"

最后就是source这个文件来生效

source ~/.bashrc

这是在终端输入conda,显示一系列帮助信息就说明conda安装成功。

(PS):如果不想新开的终端就在base环境中的话,可以进行设置:

conda config --set auto_activate_base false

anaconda换中科大源

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
conda config --show channels

常用的anaconda命令

# 创建环境
conda create -n xxx python=3.8
# 激活环境
conda activate xxx
# 删除环境
conda remove -n xxx --all
# 查看目前已有的环境
conda env list

安装显卡驱动

最简单方便的方法就是直接在软件更新的附加驱动上直接安装,装完重启即可,如果去安装官网的驱动,操作难度大,可能系统桌面都进不去,反正我之前在ubuntu18系统上安装过一次,但是进不去系统桌面,最后卸载了好不容易才能进系统桌面,所以还是推荐软件更新去安装显卡驱动的方法。
在这里插入图片描述
这里我是安装了535,看其他博客说不要安装server后缀和open后缀的就行,然后重启。
检查是否成功安装,只需要在终端输入nvidia-smi,显示出具体显卡信息即可。

在这里插入图片描述

安装CUDA

安装前的准备:卸载之前残留的CUDA,保证安装前的环境干净

sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \
 "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" 
sudo apt-get autoremove
  1. 这个主要是看显卡版本去安装,由上面nvidia-smi显示的信息,看到显卡是3090,可以安装最高版本的是CUDA12.2.(我的笔记本显卡3050,同样也是支持最高版本CUDA12.2)
    这里我参考这篇博客:https://blog.csdn.net/weixin_46414430/article/details/129266433。安装CUDA11.6.0.

  2. 下载CUDA文件,下载地址:https://developer.nvidia.com/cuda-toolkit-archive。选择11.6.0版本
    在这里插入图片描述

  3. 瞄的,中文英伟达网站没有CUDA的历史版本,在外网下CUDA11.6.0又容易到99%的时候失败!!!WTF在这里插入图片描述
    实了4,5次,还是失败,最后用浏览器来下载,直接把这个http地址输入到谷歌浏览器中,即可通过浏览器下载,下完了也不会报错。

  4. 安装cuda11.6之前先安装一些依赖的库文件

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
  1. 用下载好的文件来进行安装。
sudo sh cuda_11.6.0_510.39.01_linux.run

在选择continue后,在相应位置上填上accept
在这里插入图片描述
注意这个时候需要把这个cuda安装包的驱动取消,按空格取消安装(因为前面已经安装了一个),取消后选择install即可
在这里插入图片描述
最后安装完,报了一个警报,说没安装这个510驱动,这里没所谓。
在这里插入图片描述
6. 配置CUDA的环境
可以在usr/local下看到两个文件夹:cuda-11.6和cuda,cuda其实是安装的时候自动创建的软链接,连接到11.6上
在这里插入图片描述
打开~/.bashrc文件

sudo gedit ~/.bashrc

然后在配置anaconda路径前面加上:(其他博客有说最好是把anaconda的路径放在.bashrc的最末尾)

export PATH=$PATH:/usr/local/cuda/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64  
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64

然后source一下

source ~/.bashrc
  1. 验证是否安装成功
    随便新开一个终端,输入:
nvcc --version

显示cuda版本是11.6说明安装成功。

下载cudnn

下载的链接:https://developer.nvidia.com/rdp/cudnn-archive
推荐中文链接:https://developer.nvidia.cn/rdp/cudnn-archive
这里我选择的是cudnn8.4.1 for cuda 11.x的tar版本
在这里插入图片描述
垃圾英伟达还要登陆才能下,又浪费快半个小时!!!!!

  1. 下载完后进行解压:并且将对应的库和头文件移到cuda目录中
tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz

sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 

sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 

sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
  1. 检查cudnn
cat /usr/local/cuda-11.6/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

在这里插入图片描述

安装pytorch

不知道为什么,前面conda配置的源好像连接不上,所以在安装前先换下conda的源。

更换conda源

  1. 先恢复默认源
conda config --remove-key channels
  1. 添加清华镜像源
#添加镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
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/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2

#显示检索路径
conda config --set show_channel_urls yes

#显示镜像通道
conda config --show channels

选择对应的pytorch版本进行安装

pytorch历史版本的链接:pytorch
这里选择的pytorch版本为v1.12.0。它这边在Linux and Window这里支持CUDA 11.6版本。所以我们选择它。
从链接中找到对应CUDA11.6版本的conda安装命令

  1. 创建一个anaconda环境
conda create -n nerf-pytorch python=3.8
  1. 进入anaconda环境
conda activate nerf-pytorch
  1. 安装pytorch(从官网复制下来的指令)。安装的时候需要注意,因为conda配置了清华源,最好把翻墙的关了,不然有可能下载的时候出问题,出问题了也别慌,重复下面的命令即可。
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.6 -c pytorch -c conda-forge

上面是通过conda来安装,但是实际装完后,运行脚本训练的时候,会报错,可能是安装了非GPU的pytorch,看到一片博客说最好还是用pip来安装

pip install torch==1.12.0+cu116 torchvision==0.13.0+cu116 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu116

注意:最好还是通过pip来安装,能够保证装的是GPU的pytorch。反正我的情况是用conda装,跑训练报错,用pip装,就可以正常跑训练。

最后成功安装
在这里插入图片描述

  1. 检查pytorch是否成功
    在终端输入python,然后import pytorch的包,如果正确找到pytorch的包应该就没问题
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Trick】conda安装python依赖时出现429 Client Error

起因 我在根据yml文件安装依赖和创建虚拟环境时,出现报错,主要报错信息为以下两点: 【1】Collecting package metadata (repodata.json): failed 【2】requests.exceptions.HTTPError: 429 Client Error: Too Many Requests for url: https…

Git在无法访问github的访问方法

Git无法下载github上的源代码 代理的情况 问题:Failed to connect to github.com port 443 after 21100 ms: Couldnt connect to server 提示我们需要为Git单独配置代理。 查看我们的代理端口  为git 设置全局代理 git config --global http.proxy 127.0.0.1:&l…

【LeetCode刷题记录】简单篇-104-二叉树的最大深度

【题目描述】 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 【测试用例】 示例1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例2: 输入&#…

颜值高的浏览器 ARC

可以使用 chrome 的插件,和书签,现在可以下载,别的不说这个ui 的颜值是可以的, 而且很丝滑

思考题 —— Windows 登录密码

1.windows登录的明文密码,存储过程是怎么样的?密文存放在哪个文件下?该文件是否可以打开,并且查看到密文? 系统通过保存密码的哈希值来确保安全性,进行加密存储的方法通常为NTLM或Kerberos身份认证协议。该…

SFOS1:开发环境搭建

一、简介 最近在学习sailfish os的应用开发,主要内容是QmlPython。所以,在开发之前需要对开发环境(virtualBox官方SDKcmake编译器python)进行搭建。值得注意的是,我的开发环境是ubuntu22.04。如果是windows可能大同小异…

Codeforces Round 943 (Div. 3 ABCDEFG1G2题) 视频讲解

A. Maximize? Problem Statement You are given an integer x x x. Your task is to find any integer y y y ( 1 ≤ y < x ) (1\le y<x) (1≤y<x) such that gcd ⁡ ( x , y ) y \gcd(x,y)y gcd(x,y)y is maximum possible. Note that if there is more tha…

Webshell绕过技巧分析之-base64/HEX/Reverse/Html/Inflate/Rot13

在网络安全运营&#xff0c;护网HVV&#xff0c;重保等活动的过程中&#xff0c;webshell是一个无法绕过的话题。通常出现的webshell都不是以明文的形式出现&#xff0c;而是针对webshell关键的内容进行混淆&#xff0c;编码来绕过网络安全产品&#xff08;IDS&#xff0c;WAF&…

Linux USB转串口设备路径的查找方法

1、USB转串口设备 USB转串口设备是在嵌入式软件开发过程中经常要使用的&#xff0c;常常用于对接各种各样的串口设备。如果一台linux主机上使用多个usb转串口设备时&#xff0c;应用程序中就需要知道自己操作的是哪个串口设备。串口设备在系统上电时&#xff0c;由于驱动加载的…

短剧在线搜索表格-送模板

短剧在线搜索表格-附模板 介绍电脑界面手机界面送附加功能&#xff1a;反馈缺失短剧送&#xff1a;资源更新源头获取 介绍 你好&#xff01; 这是你第一次使用 金山在线文档 所生成的短剧搜索表格&#xff0c;支持批量导入自己转存的短剧名字和链接&#xff0c;实现在线搜索&a…

Kotlin基础知识总结(三万字超详细)

1、条件语句 &#xff08;1&#xff09;if条件 if条件表达式&#xff0c;每一个分支最后一条语句就是该分支的返回值。适用于每个分支返回值类型一致这种情况。 fun getDegree(score: Int): String{val result: String if(score 100){"非常优秀"}else if(score …

Docker使用进阶篇

文章目录 1 前言2 使用Docker安装常用镜像示例2.1 Docker安装RabbitMQ2.2 Docker安装Nacos2.3 Docker安装xxl-job&#xff08;推荐该方式构建&#xff09;2.4 Docker安装redis2.5 Docker安装mysql 1 前言 上一篇介绍了Docker的基础概念&#xff0c;带你 入门Docker&#xff0c…

菜鸡学习netty源码(四)—— EventLoopGroup

1.概述 我们前面进行过分析,channel为netty网络操作的抽象类,EventLoop负责处理注册到其上的Channel处理的I/O事件;EventLoopGroup是一个EventLoop的分组,它可以获取到一个或者多个的EventLoop对象。 2.类关系图 NioEventLoopGroup的类继承图,蓝色部分为对应的java类,绿…

当管道运算符遇上无限可能:探索数据流的奇妙之旅

文章目录 序言目的进程间通信的理解进程间通信的发展历史管道创建验证管道的大小管道的4种情况管道的5种特征 序言 通过该命令计算了在当前路径下一共有多少个文件夹的任务 进程虽然有独立性,但是进程并不孤僻,他们之间也会相互进行协作共同完成一件事 这个前提是他们之间的信…

Java如何获取当前日期和时间?

Java如何获取当前日期和时间&#xff1f; 本文将为您介绍 Java 中关于日期和时间获取的方法&#xff0c;以及介绍 Java 8 中获取日期和时间的全新API。 1、 System.currentTimeMillis() 获取标准时间可以使用 System.currentTimeMillis() 方法来获取&#xff0c;此方法优势是…

Flutter笔记:Widgets Easier组件库(12)使用消息吐丝(Notify Toasts)

Flutter笔记 Widgets Easier组件库&#xff08;12&#xff09;使用消息吐丝&#xff08;Notify Toasts&#xff09; - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 29114848416…

Linux(openEuler、CentOS8)基于chrony企业内网NTP服务器搭建实验

一、知识点 chrony 是由 守护进程 chronyd 以及 命令行工具 chronyc 组成的 chronyd 在后台静默运行并通过 123 端口与时间服务器定时同步时间&#xff0c;默认的配置文件是 /etc/chrony.conf chronyc 通过 323 端口与 chronyd 交互&#xff0c;可监控 chronyd 的性能并在运…

单例、工厂、策略、装饰器设计模式

1. 单例模式&#xff08;Singleton Pattern&#xff09;&#xff1a; 单例模式是一种常用的设计模式&#xff0c;用于确保一个类只有一个实例&#xff0c;并提供一个全局访问点。这种模式的特点是类自己负责保存其唯一的实例&#xff0c;并控制其实例化过程。单例模式广泛应用…

微服务----nacos配置及简单使用

目录 什么是nacos 项目在nacos上进行注册 注入nacos依赖 配置application.yml文件 nacos写入配置文件 首先&#xff0c;还是需要导入依赖 然后在nacos中编写配置文件 prod是我自定义的一个命名空间&#xff0c;在这里面进行配置文件编写~ 启动类上加上注解 编写Patt…

构建智能化监控追踪系统:架构设计与实践

随着信息技术的不断发展&#xff0c;监控追踪系统在各个领域的应用越来越广泛。本文将探讨监控追踪系统的架构设计&#xff0c;介绍其关键特点和最佳实践&#xff0c;助力各行业实现智能化监控与管理。 1. **需求分析与功能设计&#xff1a;** 在设计监控追踪系统之前&#xf…