机器学习------ 基于ubuntu 22.04 系统下的pytorch 安装记录过程(包含cuda和cudnn的安装)

news2024/11/26 7:33:03

机器学习----- pytorch的安装过程

  • 最近,在学习机器学习,在对于理论方面进行一段时间的学习后,打算开始上手代码。在此之前,选择了pytorch作为学习的工具,这里记录下安装的过程。
  • 在这里,先把我的设备展示一下,我这里使用的还是windows 11的系统,搭建了一个基于windows的WSL-Ubuntu系统ubuntu的版本为22.04CPU为i7-12700
    GPU为rtx 3060tikernel为x86_64, 已经提前安装完成了anaconda软件,具体情况如下所示:
    在这里插入图片描述
    打开pytorch的官网:官网地址,向下拖动可以看见:
    在这里插入图片描述
    这里可以根据你的需求进行挑选,我这里选择Linux系统,和cuda11.6.

因为想要使用GPU,所以需要先安装CudaCudnn,在安装cuda和cudnn的版本之前,先要确认一下你的显卡(我这里是3060ti)最低兼容的版本。
遇事不决,先问一下AI:
在这里插入图片描述

  • 我这里暂时没有考虑到学习框架的事儿,就是熟悉一下安装流程,所以我选用最新的cuda版本进行安装

cuda的安装

打开cuda的 下载界面:cuda

  • 选择,最新的版本

    cuda-12
    在这里插入图片描述
    这里,根据自己的具体系统环境进行选择

在这里插入图片描述

选择完之后会得到:
在这里插入图片描述

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.0.1/local_installers/cuda-repo-wsl-ubuntu-12-0-local_12.0.1-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-0-local_12.0.1-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

然后,在你的终端输入上面的代码,等待运行完成。完成之后,需要配置一下环境。注意,我这里是将bashrc换为了zshrc,大家根据自己的进行修改:

sudo vi ~/.zshrc

在文本最后面加入:

export PATH=/usr/local/cuda-12.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.0/lib64

重新加载环境以及动态链:

source ~/.zshrc
sudo ldconfig

检查是否安装成功:

nvcc -V

在这里插入图片描述
这样子就是搞定了

安装cudnn

前往官网下载:cudnn

  • 这个网址貌似需要注册一下,这个是小问题
    在这里插入图片描述
    点击,然后:
    在这里插入图片描述
    这里我选择了11.x的版本,为什么没有选择12与cuda进行对应呢。因为当时看错了,等我发现的时候已经进行安装了。在这里插入图片描述
    选择这个,可以通过 wget 命令下载到服务器上:
wget https://developer.nvidia.com/downloads/c118-cudnn-linux-8664-880121cuda11-archivetarz

但是由于文件好像比较大,容易卡。我后来是先下载到本地,然后再传到服务器上的。

打开终端,进入 cuDNN 压缩包所在的文件夹,执行以下命令:

tar -xzvf cudnn-xx.x-linux-x64-v8.x.x.x.tgz

其中,xx.x 是 CUDA 的版本,v8.x.x.x 是 cuDNN 的版本。例如,如果安装的是 CUDA 12.0,cuDNN 的版本是 v8.1.1,则执行以下命令:

tar -xzvf cudnn-12.0-linux-x64-v8.1.1.33.tgz

将解压后的文件夹拷贝到 CUDA 的安装路径下的相应文件夹中,通常为 “/usr/local/cuda-xx.x”,其中 xx.x 是 CUDA 的版本。

例如,如果安装的是 CUDA 12.0,则执行以下命令.注意,如果你是其他的版本,就把12.0对应修改

sudo cp cuda/include/cudnn*.h /usr/local/cuda-12.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-12.0/lib64
sudo chmod a+r /usr/local/cuda-12.0/include/cudnn*.h /usr/local/cuda-12.0/lib64/libcudnn*

添加环境变量。打开终端,执行以下命令:

echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64:$LD_LIBRARY_PATH' >> ~/.zshrc
source ~/.zshrc

最后,可以通过执行以下命令来验证 cuDNN 是否安装成功:

