在windows11环境下安装CUDA11.6+Anaconda3+pyToach1.13搭建炼丹炉

0.电脑环境

系统:win11
显卡:NVIDIA GTX1650
还有一个pyCharm,其他也用不到了,需要的文章中会进行说明

1.安装CUDA11.6

目前2023.03出来的pyToach2.0是用不到了,因为最低版本支持CUDA11.7。我的显卡是1650,驱动达不到CUDA11.7的要求,因此安装不了11.7。(主要原因是和女朋友端午旅游把我计划要买的4060TI 16G钱花掉了/(ㄒoㄒ)/~~,只能继续压榨我的我的小显卡了)。
pyToach2.0看说明是比1.13快很多,但是安装方式一样的,有好显卡的一定要安装CUDA11.7进而支持pyToach2.0
PyTorch的官网:官网
可以看的具体的依赖
在这里插入图片描述
显卡驱动和cuda对照
在这里插入图片描述
首先打开 cmd 命令窗口,输出如下命令:

nvidia-smi

可以看到,此时显示的表格中,有一个字段叫 CUDA Version,像我的界面是这样的:
在这里插入图片描述在这个官方网站:老黄的CUDA网站
找到11.6,下载它,三个都可以下载,随便选一个
在这里插入图片描述
在这里插入图片描述
说明:
安装cuda时,第一次会让设置临时解压目录,第二次会让设置安装目录;

临时解压路径,建议默认即可,也可以自定义。安装结束后,临时解压文件夹会自动删除;

安装目录,自定义最好;

注意:临时解压目录千万不要和cuda的安装路径设置成一样的,否则安装结束,会找不到安装目录

选择自定义安装

安装完成后,配置cuda的环境变量;

命令行中,测试是否安装成功;下面是具体安装步骤:

1)双击“exe文件”,选择下载路径,换一个其他的盘也可以。
在这里插入图片描述
一直确定
2)自定义安装,精简版本是下载好所有组件,并且会覆盖原有驱动,所以在这里推荐自定义下载
在这里插入图片描述
3)如果电脑上没有visual studio,后面会让下载,所以可以取消这个复选框
在这里插入图片描述
4)下面是比较重要的安装路径选择,建议先在自己电脑上安装软件的盘中先建立两个文件夹:
在这里插入图片描述
4.1) 然后将第一个和第三个目录更换为上面的CUDAToolkit,第二个目录更换为CUDASamples。记住安装目录
在这里插入图片描述
后面一直向下,然后就是查看一下环境变量了。点击设置–>搜索高级系统设置–>查看环境变量
在这里插入图片描述
在这里插入图片描述
上面的环境变量是自己生成的,无需手动配置。之后在cmd下查看是否可以使用命令:注意是大写V
在这里插入图片描述
这样就可以确定安装成功了。要注意自己的显卡驱动版本和cuda版本的对应,我的1650就可以安11.6了,显卡比我高的如果驱动版本不高可以升级驱动版本。

2.安装Anaconda3

下载官网:Anaconda官网,或者是清华镜像源镜像源,我感觉都可以下载
在这里插入图片描述

在这里插入图片描述
双击exe安装包,进行安装,
1)一直下一步到这里,选择所有用户
在这里插入图片描述
2)安装路径,还是推荐自定义
在这里插入图片描述
3)只选择第二项,第二项是说要默认使用python的版本,后期手动添加环境变量
在这里插入图片描述
4)安装完成
在这里插入图片描述
5)配置环境变量,点击path
在这里插入图片描述
5.1) 在编辑环境变量里,点击新建
在这里插入图片描述
5.2)新建下面这五个变量:xxx是自己的路径

D:\xxx\xxx\Anaconda3
D:\xxx\xxx\Anaconda3\Scripts
D:\xxx\xxx\Anaconda3\Library\bin
D:\xxx\xxx\Anaconda3\Library\mingw-w64\bin
D:\xxx\xxx\Anaconda3\Library\usr\bin

在这里插入图片描述
6)安装完成,验证,同时按 win + r ,输入cmd,在弹出的命令行查看anaconda版本,输入 :
conda --version和python
在这里插入图片描述
可以看的正确的版本号以及python已托管至Anaconda。可以在电脑屏幕左下角的Windows徽标键这里,选择点击绿色圈圈Anaconda Navifator将其打开
在这里插入图片描述
7)接下来是镜像源的配置,这里踩坑很多,花了好几个小时才搞定,其他博客有通过命令配置的源的,然后一些包总是无法使用。这里提供一个简单的方式。进入c盘的用户路径下,点击.condarc文件,可以用记事本方式打开。
在这里插入图片描述
然后内容修改为如下内容,注意envs_dirs:

  • D://DeepLearingEnvironment//envs是自己的路径哦。
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
envs_dirs:
  - D://DeepLearingEnvironment//envs

