Linux上安装torch-geometric(pyg)1.7.2踩坑记录

重点:1.一定要在创建虚拟环境的时候设置好python版本。2.一定要先确定使用1.X还是2.X的pyg库,二者不兼容。3.一定要将cuda、torch、pyg之间的版本对应好。所以,先确定pyg版本,再确定torch和cuda的版本。

结论:如果在ubuntu上安装python=3.7,torch=1.7.0,cuda=11.0,pyg=1.7.2,只用四行代码。

1)创建虚拟环境conda create -n <evn name> python==3.7

2)安装torch、torchvision、torchaudio、cudatoolkit
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0

3)安装scatter、sparse、cluster、spline_conv
pip install torch_scatter-2.0.5-cp37-cp37m-linux_x86_64.whl torch_sparse-0.6.8-cp37-cp37m-linux_x86_64.whl torch_cluster-1.5.8-cp37-cp37m-linux_x86_64.whl torch_spline_conv-1.2.0-cp37-cp37m-linux_x86_64.whl

4)安装pyg,如果要安装2.X版本的可以不加版本号
pip install torch-geometric==1.7.2

-----------------------------手动分割线,下面内容分析了怎么老是安装出错,下次再安装的时候来看看,内容有点乱----------------------------------

安装torch-geometric(pyg)的坑

踩坑一:无需自行安装CUDA,安装torch-gpu时,安装相应的cudatoolkit就可以了。所以nvcc -V找不到cuda版本时没关系。

踩坑二:没有先确定pyg的版本。还有就是pip install torch-geometric的时候没有加上版本号。这两种情况都会报错 RuntimeError: The ‘data’ object was created by an older version of PyG. If this error occurred while loading an already existing dataset, remove the ‘processed/’ directory in the dataset’s root folder and try again.
原因是跑人家的代码中pyg版本与你安装的版本不匹配,看一下别人的代码有没有说明pyg的版本。pip install torch-geometric安装的是2.X版本的。所以要先确定安装1.X还是2.X的torch-geometric。比如,你跑别人的代码别人用的是1.X的pyg,而你自己下载的是2.X版本的pyg,就会报上面的错误。也可以不降低pyg版本,对data进行修改在这里插入图片描述

踩坑三:RuntimeError: CUDA error: no kernel image is available for execution on the device.
原因是显卡和CUDA算力不匹配。第一次配环境的时候随便装了一个版本cudatoolkit=10.2,我的显卡的算力是80,cuda10.2最大算力是75,所以报下面的错误。
点这里查看显卡算力,点这里查看CUDA算力
在这里插入图片描述
报错的意思是当前GPU的算力与当前版本Pytorch依赖的CUDA算力不匹配(A100算力为8.0,而当前版本的pytorch依赖的CUDA算力仅支持3.7,5.0,6.0,7.0, 7.5)

那么怎么确定安装哪个版本的cuda?
nvidia-smi先看一下自己显卡支持的最大cuda版本(安装的cudatoolkit<=右上角的CUDA Version即可,但是这里还有个坑,目前还是不能确定到底用哪个版本的cuda),我的cuda最高版本不能超过11.4,但是如果觉得最高版本也太低的话,可以去下载新的驱动。
在这里插入图片描述
再参考下面这张表,比如我的显卡的算力是80,所以我安装的11.0<= cudatoolkit <=11.4在这里插入图片描述

确定python、pyg、pytorch、cuda版本对应的思路

安装pyg之前要确定好python、pyg、pytorch、cuda的版本。我已经确定了python=3.7,pyg=1.X,11.0<=cuda<=11.4。
然后这四个网址要来回看。
地址1:pytorch历史版本对应
地址2:pytorch的wheel文件下载地址
地址3:pyg依赖包的wheel文件下载地址
地址4:pyg官方文档

  • step1:已经确定了pyg是1.X,去地址4找一下torch和cuda对应的版本。
    这有pyg的各种版本。(地址4点进去之后左下角绿色的地方,可以点开所有1.X版本的都看看)
    在这里插入图片描述

