当前位置: 首页 > news >正文

从零安装pytorch并在pycharm中使用

背景介绍

目前主流使用的工具有Facebook搞的pythorch和谷歌开发的tensorflow两种,二者在实现理念上有一定区别,pytorch和人的思维模式与变成习惯更像,而tensorflow则是先构建整体结构,然后整体运行,开发调试过程较为繁琐,但好处是复用部署较方便,本质是其二者分别使用动态、静态图的区别。

安装Anaconda

Anaconda是python的包管理工具,并且允许创造多个虚拟环境,用以分别安装不同的python版本及包,相当于是python环境的虚拟机。
官网下载地址在此

下载后按照推荐步骤安装即可
安装界面
安装选项
第二个选项是将anaconda本身的python环境等信息添加到系统变量中,不推荐是怕引发环境变量错误,所以我们需要分别手动添加安装目录anaconda,安装目录下的\ScriptsLibrary\bin目录添加到系统变量中:
添加系统变量
安装完成后,可在系统中搜索Anaconda,或Jupyter Notebook,可找到如下文件:
安装所得
以后仅使用Jupyter Notebook和Anaconda Prompt,将其发送到桌面即可,此时打开Prompt即可进入anaconda的虚拟环境,示例如图:
虚拟环境
常用命令如下:

清屏			cls
列出所有环境		conda env list
列出所有库		conda list
创建环境			conda create -n 环境名 python=版本号
删除环境			conda remove -n 环境名 --all
进入环境			conda activate 环境名
退出当前环境		conda deactivate

创建环境
创建环境时会自动安装需要的组件和库,下载即可,此时再列出环境可见如下所示:
环境生成

安装CUDA

随着神经网络等人工智能算法和大数据技术的发展,计算量越来越大,仅靠cpu的处理已经不能满足训练需要,我们使用中多通过专门负责图像处理的显卡来加速训练过程,所以在pytorch的安装中我们需要使用显卡加速功能——cuda,加速显卡和cpu并行计算功能的平台,该技术目前仅支持英伟达显卡。
首先在cmd命令中输入nvidia-smi查看显卡驱动API的CUDA版本:
显卡CUDA

cuda下载网站
该显卡CUDA版本为12.2,下载的新cuda平台不应高于该版本,故下载如下版本:
cuda下载
安装时仅选择CUDA即可:
安装cuda
安装位置

安装完成后可通过nvcc -V命令查看cuda版本:
cuda版本

安装pytorch

pytorch的本质是三个库,torchtorchvisiontorchaudiotorch最大有1G左右,另外两个只是补充的附件,所以工程中我们一般只import torch即可。

直接到其官方网站寻找下载资源,根据需要的版本生成指令,
安装指令
然后到conda prompt虚拟环境中输入该指令即可直接下载,网络情况较好可直接使用,否则可使用镜像源,或到命令中的url手动下载,再使用pip命令手动安装。

安装完成后输入conda list查看所有库,出现如下图说明安装成功
查看库
在环境中打开python,查看能否导入,示例如下则说明安装成功:
测试安装结果

报错解决——fbgemm.dll

这里我重新创建了新的名为pytorch,python版本为3.9的环境,因为之前尝试了3.12和3.11的均在导入时报错缺少fbgemm.dll" or one of its dependencies.,在目录下是有这个文件的,用dll组件查看发现依赖缺少很多文件,不是能一个个找到再添加的了,也有说法是电脑缺少C++的运行环境,但在本机中查看是装了的,卸载重装也没用,最后想到是不是可能版本不对应,分别尝试了不同的pytroch版本和CUDA版本,最后试了环境本身的python版本降到3.9才成功,可官网明明白白写着支持3.12,具体咋回事就不明白了,暂时有的用就是好的。

连接pycharm

直接上图
导入conda环境

如图可见在pycharm中可用pytorch,并可以使用cuda加速。

总结

pytorch安装主要分三步,
1,包管理工具Anaconda用于管理组件,创造虚拟环境;
2,安装加速平台CUDA,主要涉及显卡cuda版本和安装cuda平台版本的关系;
3,安装pytorch,要与安装CUDA对应。

其中CUDA要注意版本向下兼容,顺序分别为显卡驱动API的CUDA版本—安装cuda平台的运行API版本—pytorch版本,版本可依次递减,但后不可大于前。
而pytorch除了要与CUDA对应外,还需注意与Anaconda的python版本对应,当然一般用旧的没什么问题,可那还怎么进步呢,只追求稳定,人类现在可能还用石头火把呢。

安装环境难的就在不同组件之间的配合,版本低了高了,语言和选项等选不对造成安装出错,如果要改就很麻烦,本人在配置过程也折腾了很长时间,就因为不想按教程装老版本,又没有提前搞清楚各个组之间的对应关系,导致不必要的时间浪费在改错上,还不如从头开始了,任务真正开始之前的准备工作还是做充分。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 全面对比与选择指南:pgvector与Milvus向量数据库
  • Unity3D 物体圆周运动
  • 利用HttpServlet完成MySql数据库my_user表的登录校验
  • 算法学习day29
  • AWS生成式AI项目的全生命周期管理
  • Qt pro文件详解
  • 掌握Dism++,让你的Windows系统更加清爽、流畅!
  • MyIP:强大且简单好用!
  • Langchain-Chatchat+Xinference集成部署
  • 【线性代数】汤家凤线性代数辅导讲义整理
  • Java中基本数据类型包装类的常量池缓存的值得范围是多少?
  • Linux:账号和权限管理(二)
  • 掀起 .NET 风暴:用 Docker 快速打造并部署你的炫酷应用!
  • the request was rejected because no multipart boundary was found
  • FP8量化
  • 分享一款快速APP功能测试工具
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 2017 前端面试准备 - 收藏集 - 掘金
  • JSONP原理
  • js如何打印object对象
  • python学习笔记 - ThreadLocal
  • spring学习第二天
  • 对JS继承的一点思考
  • 关于Java中分层中遇到的一些问题
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 简单数学运算程序(不定期更新)
  • 前端面试之CSS3新特性
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 前言-如何学习区块链
  • 新书推荐|Windows黑客编程技术详解
  • 学习笔记:对象,原型和继承(1)
  • 怎么将电脑中的声音录制成WAV格式
  • 正则与JS中的正则
  • ​第20课 在Android Native开发中加入新的C++类
  • !$boo在php中什么意思,php前戏
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #if 1...#endif
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • #职场发展#其他
  • (0)Nginx 功能特性
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (3)(3.5) 遥测无线电区域条例
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (六)c52学习之旅-独立按键
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (图)IntelliTrace Tools 跟踪云端程序
  • (一) storm的集群安装与配置
  • (转载)(官方)UE4--图像编程----着色器开发
  • .“空心村”成因分析及解决对策122344