手把手安装GNN必备库 —— pytorch_geometric

news2024/11/16 20:44:58

0 BackGround

GNN:图神经网络,由于传统的CNN网络无法表示顶点和边这种关系型数据,便出现了图神经网络解决这种图数据的表示问题,这属于CNN往图方向的应用扩展。
GCN:图卷积神经网络,GNN在训练过程中,有将attention引入图结构的,有将门控机制引入图结构的,还有将卷积引入图结构的,引入卷积的GNN就是GCN,通过提取空间特征来进行学习。
为什么要开图神经网络 (GNN) 的新坑? 组合优化中有一种问题叫路由问题 (routing problem), 代表是旅行商人问题 (Travelling Salesman Problem). 而这类问题, 本身的数据结构就是图 (Graph) 结构, 在构建和求解上, GNN似乎具有天然的优势. 当下GNN大火, 有两个库是最热门的: Deep Graph Library (DGL) 和 PyTorch Geometric (PyG). 这两个库都很好用, 差别也不特别大 (DGL官网是有中文教程的). 但是PyG相对来说更基础一些, 教程与支持也更多一些.
PyG全称是Pytorch Geometric,它是一个基于Pytorch构建的库,可以帮助用户快速构建和训练自己的图神经网络模型。PyG中实现了很多先进(state of the art)的GNN模块,例如GCN、GraphSage、GAT、SGC、GIN等等。此外,PyG中还包含了大量的benchmark图数据集、丰富的图数据操作方法、支持多GPU。
注:提示一下,一定要按此教程一步一步走,千万不能直接pip install,因为pytorch_geometric库有很多依赖,必须逐步安装,否则会产生各种各样的错误。

1. 进入github

https://github.com/pyg-team/pytorch_geometric

2. 找到Pip Wheels, 进入依赖安装位置在这里插入图片描述

3. 找到对应的版本

在这里插入图片描述
大家不要盲目的和我选择一样的版本号,每个人的版本是不一样的,torch的版本可以进入虚拟环境后使用pip list来查看:

conda activate envs  # envs是虚拟环境的名字
pip list

在这里插入图片描述
找到自己本地对应的版本后进入相应版本的依赖。

4. 依次安装依赖(一共4个)

先查看自己本地的python版本(已回会用到)(我的是3.8):

 python -V  或者 输入 python --version

在这里插入图片描述
第一个依赖是torch_cluster,找到相应版本,cp就是python的版本(3.7~3.10),我的版本是cuda11.6,python3.8,win64,点击后自动下载,自行指定下载路径(下载到哪里都行,只要自己能找到就好)。
进入虚拟环境的终端,使用pip install + 保存的路径进行安装👇
在这里插入图片描述
以下三个依赖同理,有几个装几个,方法和第一个完全一样:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 安装torch-geometric

pip install torch-geometric

6. 验证安装是否成功

import torch-geometric

或者终端输入👇

python -c "import torch_geometric"

没有报错的话说明我们已经成功安装了pytorch_geometric库。

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

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

相关文章

【ONE·R || 两次作业(二):GEO数据处理下载分析】