cat /usr/local/cuda-12.0/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

如果成功安装,应该能够看到类似下面的输出:

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 1
#define CUDNN_PATCHLEVEL 1
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

以上是在 Ubuntu 22.04 上安装符合 CUDA 12 的版本的 cuDNN 的步骤。在安装 cuDNN 之前,请确保已经正确安装了对应版本的 CUDA。


完成以上两步骤之后,就搞定了90%了。

下面,就是在anaconda下,创建一下新的环境,命名为pytorch:

conda create -n pytorch python=3.9.0

然后,回到之前pytorch的官网,选择对应的需求:

在这里插入图片描述
激活环境后,运行上述红框中的命令:

conda activate pytorch
conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia

等待安装完成,然后验证是否成功:

命令行输入:python

import torch
torch.cuda.is_available()

在这里插入图片描述
安装完成,大功告成~~~

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
https://pytorch.org/

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

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

相关文章

乌卡时代的云成本管理:从0到1了解FinOps

在上一篇文章中,我们介绍了企业云业务的成本构成以及目前面临的成本困境,以及当前企业逐步转向 FinOps 的行业趋势,这篇文章我们将详细聊聊 FinOps,包括概念、重要性以及成熟度评价指标。 随着对云服务和供应商的使用越来越多&…

2023年博管办香江学者计划、澳门青年学者开始申报

2023年2月20日,全国博士后管委会办公室官方网站发出了2023年香江学者计划、澳门青年学者计划和博士后国(境)外学术交流项目申报指南,以下知识人网小编仅转载香江学者计划和澳门青年学者计划申报指南并做重点解读。知识人网整理香江…

分布式之gossip共识算法分析

写在前面 假如你的业务对系统的可用性要求非常高,就算集群只剩下一个节点,也要能够正常对外提供服务(虽然此时系统能力已经骤降,但至少还在!),因为raft 要求大多数节点可用所以就没有用武之地了…

【2223sW1】LOG1

这里写自定义目录标题写在前面23.2.19报错Unable to allocate xxx GiB for an array with shape (xxxx, xxxx)23.2.20psi6图片绘制选择了部分r,绘制了g6(r)23.2.21从lammpstrj文件中导出了1001X6个csv文件虚拟内存扩展代码运行占用资源查询写…

字符串转换为二进制-课后程序(JAVA基础案例教程-黑马程序员编著-第五章-课后作业)

【案例5-4】 字符串转换为二进制 【案例介绍】 1.任务描述 本例要求编写一个程序,从键盘录入一个字符串,将字符串转换为二进制数。在转换时,将字符串中的每个字符单独转换为一个二进制数,将所有二进制数连接起来进行输出。 案…

PowerJob容器的今生,容器是如何部署到Worker上,并正常运行的

这仅仅是一篇PowerJob源码分析的文章,但是也有一些java基础知识,在实践中学习效果更好,感兴趣就留下来交流一下吧。 上回书说到,这个powerjob容器是如何生成模板,如何上传到服务器上去,本回主要总结的是&am…

死磕Node模块兼容性,ESM和CJS我全都要!

目录 前言 一些概念 CJS(CommonJS) ESM(ECMAScript Modules) 兼容操作 效果演示 总结 前言 在Node版本13.2.0(2019年)之前,我们一般使用CJS(CommonJS)模式在代码…

Java JDBC详解

1、JDBC概念、本质、好处 概念: JDBC 就是使用Java语言操作关系型数据库的一套API 全称:( Java DataBase Connectivity ) Java 数据库连接 本质: 官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口…

展现AI与自动化测试技术之间的神奇化学反应

目录 零:前言 一、介绍 1.1、什么是自动化测试技术 1.2、痛点 1.3、几款优秀的自动化测试工具介绍 1.3.1、Selenium 1.3.2、龙测AI-TestOps云平台 1.3.3、TestCafe 二、实操 2.1、主要功能模块介绍 2.2、实战演练 2.2.1、创建web项目 2.2.2、录制流程图…

