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

解决PyG安装中torch-sparse安装失败问题:详细指南

1 问题描述

最近在学习GNN,需要使用PyTorch Geometric(PyG)库。在安装PyG的过程中,遇到了torch-sparse安装失败的问题,错误提示为:

ERROR: Failed building wheel for torch-sparse

本文将详细记录问题的解决过程,并提供多种解决方案,帮助同样遇到问题的uu顺利安装PyG。


2 PyG安装流程

PyG的安装依赖于以下几个核心库:

  • torch-scatter
  • torch-sparse
  • torch-cluster
  • torch-spline-conv
  • torch-geometric

通常的安装命令如下:

pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.10.0+cpu.html
pip install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.10.0+cpu.html
pip install torch-cluster -f https://pytorch-geometric.com/whl/torch-1.10.0+cpu.html
pip install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.10.0+cpu.html
pip install torch-geometric

然而,在安装torch-sparse时,我这里遇到Failed building wheel for torch-sparse的错误。


3. 解决方案

3.1 检查PyTorch和CUDA版本

首先,确保你的PyTorch和CUDA版本与PyG兼容。可以通过以下命令查看PyTorch和CUDA版本:

import torch
print(torch.__version__)  
print(torch.version.cuda) 

3.2 手动指定版本安装

如果版本不匹配,可以手动指定torch-sparse的版本进行安装。以下是具体步骤:

  1. PyG的官方Wheel文件页面
    https://pytorch-geometric.com/whl/index.html
    顺便放一下官网链接:https://pytorch-geometric.readthedocs.io/en/latest/

  2. 找到与你的PyTorch和CUDA版本匹配的torch-sparse版本。例如,我的PyTorch版本是2.4.1,CUDA版本是cu118,使用以下命令:

    pip install torch-sparse==0.6.18 -f https://pytorch-geometric.com/whl/torch-2.4.1+cu118.html
    
  3. 依次安装其他依赖库

    pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-2.4.1+cu118.html
    pip install torch-cluster -f https://pytorch-geometric.com/whl/torch-2.4.1+cu118.html
    pip install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-2.4.1+cu118.html
    pip install torch-geometric
    

3.3 直接下载Wheel文件安装

如果还是不行,可以直接从PyG的Wheel文件页面下载对应的.whl文件,然后使用pip安装。例如:

pip install torch_sparse-0.6.18-cp310-cp310-win_amd64.whl

3.4 安装构建工具

如果缺少构建工具,可以尝试安装以下工具:

  • Windows:安装Visual Studio Build Tools
  • Linux:安装cmakeg++
    sudo apt-get install cmake g++
    

4 验证安装成功

安装完成后,可以通过以下一个小的demo来验证PyG是否安装成功:

import torch
from torch_geometric.data import Data# 创建图数据demo
edge_index = torch.tensor([[0, 1], [1, 2]], dtype=torch.long)
x = torch.tensor([[1], [2], [3]], dtype=torch.float)data = Data(x=x, edge_index=edge_index.t().contiguous())
print(data)

输出如下:

Data(x=[3, 1], edge_index=[2, 2])

在这里插入图片描述

http://www.lryc.cn/news/531137.html

相关文章:

  • 如何创建折叠式Title
  • go-zero学习笔记(三)
  • Wildcard工具详解:从入门到精通
  • 冰蝎v3.0 beta7来啦
  • React中使用箭头函数定义事件处理程序
  • 记忆化搜索和动态规划 --最长回文子串为例
  • Tree Compass( Codeforces Round 934 (Div. 2) )
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.17 掩码数组:缺失值处理的优雅方案
  • PHP 常用函数2025.02
  • react中如何获取dom元素
  • 【C++】继承(下)
  • C语言实现字符串排序:从代码到原理深度解析
  • Vue3的el-table-column下拉输入实时查询API数据选择的实现方法
  • 【数据结构】_链表经典算法OJ:复杂链表的复制
  • Vue 图片引用方式详解:静态资源与动态路径访问
  • chatGPT写的网页版贪吃蛇小游戏
  • Python量化交易助手:xtquant的安装与应用
  • 前缀和算法
  • Qt常用控件 输入类控件
  • 《最小阻力之路》关于愿景的理解和思考
  • Ubuntu 22.04系统安装部署Kubernetes v1.29.13集群
  • 虚幻基础17:动画层接口
  • 无人机PX4飞控 | PX4源码添加自定义uORB消息并保存到日志
  • HTMLCSS :下雪了
  • 如何处理 Typecho Joe 主题被抄袭或盗版的问题
  • 利用Vue和javascript分别编写一个“Hello World”的定时更新
  • volatile变量需要减少读取次数吗
  • bootstrap.yml文件未自动加载问题解决方案
  • 编程AI深度实战:AI编程工具哪个好? Copilot vs Cursor vs Cody vs Supermaven vs Aider
  • 前端知识速记--CSS篇:display