下面是1.7.2版本的pyg官方文档,要求python<3.9(我的python3.7,满足要求)

在这里插入图片描述
CUDA version包括(cpu、cu92、cu101、cu102、cu110、cu111)
1.4.0<= torch <= 1.9.0
所以11.0<= cudatoolkit <=11.1,对于我的显卡,cuda的版本只能选择110或者111,现在就又缩小了cuda的范围。然后确定torch的版本。

  • step2:点地址2查看torch的版本
    在这里插入图片描述
    cuda=110的话,torch只有1.7.0和1.7.1
    cuda=111的话,torch从1.8.0到1.10.1都有(没放图,可以点地址2看一下)
    所以:torch=1.7.0/1.7.1-cu110 或者 1.8.0<=torch<=1.10.1 -cu111

  • step3:安装pyg之前,还要安装pyg的四个依赖包scatter、sparse、cluster、spline_conv,但是对我来说安装wheel文件最好用,比较推荐wheel安装pyg的依赖包。
    点开地址3看一下有没有torch-cu110=1.7.0/1.7.1 或者 1.8.0<=torch-cu111<=1.10.1的组合,这里面都是pyg依赖包的wheel文件。(点进去之后可以看到要安装pyg的依赖包要求torch最低是1.4)有torch-1.7.0/1.7.1-cu110 也有torch-1.8.0<=torch<=1.10.1 -cu111,所以可以安装torch=1.70,cuda=11.0。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

安装pyg只需四行代码

  • 首先新建虚拟环境,加上python版本
    conda create -n <evn name> python==3.7
  • 安装torch-1.7.0+cu110
    方法一:pytorch官网安装
    进入地址1找到cuda=11.0对应的torch、torchvision和torchaudio版本。
    在这里插入图片描述
    不要加-c pytorch,否则有可能是cpu版本的torch,而且安装得会快一点。
    conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0
    方法二:如果conda安装不了这几个包的话,点地址2找到这几个包对应的版本下载其wheel文件。然后在终端进入下载的文件夹内,pip install XXX.whl
    我用的方法一,发现torchaudio不是gpu版本的,然后去地址2也找了一下,确实没有torchaudio-cu110,不过不影响我跑代码,不知道后面会不会有问题。
    在这里插入图片描述

测试torch-gpu是否安装成功,true说明安装成功,cuda可用,cuda的版本是11.0,torch的版本是1.7.0+cu110。(安装了cudatoolkit,所以不用自己安装CUDA。)
在这里插入图片描述在这里插入图片描述

  • 安装pyg的四个依赖包
    点地址3进入torch-1.7.0+cu110
    在这里插入图片描述
    进入之后在这个页面里下载cp37-linux(python、OS根据自己情况选择)的scatter、sparse、cluster、spline_conv这四个wheel文件。
    在这里插入图片描述
    终端进入下载好的wheel的文件夹里,pip安装。
    pip install torch_scatter-2.0.5-cp37-cp37m-linux_x86_64.whl torch_sparse-0.6.8-cp37-cp37m-linux_x86_64.whl torch_cluster-1.5.8-cp37-cp37m-linux_x86_64.whl torch_spline_conv-1.2.0-cp37-cp37m-linux_x86_64.whl
  • 安装pyg=1.7.2,一定要加上版本号,否则默认安装2.X,当然也可以安装2.X版本,只不过要和torch、cuda、python版本要对应好。
    pip install torch-geometric==1.7.2(会自动安装依赖scikit-learn pandas networkx)

测试:没报错就说明安装pyg成功了
在这里插入图片描述

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

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

相关文章

【解读】OWASP大语言模型应用程序十大风险

OWASP大型语言模型应用程序前十名项目旨在教育开发人员、设计师、架构师、经理和组织在部署和管理大型语言模型&#xff08;LLM&#xff09;时的潜在安全风险。该项目提供了LLM应用程序中常见的十大最关键漏洞的列表&#xff0c;强调了它们的潜在影响、易利用性和在现实应用程序…