编辑保存后,打开Anaconda查看镜像源,如下所示
在这里插入图片描述
在这里插入图片描述
点击configure Conda后,可以看到镜像源已更换
在这里插入图片描述
8)试着导入一下基础环境,如下所示,点击Environment下的base环境,等待加载后,可以看到环境导入完成,前面都有绿色的勾。而且速度快到飞起。至此,Anaconda也安装配置完成
在这里插入图片描述

3.在Anaconda中安装pyToacn1.13

  1. 先新建一个环境,我随便起名为pyToach1113
    在这里插入图片描述
    2)命令行添加环境,进入cmd下,输入

conda env list
antivate pyToach1113
在这里插入图片描述

2.1) 使用官方推荐命令安装pyToach,进入网站pyToach官网,选择这个标签页:
在这里插入图片描述
拉到下面,使用这个命令,注意是11.6哦

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia

在这里插入图片描述
2.2) 等待漫长的命令执行完成,验证是否可以正常使用:
在这里插入图片描述
可以正常使用

4.尝试使用pyToach调用cuda

  1. 新建一个项目,环境选择刚才搞好的
    在这里插入图片描述
    2)输入如下代码
import time

import torch

if __name__ == '__main__':
    print("启动!!!")
    print("PyTorch版本:" + torch.__version__)
    print("PyTorch是否启动CUDA:", torch.cuda.is_available())

    matrix_a1 = torch.randn(15000, 9999)  # GPU运算量太大会爆显存
    matrix_b1 = torch.randn(9999, 15000)  # GPU运算量太大会爆显存

    t1 = time.time() #cpu运算前的时间
    matrix_c1 = torch.matmul(matrix_a1,matrix_b1) #cpu做矩阵相乘
    t2 = time.time() #cpu运算后的时间
    print("当前模式:",matrix_a1.device,"\t耗时:",t2-t1,matrix_c1.norm(2))

    gpu = torch.device("cuda")
    matrix_a2=matrix_a1.to(gpu)
    matrix_b2=matrix_b1.to(gpu)

    t3=time.time() #gpu运算前的时间
    matrix_c2=torch.matmul(matrix_a2,matrix_b2)
    t4=time.time() #gpu运算后的时间
    print("当前模式:", matrix_a2.device, "\t耗时:", t4 - t3, matrix_c2.norm(2))

    t5=time.time() #gpu运算前的时间
    matrix_c3=torch.matmul(matrix_a2,matrix_b2)
    t6=time.time() #gpu运算后的时间
    print("当前模式:", matrix_a2.device, "\t耗时:", t6 - t5, matrix_c3.norm(2))
    

计算一个矩阵乘法,对比一下cpu与gpu,结果如下:
在这里插入图片描述
可以看到目前已经启用了CUDA加速,且PyTorch的版本是1.13,安装成功。
因为GPU运算首次需要加载C++的包,依旧比CPU快了10多倍。第二次运算时C++的包已经加载完毕,比CPU快了将近1000倍(/(ㄒoㄒ)/~~是我的cpu跟不上gpu吗)。

3)但是,gpu计算出来的结果和cpu有些差距,看一下gpt的解释是:

通常情况下,GPU(图形处理单元)和CPU(中央处理单元)执行计算任务的方式和速度不同,这可能导致计算结果略有不同的情况。下面是一些可能导致GPU计算结果与CPU计算结果稍有不同的原因:
数值精度:GPU通常使用较低的数值精度来执行计算,例如使用32位浮点数(单精度)而不是64位浮点数(双精度)的CPU默认精度。这种精度差异可能会导致在某些情况下,GPU计算结果的舍入误差略微大于CPU计算结果。
并行计算:GPU通过并行计算大规模数据集来提高计算速度,而CPU通常是顺序执行。由于并行计算涉及到数据分割和任务分配,可能会存在微小的差异,尤其是在涉及非结合性操作(不满足交换律和结合律)时。
优化算法:GPU和CPU使用不同的指令集和优化算法来执行计算任务。这可能导致在某些情况下,GPU计算结果与CPU计算结果有细微差异。例如,某些特定的数学函数或优化算法在GPU上可能有不同的实现方式。
平台依赖性:GPU和CPU使用不同的硬件和驱动程序,可能存在平台依赖性问题。这可能会导致不同的硬件或驱动程序在执行计算时产生微小的差异。
需要注意的是,通常情况下,GPU计算结果与CPU计算结果之间的差异应该是非常小的,特别是对于大多数数值计算任务来说。如果存在较大的差异,可能是由于程序中的错误、数值稳定性问题或其他因素引起的,这时候需要进一步调查和分析问题。
为了确保结果的一致性,可以采取一些措施,如使用相同的数值精度、检查算法实现的一致性、验证代码的正确性,并进行平台和硬件的兼容性测试。

