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个包,如下:

在这里插入图片描述

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

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

相关文章

Diffusino Policy学习note

Diffusion Policy—基于扩散模型的机器人动作生成策略 - 知乎 建议看看,感觉普通实验室复现不了这种工作。复现了也没有太大扩展的意义。 Diffusion Policy 是监督学习吗 Diffusion Policy 通常被视为一种基于监督学习的方法,但它的实际训练过程可能结…

【Unity功能集】TextureShop纹理工坊(三)图层(下)

项目源码:在终章发布 索引 图层渲染绘画区域图层Shader 编辑器编辑模式新建图层设置当前图层上、下移动图层删除图层图层快照 图层 在PS中,图层的概念贯穿始终(了解PS图层),他可以称作PS最基础也是最强大的特性之一。…

1、数据库概念和mysql表的管理

数据库概念 datebase:用来组织,存储,管理数据的仓库。 数据库的管理系统:DBMS(用来实现对数据的有效组织、关系和存取的系统软件) 关系型和非关系型数据库 关系型数据库:mysql、oracle 非关…

70 mysql 中事务的隔离级别

前言 mysql 隔离级别有四种 未提交读, 已提交读, 可重复度, 序列化执行 然后不同的隔离级别存在不同的问题 未提交读存在 脏读, 不可重复度, 幻觉读 等问题 已提交读存在 不可重复度, 幻觉读 等问题 可重复读存在 幻觉读 等问题 序列化执行 没有以上问题 然后 我们这里…

【FFmpeg】解封装 ① ( 封装与解封装流程 | 解封装函数简介 | 查找码流标号和码流参数信息 | 使用 MediaInfo 分析视频文件 )

文章目录 一、解封装1、封装与解封装流程2、解封装 常用函数 二、解封装函数简介1、avformat_alloc_context 函数2、avformat_free_context 函数3、avformat_open_input 函数4、avformat_close_input 函数5、avformat_find_stream_info 函数6、av_read_frame 函数7、avformat_s…

Nginx(Linux之Ubuntu)

1.1.什么是Nginx Nginx(发音为"engine x")是由俄罗斯开发者Igor Sysoev创建的一款轻量级、高性能的Web服务器。它首次发布于2004年,如今已成为全球最受欢迎的Web服务器之一。Nginx以其卓越的性能和灵活性而闻名,适用于…

使用Docker启用MySQL8.0.11

目录 一、Docker减小镜像大小的方式 1、基础镜像选择 2、减少镜像层数 3、清理无用文件和缓存 4、优化文件复制(COPY和ADD指令) 二、Docker镜像多阶段构建 1、什么是dockers镜像多阶段构建 1.1 概念介绍 1.2 构建过程和优势 2、怎样在Dockerfil…

【微信小程序开发 - 3】:项目组成介绍

文章目录 项目组成介绍项目的基本组成结构小程序页面的组成部分JSON配置文件的作用app.json文件project.config.json文件sitemap.json文件页面的 .json 配置文件新建小程序页面修改项目首页 XWML模板XWML 和 HTML 的区别 WXSS样式WXSS 和 CSS 的区别 .js文件 项目组成介绍 项目…

springboot的项目创建和常用注解

创建springboot项目&#xff1a; 首先更改一下url&#xff0c;点击小齿轮改成https://start.aliyun.com/ 首先在选模块的时候选上SpringWeb&#xff0c;然后jdk1.8对应的springboot版本是2.6.13或者2.7.6 pom.xml: 用1.8的jdk&#xff0c;mybatis的包版本不能太高 <!-- …

flask_socketio 以继承 Namespace方式实现一个网页聊天应用

点击进入上一篇&#xff0c;可作为参考 实验环境 python 用的是3.11.11 其他环境可以通过这种方式一键安装&#xff1a; pip install flask3.1.0 Flask-SocketIO5.4.1 gevent-websocket0.10.1 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple pip list 详情如下&am…

笔记本重装系统教程【详细教程】

一、装机前说明 各位有装机需求的伙伴&#xff0c;请根据自己的电脑配置选择合适操作系统&#xff0c;可以实现自己装机的伙伴&#xff0c;相信大家这点可以确认好。 ———————————————————————— 我的配置&#xff1a; 我的电脑是联想拯救者lenovoY7000…

uniapp入门 01创建项目模版

0安装 hbuilder x 标准版 1.创建模版工程 2.创建官方 案例工程 index.uvuewen 文件解析 <!-- 模版 标签 --> <template><view></view></template><!-- 脚本 --> <script>export default {data() {return {}},onLoad() {},methods:…

ARCGIS国土超级工具集1.2更新说明

ARCGIS国土超级工具集V1.2版本&#xff0c;功能已增加至47 个。在V1.1的基础上修复了若干使用时发现的BUG&#xff0c;新增了"矢量分割工具"菜单&#xff0c;同时增加及更新了了若干功能&#xff0c;新工具使用说明如下&#xff1a; 一、勘测定界工具栏更新界址点成果…

Vue3源码笔记阅读1——Ref响应式原理

本专栏主要用于记录自己的阅读源码的过程,希望能够加深自己学习印象,也欢迎读者可以帮忙完善。接下来每一篇都会从定义、运用两个层面来进行解析 定义 运用 例子:模板中访问ref(1) <template><div>{{str}}</div> </template> <script> impo…

[react] 优雅解决typescript动态获取redux仓库的类型问题

store.getState()是可以获取总仓库的 先拿到函数的类型 再用ReturnType<T> 它是 TypeScript 中的一个内置条件类型&#xff0c;用于获取某个函数类型 T 的返回值类型 代码 // 先拿总仓库的函数类型type StatefuncType typeof store.getState;//再拿函数类型T的返回值类…

【Qt】QWidget中的常见属性及其功能(一)

目录 一、 enabled 例子&#xff1a; 二、geometry 例子&#xff1a; window fram 例子 &#xff1a; 四、windowTiltle 五、windowIcon 例子&#xff1a; qrc机制 创建qrc文件 例子&#xff1a; qt中的很多内置类都是继承自QWidget的&#xff0c;因此熟悉QWidget的…

R语言的字符串操作

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言医学数据分析实践-R语言的数据结构-CSDN博客 在R语言中&#xff0c;字符串是一种表示文本数据的数…

webGL硬核知识:图形渲染管渲染流程,各个阶段对应的API调用方式

一、图形渲染管线基础流程概述 WebGL 的图形渲染管线大致可分为以下几个主要阶段&#xff0c;每个阶段都有其特定的任务&#xff0c;协同工作将 3D 场景中的物体最终转换为屏幕上呈现的 2D 图像&#xff1a; 顶点处理&#xff08;Vertex Processing&#xff09;阶段&#xff1…

《深入浅出Apache Spark》系列⑤:Spark SQL的表达式优化

导读&#xff1a;随着数据量的快速增长&#xff0c;传统的数据处理方法难以满足对计算速度、资源利用率以及查询响应时间的要求。为了应对这些挑战&#xff0c;Spark SQL 引入了多种优化技术&#xff0c;以提高查询效率&#xff0c;降低计算开销。本文从表达式层面探讨了 Spark…

创建项目以及本地仓库和远程仓库并上传项目

创建项目以及本地仓库和远程仓库并上传项目 其详细流程如下&#xff1a; 1、本地创建项目 2、创建本地仓库&#xff08;若使用idea在创建项目时选择了创建.git本地仓库&#xff0c;则此步骤省略&#xff09; 进入到你需要上传的项目的目录下&#xff0c;右键找到Git Bah He…