基本计算器II

文章目录 题目解析算法解析算法模拟第一步 第二步第三步第四步第五步第六步最后一步 代码 题目解析 题目链接 我们先来看一下题目这个题目的意思很明确就是给你一个算数式让你计算结果并返回并且给了很多辅助条件来帮助你。 算法解析 那么我们来看看这个题目有哪些做法&…

Qt 定时器事件

文章目录 1 定时器事件1.1 界面布局1.2 关联信号槽1.3 重写timerEvent1.4 实现槽函数 启动定时器 2 定时器类 项目完整的源代码 QT中使用定时器&#xff0c;有两种方式&#xff1a; 定时器类&#xff1a;QTimer定时器事件&#xff1a;QEvent::Timer&#xff0c;对应的子类是QTi…

SQL中常见的DDL操作及示例,数据库操作及表操作

目录 一、数据库操作 1、创建数据库 2、查看所有数据库 3、使用数据库 4、删除数据库 二、表操作&#xff1a; 1、创建表 2、查看表结构 3、修改表结构 3.1 添加列 3.2 修改列数据类型 3.3 修改列名 3.4 删除列 3.5 修改表名 3.6 删除表 注意&#xff1a; 在数…

云计算项目十一:构建完整的日志分析平台

检查k8s集群环境&#xff0c;master主机操作&#xff0c;确定是ready 启动harbor [rootharbor ~]# cd /usr/local/harbor [rootharbor harbor]# /usr/local/bin/docker-compose up -d 检查head插件是否启动&#xff0c;如果没有&#xff0c;需要启动 [rootes-0001 ~]# system…

OpenCV学习笔记(四)——对视频的读取操作

目录 读取视频内容 将彩色视频转换为灰色视频 读取视频内容 读取视频文件通常分为读取文件、验证是否打开成功打开文件、逐帧读取视频文件、释放资源和关闭窗口 &#xff08;1&#xff09;读取文件 在OpenCV中&#xff0c;通常使用VedioCapture来读取视频流&#xff0c;Vedi…

linux多线程编程使用互斥量的原理分析和应用实例

目录 概述 1 保护对共享变量的访问&#xff1a;互斥量 1.1 认识互斥量 1.2 互斥锁API 1.2.1 互斥锁初始化函数 1.2.2 互斥锁函数 1.2.3 互斥锁变体函数 1.3 互斥锁使用方法 1.4 互斥锁死锁 2 互斥量的应用介绍 2.1 创建与销毁 2.1.1 创建互斥量 2.1.2 销毁互斥量 …

UnicodeDecodeError: ‘gbk‘和Error: Command ‘pip install ‘pycocotools>=2.0

今天重新弄YOLOv5的时候发现不能用了&#xff0c;刚开始给我报这个错误 subprocess.CalledProcessError: Command ‘pip install ‘pycocotools&#xff1e;2.0‘‘ returned non-zero exit statu 说这个包安装不了 根据他的指令pip install ‘pycocotools&#xff1e;2.0这个根…

FPGA的时钟资源

目录 简介 Clock Region详解 MRCC和SRCC的区别 BUFGs 时钟资源总结 简介 7系列FPGA的时钟结构图&#xff1a; Clock Region&#xff1a;时钟区域&#xff0c;下图中有6个时钟区域&#xff0c;用不同的颜色加以区分出来 Clock Backbone&#xff1a;从名字也能看出来&#x…

【数据结构】万字长文图解+代码实现AVL树

目录 一、概念 二、图解 1.图解插入 2.图解右单旋 3.图解左单旋 4.图解右左双旋 5.图解左右双旋 6.验证是否是AVL树 三、代码实现 一、概念 AVL树是一种高度平衡的二叉搜索树&#xff0c;得名于其发明者的名字&#xff08;G. M. Adelson-Velskii和E. M. Landis&#xff0…

ELK-介绍及Elasticsearch集群搭建