5.总结

总之,代码可以测试成功,之后可以进行愉快的炼丹了。然后有时间发一个使用上面环境进行深度学习的案例
最后说一个实话,想要一个4060ti学习为假,打游戏为真。
在这里插入图片描述

参考文章:
在Windows10环境安装CUDA11.7及PyTorch1.13–使用Nvidia RTX A4000开始炼丹之旅

【CUDA安装详细教程】

Anaconda安装-超详细版(2023)

w11下载anaconda在d盘,新建的虚拟环境总是在c盘怎么解决

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

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

相关文章

阿里巴巴高管换血,吴永明接替张勇

文章目录 经济学人 💰 第 26 周🩸 阿里巴巴高管换血,吴永明接替张勇🌄 孙正义再出山🐿️ 英特尔加码德国!投资330亿美元建两座芯片工厂!🌊 亚马逊被指控强加 Prime 服务✈️ 印度航空…

Jmeter多接口测试之参数传递

目录 前言: 接口示例 正则表达式提取器 正则表达式提取实例 Json提取器 Json提取器实例 前言: 在进行多接口测试时,有些情况下需要将前一个接口返回数据作为后一个接口的参数,以模拟实际场景。JMeter作为一款常用的性能测试…

【EXCEL】如何查找特殊字符 问号‘?’星号 ‘*’

