ubuntu+ros新手笔记(五):初探anaconda+cuda+pytorch

深度学习三件套:初探anaconda+cuda+pytorch

系统ubuntu22.04
ros2 humble

1.初探anaconda

1.1 安装

安装过程参照【详细】Ubuntu 下安装 Anaconda
在这里插入图片描述

1.2 创建和删除环境

  1. 创建新环境
conda create -n your_env_name python=x.x
  1. 比如我创建了一个名为“py312“的环境
conda create -n py312 python=3.12

如下图:anaconda/envs目录下多了一个py312文件夹,这个文件夹就是py312环境中安装的所有包存放的位置
在这里插入图片描述

  1. conda命令进入py312环境
conda activate py312
  1. 查看新建的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(重启计算机才会生效!)
在这里插入图片描述
上述内容我们主要观察两个点:

  1. 显卡的驱动版本 (Driver Version)
  2. 该显卡驱动所支持的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分钟。。。
在这里插入图片描述
下载完成:在这里插入图片描述然后弹出选择界面,用手指点击键盘的↑ ↓按键。

  1. 选择Continue ,然后输入accept
    在这里插入图片描述在这里插入图片描述

  2. 按回车取消 Driver 的安装,也就是[ ]里面没有X(因为一般已经装好驱动了),然后回车选择 Install
    在这里插入图片描述

  3. 上面一步,选择 Install后,终端就会跳出选择界面,回到正常终端模式,并且没有任何提示。
    这是正常现象,等待安装完成即可。安装完成后,会出现如下类似界面:
    在这里插入图片描述

  4. 接着我们需要添加CUDA的环境变量,以便于可以任何地方都能启动它(不知道Linux的环境变量知识点可自行搜索),输入以下命令:

    sudo gedit ~/.bashrc
    

    在其中添加并保存:

    export PATH=/usr/local/cuda-12.4/bin:$PATH
    

    保存,关闭即可。

    注意,其中的cuda版本选为你要安装的版本,上面命令中的是cuda-12.4,请根据实际情况进行更改。 在这里插入图片描述

  5. 接着:
    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个包,如下:

在这里插入图片描述

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

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

相关文章

【测试】Pytest

建议关注、收藏! 目录 功能pytest 自动化测试工具。 功能 单元测试:用于验证代码的最小功能单元(如函数、方法)的正确性。 简单的语法:不需要继承特定类或使用复杂的结构。断言语句简化。 自动发现测试:P…

Unity性能优化---使用SpriteAtlas创建图集进行批次优化

在日常游戏开发中,UI是不可缺少的模块,而在UI中又使用着大量的图片,特别是2D游戏还有很多精灵图片存在,如果不加以处理,会导致很高的Batches,影响性能。 比如如下的例子: Batches是9&#xff0…

环境和工程搭建

1.案例介绍 1.1 需求 实现⼀个电商平台 该如何实现呢? 如果把这些功能全部写在⼀个服务⾥, 这个服务将是巨⼤的. 巨多的会员, 巨⼤的流量, 微服务架构是最好的选择. 微服务应⽤开发的第⼀步, 就是服务拆分. 拆分后才能进⾏"各⾃开发" 1.2 服务拆分 拆分原则 …

解决Jmeter HTTP Cookie管理器cookie不生效

解决Jmeter HTTP Cookie管理器cookie不生效问题 解决Jmeter HTTP Cookie管理器cookie不生效问题1、设置Jmeter HTTP Cookie管理器cookie后,发起的请求显示[no cookies]jmeter问题复现:这里同样使用postman进行重试,发现是可以正常获取数据的&…

操作系统课后习题2.2节

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

二叉搜索树 平衡树(c嘎嘎版)

定义: 二叉搜索树是一种二叉树的树形数据结构,其定义如下: 空树是二叉搜索树。 若二叉搜索树的左子树不为空,则其左子树上所有点的附加权值均小于其根节点的值。 若二叉搜索树的右子树不为空,则其右子树上所有点的附加权值均大于其根节点的值。 二叉搜索树的左右子树均为…

Everything搜索实现

最近编写NTFS文件实时搜索工具, 类似 Everything 这样, 速度快还小巧, 于是花了约3周进行研究, 总结下学习过程中一些经验 实现分3部分完成 一. 解析NTFS 主文件表(MFT) 这一步是获取文件数据的唯一迅速且可靠的来源 NTFS_MFT_Parse.h #pragma once #include "NTFS_Bas…

23.DDD与微服务

学习视频来源:DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 DDD与微服务的关系1. DDD可以用微服务实现,也可以不用微服务实现2. DDD是微服务拆分的必须参考项之一3. 微服务架构…

vscode 打开 setting.json

