【AI基础】第二步:安装AI运行环境

开局一张图:

接下来按照从下往上的顺序来安装部署。 

规则1 注意每个层级的安装版本,上层的版本由下层版本决定

比如CUDA的版本,需要看显卡安装了什么版本的驱动,然后CUDA的版本不能高于这个驱动的版本。

这个比较好理解,CUDA、PyTorch都有向下兼容性。比如显卡支持版本12,你只要不超过版本12,那么显卡都能支持你去使用,所以CUDA的版本可以小于等于12。PyTorch同理。

一、安装CUDA

1.1 确定版本

根据 规则1,我们查看自己显卡支持的版本,然后来决定下载哪个版本的CUDA。

打开显卡控制面板:

查看安装的驱动:

可以看到安装的CUDA驱动版本为12.2.68,那我们安装的 CUDA Toolkit 版本需要小于等于此版本。 

1.2 下载安装

下载地址:CUDA Toolkit Downloads

老版本地址:CUDA Toolkit Archive 

进入页面后选择操作系统相关信息后,下载cuda的最新安装包: 

 也可以下载历史版本:

按照上面1.1版本确认,版本需要小于等于12.2.68,这里选择12.2.0

下载后双击安装,一路下一步后,到安装位置,可以看到默认安装在 c:\Program Files\NVIDIA GPU Computing Toolkit 路径下:

 

1.3 安装检验

在命令行运行 nvcc -V查看:

> nvcc -V

二、安装cuDNN

2.1 确认版本

根据 规则1,cuDNN的版本要适配CUDA的版本12.2.0。

2.2 下载安装

下载地址:cuDNN最新版下载

老版本下载地址:cuDNN Archive | NVIDIA Developer 

进入页面后选择操作系统相关信息后,下载cuDNN的最新安装包: 

也可以下载历史版本:

根据版本规则,我们需要选择上图中 for CUDA 12.x的版本。

解压后,把cuDNN的文件夹合并到CUDA的安装路径下的同名文件夹:

 

比如bin文件夹合并后如图:

红框内的为cuDNN的扩展文件。 

三、安装pyTorch

3.1 确认版本

根据 规则1,pyTorch支持的CUDA的版本需要小于等于12.2.0。

3.2 下载安装

获取命令地址:Start Locally | PyTorch

获取老版本命令地址:Previous PyTorch Versions | PyTorch 

如图选择CUDA 11.8,小于 CUDA Toolkit 12.2.0,是可以直接安装的。

获取到的安装命令:

> conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia 

也可以安装历史版本:

 

获取到的安装命令:

> conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=12.1 -c pytorch -c nvidia

3.3 安装检验

进入python环境:

> python

导入pyTorch库及相关命令:

>>> import torch
>>> torch.cuda.is_available())       # 查看GPU是否可用        
>>> torch.cuda.device_count())       # 查看GPU数量 
>>> torch.version.cuda)              # torch方法查看CUDA版本
>>> torch.cuda.current_device())     # 查看GPU索引号
>>> torch.cuda.get_device_name(0))   # 根据索引号得到GPU名称

四、引用

深度学习—Python、Cuda、Cudnn、Torch环境配置搭建_torch cuda-CSDN博客

 

如何用conda安装PyTorch(windows、GPU)最全安装教程(cudatoolkit、python、PyTorch、Anaconda版本对应问题)(完美解决安装CPU而不是GPU的问题)-CSDN博客conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]_为什么conda安装pytorch版本不对-CSDN博客

 

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

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

相关文章

毕业论文word常见问题

0、前言: 这里的问题都是以office办公软件当中的word为例,和WPS没有关系。 1、页眉横线删不掉: 解决方案:进入页眉编辑状态,在开始选项栏中选择页眉字体样式,清除格式。 修改方式如下: 2、…

mysql inset bug

在 SQL 中,日期值需要用单引号包围,这是因为 SQL 将日期值视为字符串格式。数据库引擎在处理这些值时会将它们解析为适当的日期类型。如果不使用单引号,数据库引擎会将它们视为数字或列名,从而导致语法错误。 日期格式 MySQL 支…

在Linux/Ubuntu/Debian系统中使用 `tar` 压缩文件

在Linux/Ubuntu/Debian系统中使用 tar 压缩文件 tar 命令是用于在类 Unix 操作系统中创建文件和目录存档的强大实用程序。 基本存档创建 要创建文件夹的简单存档,请使用以下命令: tar -cf ./my-archive.tar ./my-folder/此命令将创建一个名为 my-arc…

java入门 Netty ByteBuf

一、 参考资料 参考黑马netty教程 https://www.bilibili.com/video/BV1py4y1E7oA?p88&spm_id_frompageDriver&vd_source4cd1b6f268e2a29a11bea5d2568836ee 二、 ByteBuf测试 app.java package com.sht.test;import io.netty.buffer.ByteBuf; import io.netty.buff…

Android基础-Jetpack Compose

Jetpack Compose,作为Android平台上一款革命性的UI框架,自其推出以来就受到了广大开发者的热烈关注和广泛应用。它不仅简化了Android应用的UI开发流程,提高了开发效率,而且为开发者带来了更直观、更灵活、更强大的UI定义方式。下面…

Linux——简单指令汇总

Linux,一般指GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯本纳第克特托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个…