目录 0.环境 1.适用场景 1)直接搜索问号的结果: 2)修改【查找内容】后,搜索结果变为精准定位: 2.具体做法 0.环境 windows wps(或excel,这里试了,此问题wps和excel表格是通用…

中间件解析漏洞

服务器解析漏洞算是历史比较悠久了,但如今依然广泛存在。在此记录汇总一些常见服务器(WEB server)的解析漏洞,比如IIS6.0、IIS7.5、apache、nginx等 2|0 二、IIS5.x-6.x解析漏洞(针对asa/asp/cer) 2|11、打…

区块链中怎么惩罚虚假信息的矿工,工作量证明POW,共识算法

目录 区块链中怎么惩罚虚假信息的矿工 工作量证明POW 什么是工作量证明? 现在出现了另一个问题:如果其他人偷看了小明的答案并且抢答了怎么办? 为什么区块可以安全广播? 共识算法 小结 区块链中怎么惩罚虚假信息的矿工 1…

三分钟学习一个python小知识4-----------我的对python中numpy的理解, 我列举了关于numpy常用的10个例子来深入理解numpy

这里写目录标题 1、NumPy是什么2、NumPy的常见应用---必须掌握2.1.创建一个数组2.2.数组的属性2.3.取数组中的元素2.4.数组的运算2.5.数组的转置2.6. 数组的索引和切片2.7. 数组的重塑2.8. 数组的广播2.9. 数组的聚合操作2.10. 数组的排序 总结 1、NumPy是什么 NumPy是专门用于…

Spring MVC简介附入门案例

目录 一、SpringMVC简介 1.1 MVC模型 1.2 SpringMVC 二、SpringMVC入门案例 2.1 创建项目 2.2 引入依赖和tomcat插件 2.3 修改web.xml文件 2.4 新建springmvc.xml文件 2.5 编写控制器 2.6 配置运行方式 2.7 运行测试 三、SpringMVC执行流程 3.1 SpringMVC的组件…

Kangas:计算机视觉中的pandas

Kangas:计算机视觉中的pandas 介绍Kangas的优点 使用Kangas读取CSV文件读取图像文件Kangas DataGrid训练模型 介绍 在计算机视觉领域,Kangas是一种在图像数据处理和分析方面越来越受欢迎的工具之一。就像Pandas改变了数据分析人员处理表格数据的方式一样…

macOS FreeBSD 如何刷新 DNS 缓存

macOS FreeBSD 如何刷新 DNS 缓存 全文:如何刷新 DNS 缓存 (macOS, Linux, Windows) Unix Linux Windows 如何刷新 DNS 缓存 (macOS, FreeBSD, RHEL, CentOS, Debian, Ubuntu, Windows) 请访问原文链接:https://sysin.org/blog/how-to-flush-dns-cach…

AI绘画:切换黑色风格,安装更棒的主题!

从Stable Diffusion 出现的第一天起,我就开始关注这个项目,后来也出过几期教程。 一直以来都是只追求功能实现,不管界面的问题。现在我突然想要换一个帅气的主题了…就是这么突然! 默认的白色主题太….普通…既没有设计感啊&…

智能井盖传感器:以科技破解城市顽疾

在城市的道路网络中,井盖扮演着重要的角色,用于覆盖下方的管道和设施,然而,由于井盖的老化、损坏或被盗,常常会导致安全问题的发生,如路面塌陷、行人受伤等。井盖的状态监测和维护一直是城市管理者面临的挑…

社区分享|JumpServer开源堡垒机一直都是我的第一选择

编者注:本文由JumpServer开源堡垒机社区用户James Wei供稿。 “我最开始接触到的堡垒机就是JumpServer,最了解的也是JumpServer,已经完全习惯了JumpServer的使用习惯,这也是我一直选择JumpServer的一个重要原因。” ——JumpSer…

跟着AIGC学Linux:简介(一)

文章目录 1.Linux内核的历史2.基本概念3.发行版4.Linux应用领域5.Linux VS Windows横向对比表格: 1.Linux内核的历史 Linux内核最初由一位名叫Linus Torvalds的芬兰计算机科学家于1991年创建。当时,Torvalds是一名赫尔辛基大学的学生,他在寻…

Microsoft365有用吗?2023最新版office有哪些新功能?

office自97版到现在已有20多年,一直是作为行业标准,格式和兼容性好,比较正式,适合商务使用。包含多个组件,除了常用的word、excel、ppt外,还有收发邮件的outlook、管理数据库的access、排版桌面的publisher…

【Windows】虚拟串口工具VSPD7.2安装

【Windows】虚拟串口工具VSPD7.2安装 1、背景2、VSPD7.2安装3、创建虚拟串口 1、背景 ​Virtual Serial Ports Driver​是由著名的软件公司Eltima制作的一款非常好用的​虚拟串口工具​,简称:VSPD。 VSPD其功能如同 Windows机器上COM 串行端口的仿真器…

永磁同步直线电机学习笔记——什么是直线电机?

永磁同步直线电机(Permanent Magnet Linear Synchronous Motor,简称PMLSM)是一种电动机,它通过将永磁体和线圈组合在一起,将电能转化为机械运动。与传统的旋转电机不同,PMLSM是一种直线运动电机&#xff0c…

【Java高级语法】(十七)Stream流式编程:释放流式编程的效率与优雅,狂肝万字只为全面讲透Stream流!~

Java高级语法详解之Stream流 1️⃣ 概念及特征2️⃣ 优势和缺点3️⃣ 使用3.1 语法3.2 常用API详解3.3 案例 4️⃣ 应用场景5️⃣ 使用技巧6️⃣ 并行流 ParallelStream🌾 总结 1️⃣ 概念及特征 Java的Stream流是在Java 8中引入的一种用于处理集合数据的功能强大且…

【小沐学Web】Node.js搭建HTTPS 服务器

文章目录 1、简介1.1 HTTPS协议1.2 Node.js中的HTTPS 2、生成自签名证书2.1 key文件2.2 csr文件2.3 crt文件 4、代码测试4.1 Node.js简介4.2 Node.js的http模块4.3 Node.js的Express模块4.4 Node.js的https模块4.5 Node.js的httpsexpress模块 结语 1、简介 1.1 HTTPS协议 HTTP…

HackTheBox - 学院【CPTS】复习3 - XSS、文件包含、文件上传、命令注入

XSS 登录表单 document.write(<h3>Please login to continue</h3><form actionhttp://OUR_IP><input type"username" name"username" placeholder"Username"><input type"password" name"password&…

web漏洞之文件上传漏洞

文章目录 一、漏洞原因二、漏洞危害三、漏洞利用1.三个条件2.利用方式3.绕过方式a.绕过JS验证① BP绕过② F12绕过③ 菜刀上传实操 b.绕过MIME-Type验证c.绕过黑名单验证① 直接修改后缀名绕过② htaccess绕过(有拦截)③ 大小写绕过(有拦截)④ 空格绕过⑤ .号绕过⑥ 特…