ELK是三个开源软件的缩写&#xff0c;分别为Elasticsearch、Logstash、kibana它们都是开源软件。后来新增了一个FileBeat&#xff0c;它是一个轻量及的日志收集处理工具&#xff0c;因为Logstash由java程序开发&#xff0c;比较消耗内存资源&#xff0c;后来将Logstash使用go语…

微信小程序如何实现下拉刷新

1.首先在你需要实现下拉刷新页面的json文件中写入"enablePullDownRefresh": true。 2.在js文件的onPullDownRefresh() 事件中实现下拉刷新。 实现代码 onPullDownRefresh() {console.log(开始下拉刷新)wx.showNavigationBarLoading()//在标题栏中显示加载图标this.d…

一个将图片转3D的开源项目TripoSR

TripoSR AI是StabilityAI联合发布的图生3D模型&#xff0c;TripoSR是一个快速的3D物体重建模型。TripoSR能够在不到一秒钟的时间内从单张图片生成高质量的3D模型。TripoSR模型的特点是能够快速处理输入&#xff0c;在 NVIDIA A100 GPU 上不到 0.5 秒的时间内生成高质量的 3D 模…

用于无人机路径规划的增强型粒子群优化

摘要&#xff1a; 近年来&#xff0c;元启发式算法被广泛用于解决多目标优化问题&#xff08;MOOPs&#xff09;。粒子群优化&#xff08;PSO&#xff09;由于其在解决MOOPs方面的有效性&#xff0c;在这些算法中得到了普及。然而&#xff0c;PSO的性能高度依赖于其探索和利用能…

解锁安卓开发利器:深度探析ADB【安卓开发】

引言 在安卓开发与维护过程中&#xff0c;我们经常会遇到一些限制&#xff0c;比如无法直接访问某些系统功能&#xff0c;或者在某些定制系统中 受到限制 。为了解决这些问题&#xff0c;我们需要一种有效的工具来管理和调试安卓设备&#xff0c;而这时候ADB&#xff08;Andro…

离线数仓(五)【数据仓库建模】

前言 今天开始正式数据仓库的内容了, 前面我们把生产数据 , 数据上传到 HDFS , Kafka 的通道都已经搭建完毕了, 数据也就正式进入数据仓库了, 解下来的数仓建模是重中之重 , 是将来吃饭的家伙 ! 以及 Hive SQL 必须熟练到像喝水一样 ! 第1章 数据仓库概述 1.1 数据仓库概念 数…

【打工日常】使用docker部署个人实时在线文档协助编辑器

一、Etherpad介绍 Etherpad是一个高度可定制的开源在线编辑器&#xff0c;提供真正实时的协作编辑。放在自己的服务器里面&#xff0c;可以更大程度的保护自己工作的隐私&#xff0c;并且Etherpad允许您实时协作编辑文档&#xff0c;就像在浏览器中运行的实时多人编辑器一样这样…

Linux网络基础2之http

这里是ky233的主页&#xff0c;欢迎光临~https://blog.csdn.net/ky233?typeblog 目录 一、认识URL 1.认识URL 2.urlencode和urldecode 二、HTTP协议格式 1.快速构建http请求和相应的报文格式 三、http demo 1.GET和POST 2.HTTP的状态码 3.http的特征 4.HTTP常见Head…

ARTS Week 20

Algorithm 本周的算法题为 1222. 可以攻击国王的皇后 在一个 下标从 0 开始 的 8 x 8 棋盘上&#xff0c;可能有多个黑皇后和一个白国王。 给你一个二维整数数组 queens&#xff0c;其中 queens[i] [xQueeni, yQueeni] 表示第 i 个黑皇后在棋盘上的位置。还给你一个长度为 2 的…

VARMA(Vector Auto Regressive Moving Average) in Time Series Modelling

what is VARMA? ARIMA是针对单一变量进行建模的方法,当我们需要进行多变量时序建模时,需要使用VAR and VMA and VARMA模型。 VAR:Vector Auto-Regressive,a generalization of the auto-regressive model for multivariate time series where the time series is station…