按下Ctrl Shift P(Windows/Linux)或Cmd Shift P(Mac)来打开命令面板。输入open settings,然后选择 Open User Settings(JSON)。打开settings.json文件 ------修改设置-----: 1、 html代码的行长度&am…

汽车电子元件的可靠性保障:AEC-Q102认证

AEC-Q102标准的起源与价值 随着汽车电子系统的日益复杂,电子器件必须能够在极端的温度、湿度、振动和电磁干扰等恶劣条件下保持性能。AEC-Q102标准由汽车电子委员会(AEC)制定,专门针对LED、激光二极管和光电二极管等光电器件&…

RK3576 Android14,内存大于4G时UVC应用无法申请内存

最近有个项目需要将Linux虚拟成UVC摄像头,开发过程中遇到一个奇怪的事情,通过V4l2框架接口申请内存时,相同的板子,只是内存一个4G一个8G。4G的内存可以申请成功,8G就不行。提示“内存不足” 内存更大反而内存不足&…

RK356X camera 配置

目录 一、RK356x camera硬件 Mipi接口 DVP接口 二、软件链路 三、dts配置 DVP MIPI sensor->dphy->isp_vir 一、RK356x camera硬件 RK356X包含RK3566和RK3568,在camera方面,两颗芯片的软硬件是兼容的,共有两种硬件连接方式:DVP和MIPI。 Mipi接口 图一 如图…

用前端html如何实现2024烟花效果

用HTML、CSS和JavaScript编写的网页&#xff0c;主要用于展示“2024新年快乐&#xff01;”的文字形式烟花效果。下面是对代码主要部分的分析&#xff1a; HTML结构 包含三个<canvas>元素&#xff0c;用于绘制动画。引入百度统计的脚本。 CSS样式 设置body的背景为黑…

批量合并多个Excel到一个文件

工作中&#xff0c;我们经常需要将多个Excel的数据进行合并&#xff0c;很多插件都可以做这个功能。但是今天我们将介绍一个完全免费的独立软件【非插件】&#xff0c;来更加方便的实现这个功能。 准备Excel 这里我们准备了两张待合并的Excel文件 的卢易表 打开的卢易表软件…

GLM4模型详解 - 智谱AI开源大模型全面解析

&#x1f4da; 2024年6月5日,智谱AI在开发者大会上正式开源GLM-4-9B系列大模型。本文将全面解析GLM4的技术特点、部署方案和应用场景。 GLM-4-9B 模型具备了更强大的推理性能、更长的上下文处理能力、多语言、多模态和 All Tools 等突出能力。 “All Tools” 一、模型概述 1.…

ssm-day04 mybatis

mybatis是一个持久层框架&#xff0c;针对的是JDBC的优化 简化数据库操作&#xff0c;能进行单表、多表操作&#xff0c;在这个框架下&#xff0c;需要我们自己写SQL语句 Mapper接口和MapperXML文件就相当于Dao和Dao层的实现 通常将xml文件放在resources包下 &#xff0c;放在…

观测云亮相 Doris Summit,展示流式聚合创新技术

01 技术亮点&#xff1a;重新定义流式聚合的效率与体验 在演讲中&#xff0c;熊豹详细介绍了 GuanceDB 如何支撑观测云的全量业务场景&#xff0c;并分享了 SelectDB 在处理复杂查询中的应用与挑战。从动态表结构管理到函数下推优化&#xff0c;观测云通过灵活的架构设计有效解…

qt中tr的使用

在 Qt 中使用 tr 函数对字符串进行翻译时&#xff0c;通常会通过 Qt Linguist 工具来处理翻译。以下是一个基本的步骤说明&#xff0c;展示如何将 QPushButton *btnnew QPushButton(tr("Hello World"),this); 翻译成其他语言&#xff0c;比如中文&#xff1a; 1.创建…

基于X410的LabVIEW FPGA跳频通信系统开发

跳频通信系统是一种高效的无线通信技术&#xff0c;通过在多个频率间快速切换&#xff0c;提高抗干扰能力和信号安全性。以NI USRP X410为硬件平台&#xff0c;利用LabVIEW FPGA实现一个实时跳频通信系统&#xff0c;涵盖信号生成、触发控制、接收检测及实时数据处理。 系统架构…

校园交友app/校园资源共享小程序/校园圈子集合二手物品交易论坛、交友等综合型生活服务社交论坛

多客校园社交圈子系统搭建 校园交友多功能系统源码: 1、更改学校为独立的模块。整体UI改为绿色&#xff0c;青春色&#xff0c;更贴近校园风格。2、圈子归纳到学校去进行运营。每个学校可建立多个圈子。和其他学校圈子互不干扰。3、增加用户绑定学校&#xff0c;以后进入将默认…