总言 两次作业汇报其二:GEO数据处理学习汇报。    文章目录总言2、作业二:GEO数据处理下载分析2.1、GEO数据库下载前准备2.2、GEO数据库下载及数据初步处理2.2.1、分阶段解析演示2.2.1.1、编号下载流程2.2.1.2、对gset[ 1 ]初步分析2.2.1.3、对gset[ 2…

基于requests框架实现接口自动化测试项目实战

requests库是一个常用的用于http请求的模块,它使用python语言编写,在当下python系列的接口自动化中应用广泛,本文将带领大家深入学习这个库,Python环境的安装就不在这里赘述了,我们直接开干。 01 requests的安装 win…

销售结束语话术

销售要记住,结束语不代表结束,而是下一次沟通的开始,所以销售要学会通过结束语来为自己争取下次沟通的机会。 前言 不论是哪一行业,对于销售而言,大多数成交的客户都是经过持续有效的跟踪的,还会出现有很多…

Java设计模式-原型模式Prototype

介绍 当我们有一个类的实例(Prototype)并且我们想通过复制原型来创建新对象时,通常使用Prototype模式。 原型模式是一种创建型设计模式。能够复制已有对象, 而又无需使代码依赖它们所属的类。 场景举例 现在有一只羊 tom&#xf…

iTerm2连接ssh配置

iTerm2连接ssh配置 #首先在/Users目录下按照如下命令创建sh脚本 cd /Users/#创建iterm文件夹 mkdir iterm#进入iterm文件夹 cd iterm#创建myserver.sh文件 touch myserver.sh#编辑myserver.sh文件 vi myserver.sh如果出现没有权限,就命令前面加上sudo 键盘输入i编…

斯皮尔曼相关(spearman)相关性分析一文详解+python实例代码

前言 相关性分析算是很多算法以及建模的基础知识之一了,十分经典。关于许多特征关联关系以及相关趋势都可以利用相关性分析计算表达。其中常见的相关性系数就有三种:person相关系数,spearman相关系数,Kendalls tau-b等级相关系数…

Java + OpenCv 根据PID/VID调用指定摄像头

问题: 主机接入了多个USB摄像头,传统的OpenCv是用摄像头插入usb的下标调取的,如过只接入一个摄像头那直接使用capture.open(0);这种方式调用没有任何问题,多个的话,就会出现问题,因为USB拔插时候对应摄像头…

用原生的方式写vue组件之深度剖析组件内部的原理

目录前言一,对组件的复习及理解二,模块化与组件化三,用原生的方式写vue组件3.1 准备工作3.2 创建组件3.3 组件中的data为什么是函数式写法3.4 组件中的template四,注册组件五,使用组件六,全局组件七&#x…

阿里云服务器ECS购买教程

本文是关于阿里云主机(服务器ECS)购买流程的一个详细介绍。阿里云服务器(Elastic Compute Service,简称 ECS)是一种简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,…

机器学习实战教程(十二):线性回归提高篇

一、前言本篇文章讲解线性回归的缩减方法,岭回归以及逐步线性回归,同时熟悉sklearn的岭回归使用方法,对乐高玩具套件的二手价格做出预测。二、岭回归如果数据的特征比样本点还多应该怎么办?很显然,此时我们不能再使用上…

【Elsevier出版社】1区智能物联网类SCIEI,审稿友好~

1区智能物联网类SCI&EI 【出版社】Elsevier 【期刊简介】IF:5.5-6.0,JCR1区,中科院3区 【检索情况】SCI&EI 双检,正刊 【参考周期】3个月左右录用 【截稿日期】2023.2.28 【征稿领域】 ①物联网辅助的智能解决方案…

送给SQL开发者的一份新年礼物!麦聪软件发布一款纯Web化SQL开发工具,免安装还免费!

2023年新年伊始,麦聪软件再次迎来一个好消息:一款100%自主研发的纯Web化SQL开发工具——SQL Studio 1.0正式发布。这款产品让SQL开发者在Navicat、DBeaver之外,又多一款值得信赖的SQL开发工具可用。 图片 目前,SQL Studio 1.0面向…

qt读写xml文件(DOM和SAX两种方式)

一、XML简介: XML, 全称为扩展标记语言, 可用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据,是Internet环境…

纵向联邦线性回归实现-Federated Machine Learning Concept and Applications论文复现

本实验的算法实现思路来自这篇论文Federated Machine Learning Concept and Applications 文章目录场景介绍同态加密算法python的phe库实现了加法同态加密角色1角色2传统的线性回归纵向联邦线性回归纵向联邦线性回归代码实现导入工具包准备数据使用普通线性回归训练搭建训练过程…

什么神仙操作,用代码能画这样的图

大家好,我是车辙。不知道同学们画流程图或者时序图一般用的什么软件?Visio 还是 Process On 或者语雀? 因为公司原因,在很多情况下,我一般用语雀画流程图或者思维导图。不过凡事也有例外,对于比较简单的图…

你的电路是抄来的还是算出来的?

在你看这篇文章之前,我想提出几点说明: (1)最近在看拉扎维的书,写下来这些东西,这也只是我个人在学习过程中的一点总结,有什么观点大家可以相互交流;(2)不断的…

立创eda专业版学习笔记(3)(隐藏部分飞线)

又到了喜闻乐见的隐藏gnd飞线环节,我发现这个专业版的操作和标志版不一样,我想试一试这个标题的搜索结果,发现有用的结果还是很少,于是我也随便总结了一下,算是添砖加瓦吧。 原来的飞线是这个样子的: 现在我…

巧妙解决appleid问题答案忘了的问题

先说下这个问题解决办法的目标——主要是为了释放被占用的appleid邮箱,而如果你想保留该appleid并且正常使用的话,那么需要付出一点代价,也是可以做到的。 我最近就碰到这种情况,某个邮箱被appleid占用了,问题答案因为…

从实战出发,聊聊缓存数据库一致性

在云服务中,缓存是极其重要的一点。所谓缓存,其实是一个高速数据存储层。当缓存存在后,日后再次请求该数据就会直接访问缓存,提升数据访问的速度。但是缓存存储的数据通常是短暂性的,这就需要经常对缓存进行更新。而我…

Linux常用命令——lsb_release命令

在线Linux命令查询工具 lsb_release 显示发行版本信息 补充说明 LSB是Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。 -v 显示版本信息。 -i 显示发行版的id。 -d 显示该…