ubuntu+ros新手笔记(五):初探anaconda+cuda+pytorch
深度学习三件套:初探anaconda+cuda+pytorch
系统ubuntu22.04
1.初探anaconda
1.1 安装
安装过程参照【详细】Ubuntu 下安装 Anaconda
1.2 创建和删除环境
- 创建新环境
conda create -n your_env_name python=x.x
- 比如我创建了一个名为“py312“的环境
conda create -n py312 python=3.12
如下图:anaconda/envs目录下多了一个py312文件夹,这个文件夹就是py312环境中安装的所有包存放的位置
- conda命令进入py312环境
conda activate py312
- 查看新建的py312环境中有什么包
conda list
5. 删除已有的虚拟环境
conda remove -n your_env_name --all
2. 初探cuda
2.1 根据NVIDIA显卡型号确定对应的显卡驱动版本并安装
安装教程参照Ubuntu 如何根据NVIDIA显卡型号确定对应的显卡驱动版本并安装
nvidia-smi #查看GPU信息, 注意:安装完显卡驱动后需要先重启一次电脑
打开终端执行:ubuntu-drivers devices 来看显卡的驱动相关信息。
如果没有显示nvidia相关驱动列表,请检查显卡设置是否完整。
推荐(recommend:建议、推荐)安装nvidia-driver-550,因此我们直接运行指令进行安装:
sudo apt install nvidia-driver-550 #安装550驱动
安装完成后终端是这样的:
再次运行nvidia-smi
(重启计算机才会生效!)
上述内容我们主要观察两个点:
- 显卡的驱动版本 (Driver Version)
- 该显卡驱动所支持的CUDA版本上限 (CUDA Version)
2.2 根据显卡驱动版本,安装对应的CUDA版本
以我的显卡做个示例:可以发现,我这里的NVIDIA显卡驱动版本是 550.120,这里可以看到本机最高支持 CUDA 12.4,也就是说我这张卡12.4之下的CUDA版本该显卡都可以支持,12.4之上的则不支持。
2.2.1 确定 CUDA Toolkit版本
根据显卡的驱动版本,去NVIDIA官网(往下翻)查看该驱动版本所能支持的CUDA版本:
如下表:
2.2.2 安装 CUDA(安装历史版)
点击链接下载历史版本的CUDA Toolkit
找到你所要下载的版本,我就找CUDA Toolkit 12.4.0,点进去
然后选择自己对应的系统版本的CUDA,并下载(在这里我们推荐用runfile(local)的方式进行下载):
请注意,有的CUDA版本只支持特定版本的linux发行版系统,请进行匹对。
按照网页中给出来的指令依次执行:
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run
下载页面,下载完成需要大约15分钟。。。
下载完成:然后弹出选择界面,用手指点击键盘的↑ ↓按键。
-
选择
Continue
,然后输入accept
:
-
按回车取消 Driver 的安装,也就是
[ ]
里面没有X
(因为一般已经装好驱动了),然后回车选择Install
:
-
上面一步,选择
Install
后,终端就会跳出选择界面,回到正常终端模式,并且没有任何提示。
这是正常现象,等待安装完成即可。安装完成后,会出现如下类似界面:
-
接着我们需要添加CUDA的环境变量,以便于可以任何地方都能启动它(不知道Linux的环境变量知识点可自行搜索),输入以下命令:
sudo gedit ~/.bashrc
在其中添加并保存:
export PATH=/usr/local/cuda-12.4/bin:$PATH
保存,关闭即可。
注意,其中的cuda版本选为你要安装的版本,上面命令中的是
cuda-12.4
,请根据实际情况进行更改。 -
接着:
source ~/.bashrc
至此我们安装cuda成功,可以通过以下命令查看cuda信息:
查看CUDA版本信息:nvcc --version
没有问题的话,一般会输出以下信息:
与没有安装cuda toolkit前对比:
3. 初探pytorch
3.1 pytorch 应该装在哪个python环境里?
python --version # 查看当前python的版本
type python3 # 查找python3的位置
在ubuntu系统中的python用python --version
会报错,必须写成python3 --version
从base环境切换到ubuntu系统自带的python环境,用pip list
指令查看安装的包,包含了之前我们安装的ros2相关的所有包了!!如下,例如小乌龟turtlesim,远程键盘teleop-twist-keyboard等等。。。
我决定把pytorch装在系统python里,不知道会不会有区别,先看看效果吧。主要是怕其他环境里另一个pytorch版本的计算效果会更好,到时候还需要两个环境联调,就涉及到在代码中设置python版本的问题,可能会很麻烦。先装在系统的Python里试试。
3.2 正式进入pytorch安装流程。。。。。。
安装教程2023年最新Ubuntu安装pytorch教程
Pytorch传送门
我们打开pytorch的网站,注意这里选择安装cuda12.1是完全没有问题呢,假如你的最新驱动最高能安装的cuda版本只有cuda11.0,那么你只能选择安装cuda10.2。
注意:很多新人下载东西都喜欢下载最新的,但是经验告诉我们。最新的版本往往BUG很多,而且还不够稳>
定,但是太老的版本又可能有功能缺失等问题,因此我推荐各位小白萌新,装比最新版本低两三个版本的库,pytorch和cuda都是同理。
目前最新版本是v2.5.0,所以我安装的v2.3.1:
我用pip装的:
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu121
装完后进入python3,
import torch
torch.cuda.is_available()
验证pytorch是否能用,输出True即为成功,False为失败。
pip list查看系统python环境里装的包,左右对比,比未安装前,发现多出了torch, torchaudio, torchvision的3个包,如下:
相关文章:

ubuntu+ros新手笔记(五):初探anaconda+cuda+pytorch
深度学习三件套:初探anacondacudapytorch 系统ubuntu22.04 1.初探anaconda 1.1 安装 安装过程参照【详细】Ubuntu 下安装 Anaconda 1.2 创建和删除环境 创建新环境 conda create -n your_env_name pythonx.x比如我创建了一个名为“py312“的环境 conda cre…...
C++ List(双向链表)
是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个 信息块(即实际存储的数据)、一个前驱指针和一个后驱指针。它无需分配指定 的内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中&#…...

ASP.NET|日常开发中读写TXT文本详解
ASP.NET|日常开发中读写TXT文本详解 前言一、读取 TXT 文本1.1 使用StreamReader类 二、写入 TXT 文本2.1 使用StreamWriter类 三、文件编码问题3.1 常见编码格式 四、错误处理和性能考虑4.1 错误处理4.2 性能考虑 结束语优质源码分享 ASP.NET|日常开发中…...

【机器学习】在不确定的光影中:机器学习与概率论的心灵共舞
文章目录 概率与统计基础:解锁机器学习的数据洞察之门前言一、概率论基础1.1 概率的基本概念与性质1.1.1 概率的定义1.1.2 样本空间与事件1.1.3 互斥事件与独立事件1.1.4 概率的计算方法 1.2 条件概率与独立性1.2.1 条件概率1.2.2 独立事件 1.3 随机变量1.3.1 随机变…...

【论文笔记】Editing Models with Task Arithmetic
🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Editing Models with Task…...
ESP32外设学习部分--UART篇
前言 在我们学习嵌入式的过程中,uart算是我们用的非常多的一个外设了,我们可以用串口打印信息,也可以用于设备通信,总之串口的作用非常多,我们也非常有必要熟练地去掌握这个外设。 uart的配置 uart的参数配置 uart_…...