Taro3.x 容易踩坑的点(阻止滚动穿透,弹框蒙层父级定位)

解决弹框滚动的时候,下层也会滚动问题》阻止滚动穿透(react,vue)案例描述:页面展示时需要滚动条才可以显示完整,但是当我们显示弹框的时候,即使不需要滚动条,但是页面仍然可以滚动,并且下层内容会随着滚动变…

MES助力灯具照明行业从制造到”智造”

现如今,LED照明行业产品更新换代太快,一个产品一两年不更新一下外观、材料,就会被对手超越。这直接导致LED产品标准化程度不够高,LED下游制造类厂家智能化生产程度普遍偏低。 加之大多属于劳动密集型产业,传统的依靠买…

Hive分区表与分桶表的使用具体说明

目录 一、分区表 (一)分区表基本语法 1.创建分区表 2.往分区表中写入数据的两种方法 (1)load装载本地数据 (2)insert...select...(常用) 3.读取分区表数据 4. Hive分区表的存储路径规划:分区字段分区值 5.分区表基本操作 (1)查看所有分区信息 (2)新增分区…

C#使用MQTT通信 .Net实现MQTT通信 java使用MQTT通信 java实现MQTT通信

MQTT是一种轻量级、基于发布/订阅模式的通信协议,通常用于物联网设备间的通信。MQTT协议采用简单的二进制消息格式,能够在不占用过多网络带宽的情况下进行高效的通信。以下是使用MQTT进行通信的一些基本概念:BrokerMQTT通信中的中间件&#x…

机器学习算法: AdaBoost 详解

1. 集成学习概述 1.1. 定义 集成学习(Ensemble learning)就是将若干个弱分类器通过一定的策略组合之后产生一个强分类器。 弱分类器(Weak Classifier)指的就是那些分类准确率只比随机猜测略好一点的分类器,而强分类器&…

住宅防雷接地的选择要求和施工方法

在您家的布线系统中,防雷接地系统是一项至关重要的安全功能。如果系统发生某种故障,接地系统提供电阻最小的路径,确保电流安全地流回大地本身。因此,它减少了短路导致火灾或危及生命的电击的可能性。家庭接地系统的最后一个也是最…

成都的Java培训机构有哪些?

强烈自荐 二十三年教学实力积累 "课工场是专注互联网教育的生态平台,汇聚中国和北美数百位来自互联网企业的行业大咖,向寻求技术提升和想进入IT行业的人群提供直播、录播、线下面授等多模式教学服务,并通过全国线下服务中心提供更加成熟…

【JVM】内存结构

【JVM】内存结构 文章目录【JVM】内存结构1. 程序计数器1.1 定义1.2 作用2. 虚拟机栈2.1 定义2.2 栈内存溢出2.3 线程运行诊断3. 本地方法栈4. 堆4.1 定义4.2 堆内存溢出4.3 堆内存诊断5. 方法区5.1 定义5.2 组成5.3 方法区内存溢出5.4 运行时常量池5.5 StringTable特性1. 程序…

Hadoop集群模式安装(Cluster mode)

1、Hadoop源码编译 安装包、源码包下载地址 Index of /dist/hadoop/common/hadoop-3.3.0为什么要重新编译Hadoop源码? 匹配不同操作系统本地库环境,Hadoop某些操作比如压缩、IO需要调用系统本地库(*.so|*.dll) 修改源码、重构源码 如何…

电子墨水屏的应用场景

电子纸挺好个东西,大家都把注意力集中在商超场景,其实还有更多有趣的场景方案可用,价值也不小,比如: 仓库场景:通过亮灯拣选,提高仓库作业效率。 仓库循环使用标签:做NFC类发卡式应…

CnOpenData专精特新“小巨人”企业工商注册基本信息数据

一、数据简介 “专精特新”一词最早来源于2011年7月,由时任工信部总工程师朱宏任在《中国产业发展和产业政策报告(2011)》新闻发布会上首次提出。“专精特新”是指具备专业化、精细化、特色化、创新型四大优势的企业。根据工信部的定义&#…