C++ | Leetcode C++题解之第130题被围绕的区域

题目&#xff1a; 题解&#xff1a; class Solution { public:const int dx[4] {1, -1, 0, 0};const int dy[4] {0, 0, 1, -1};void solve(vector<vector<char>>& board) {int n board.size();if (n 0) {return;}int m board[0].size();queue<pair<…

C++类的继承与派生概念

派生和继承是自然界普遍存在的一种现象。例如&#xff0c;“猫”和“白猫”。当人们谈及“猫”时&#xff0c;知道它有4条腿&#xff0c;1条尾巴&#xff0c;抓老鼠,为哺乳动物。如谈论“白猫”时&#xff0c;它也是猫&#xff0c;只不过增加了一个新的特征&#xff0c;即它的毛…

Flutter 中的 KeepAlive 小部件:全面指南

Flutter 中的 KeepAlive 小部件&#xff1a;全面指南 Flutter 是一个由 Google 开发的跨平台 UI 框架&#xff0c;它允许开发者使用 Dart 语言构建高性能、美观的移动、Web 和桌面应用。在 Flutter 的丰富组件库中&#xff0c;KeepAlive 是一个用于维护组件活跃状态的组件&…

Redis缓存(笔记二:Redis常用五大数据类型)

目录 1、Redis中String字符串 1.1 常用命令解释&#xff1a; 1.2 原子性 1.3 具有原子性的常用命令 1.4 String数据结构 1、Redis中String字符串 概念 String 是 Redis 最基本的类型&#xff0c;可以理解成与 Memcached 一模一样的类型&#xff0c;一个 key对应一个 value…

软设之排序算法对比

直接插入 时间复杂度:平均情况为O(n^2)。特殊情况下基本有序最优为O(n) 空间复杂度:O(1) 希尔排序 时间复杂度:平均情况O(n^1.3) 空间复杂度:O(1) 直接选择排序 时间复杂度:O(n^2) 空间复杂度:O(1) 堆排序 时间复杂度:O(nlog(2)n) 空间复杂度:O(1) 冒泡排序 时间…

第6章:数据库设计基础知识

数据库基本概念 数据(Data)是描述事物的符号记录&#xff0c;它具有多种表现形式&#xff0c;可以是文字、图形、图像、声音和语言等。数据库系统(DataBase System&#xff0c;DBS)是一个采用了数据库技术&#xff0c;有组织地、动态地存储大量相关联数据&#xff0c;从而方便多…

3162. 优质数对的总数 I

给你两个整数数组 nums1 和 nums2&#xff0c;长度分别为 n 和 m。同时给你一个正整数 k。 如果 nums1[i] 可以被 nums2[j] * k 整除&#xff0c;则称数对 (i, j) 为 优质数对&#xff08;0 < i < n - 1, 0 < j < m - 1&#xff09;。 返回 优质数对 的总数。 示…

第100天:权限提升-数据库RedisPostgre第三方软件TV向日葵服务类

目录 思维导图 案例一: 数据库-Redis 数据库权限提升-计划任务 案例二: 数据库-PostgreSQL 数据库权限提升-漏洞 PostgreSQL 提权漏洞&#xff08;CVE-2018-1058&#xff09; PostgreSQL 高权限命令执行漏洞&#xff08;CVE-2019-9193&#xff09; 案例三: 三方应用-…

【数据结构与算法 经典例题】(C语言)反转链表图文详解

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《数据结构与算法 经典例题》C语言 期待您的关注 ​ 目录 一、问题描述 二、解题思路分析 三、代码实现 一、问题描述 二、解题…

c++ 函数作为参数

在C中&#xff0c;函数指针或函数对象可以作为参数传递给另一个函数&#xff0c;实现了函数的动态调用和灵活性。这种机制在回调函数、事件处理、泛型编程等领域中非常有用。 1.函数指针作为参数&#xff1a; 函数指针可以指向特定函数&#xff0c;并被用作参数传递给另一个函数…

uniapp使用uQRCode页面不显示也不报错

我使用的版本是&#xff1a;4.0.6 引入到项目中后根据官方的配置教程进行配置&#xff1a; 但是页面上就是不显示&#xff0c;也不报错&#xff0c;看官网发现步骤也没问题 解决方法&#xff1a; 这句话代表的是uQrcode会被自动引用注册&#xff0c;但是你引过组件库或者别的…

Java进阶学习笔记37——正则表达式

正则表达式&#xff1a; 就是由一些特定的字符组成的&#xff0c;代表的是一个规则。 作用&#xff1a; 1&#xff09;用来校验数据格式是否合法&#xff1b; 校验电话号码是否合法&#xff1b; 校验邮箱是否合法&#xff1b; 用户输入的QQ号码是否合法&#xff1b; 2&…

QT treeWidget如何添加虚线

1、添加以下代码即可&#xff1a; ui.treeWidget->setStyle(QStyleFactory::create("windows"));2、效果如下&#xff1a;

基于 vue-element-template 框架添加 tagsview

1. 需求 vue-element-template 是一个基础模板&#xff0c;默认没有 tagsview。所以要手动添加。 参考最全面的集成方案框架 vue-element-admin &#xff0c;拷贝和修改相关文件到你的项目中。 2. 修改 复制如下文件或文件夹 \src\layout\components\TagsView\src\store\mo…