ssm-day04 mybatis
mybatis是一个持久层框架,针对的是JDBC的优化 简化数据库操作,能进行单表、多表操作,在这个框架下,需要我们自己写SQL语句 Mapper接口和MapperXML文件就相当于Dao和Dao层的实现 通常将xml文件放在resources包下 ,放在…...
es中段是怎么合并的
文章目录 1. 段合并的背景2. 合并的方式2.1TieredMergePolicy 的层次结构2.2 层次的基本规则2.3 如何理解层次(tier)2.4. 合并过程中的层次示例2.5. TieredMergePolicy 的优势2.6. 小结 3. 合并过程中的优化4. 合并的性能考虑5. 使用 API 手动合并6. 合并…...
5、可暂停的线程控制模型
一、需求 在做播放器的时候,很多的模块会创建一个线程,然后在这个线程上跑单独的功能,同时,需要对这个线程进行控制,比如暂停,继续等,如播放器的解码,解封装等,都需要对…...
sql优化--mysql隐式转换
sql隐式转换 在SQL中,隐式转换是数据库自动进行的类型转换,隐式转换可以帮助我们处理不同类型的数据。 比如,数据表的字段是字符串类型的,传入一个整型的数据,也能够运行sql。 sql隐式转换的弊端 sql隐式转换&…...

Scratch021(画笔)
画笔模块 可以这么理解,画笔模块是Scratch的拓展模块,用它可以完成很多的功能,非常有趣! 案例要求 点击绿旗运行程序,页面显示需要绘制的背景。 可以使用鼠标移动画笔角色,按照顺序点击连线,…...
Leetcode 3387. Maximize Amount After Two Days of Conversions
Leetcode 3387. Maximize Amount After Two Days of Conversions 1. 解题思路2. 代码实现 题目链接:3387. Maximize Amount After Two Days of Conversions 1. 解题思路 这一题思路上其实就是要分别求出day 1以及day 2中原始货币与其他各个货币之间的成交价&…...

机器视觉与OpenCV--01篇
计算机眼中的图像 像素 像素是图像的基本单位,每个像素存储着图像的颜色、亮度或者其他特征,一张图片就是由若干个像素组成的。 RGB 在计算机中,RGB三种颜色被称为RGB三通道,且每个通道的取值都是0到255之间。 计算机中图像的…...

简单的Java小项目
学生选课系统 在控制台输入输出信息: 在eclipse上面的超级简单文件结构: Main.java package experiment_4;import java.util.*; import java.io.*;public class Main {public static List<Course> courseList new ArrayList<>();publi…...

使用layui的table提示Could not parse as expression(踩坑记录)
踩坑记录 报错图如下 原因: 原来代码是下图这样 上下俩中括号都是连在一起的,可能导致解析问题 改成如下图这样 重新启动项目,运行正常!...
区块链共识机制详解
一.共识机制简介 在区块链的交流和学习中,「共识算法」是一个很频繁被提起的词汇,正是因为共识算法的存在,区块链的可信性才能被保证。 1.1 为什么需要共识机制? 所谓共识,就是多个人达成一致的意思。我们生活中充满…...

【Excel】单元格分列
目录 分列(新手友好) 1. 选中需要分列的单元格后,选择 【数据】选项卡下的【分列】功能。 2. 按照分列向导提示选择适合的分列方式。 3. 分好就是这个样子 智能分列(进阶) 高级分列 Tips: 新手推荐基…...

【含开题报告+文档+PPT+源码】基于微信小程序的旅游论坛系统的设计与实现
开题报告 近年来,随着互联网技术的迅猛发展,人们的生活方式、消费习惯以及信息交流方式都发生了深刻的变化。旅游业作为国民经济的重要组成部分,其信息化、网络化的发展趋势也日益明显。旅游论坛作为旅游信息交流和分享的重要平台࿰…...

微软 Phi-4:小型模型的推理能力大突破
在人工智能领域,语言模型的发展日新月异。微软作为行业的重要参与者,一直致力于推动语言模型技术的进步。近日,微软推出了最新的小型语言模型 Phi-4,这款模型以其卓越的复杂推理能力和在数学领域的出色表现,引起了广泛…...

操作系统课后习题2.2节
操作系统课后习题2.2节 第1题 CPU的效率指的是CPU的执行速度,这个是由CPU的设计和它的硬件来决定的,具体的调度算法是不能提高CPU的效率的; 第3题 互斥性: 指的是进程之间的同步互斥关系,进程是一个动态的过程&#…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...