一、环境配置

因为没有GPU,我这里只安装了CPU版本

  1. 先安装pytorch
pip install torch torchvision torchaudio
  1. 安装PyG
pip install torch-scatter
pip install torch-sparse
pip install torch-cluster
pip install torch-spline-conv
pip install torch-geometric

二、Data类

Data类的构造函数如下:

class Data(object):def __init__(self, x=None, edge_index=None, edge_attr=None, y=None, **kwargs):r"""Args:x (Tensor, optional): 节点属性矩阵,大小为`[num_nodes, num_node_features]`edge_index (LongTensor, optional): 边索引矩阵,大小为`[2, num_edges]`,第0行为尾节点,第1行为头节点,头指向尾edge_attr (Tensor, optional): 边属性矩阵,大小为`[num_edges, num_edge_features]`y (Tensor, optional): 节点或图的标签,任意大小(,其实也可以是边的标签)"""self.x = xself.edge_index = edge_indexself.edge_attr = edge_attrself.y = yfor key, item in kwargs.items():if key == 'num_nodes':self.__num_nodes__ = itemelse:self[key] = item

Data类的使用:

import torch
from torch_geometric.data import Data# 节点数据
x = torch.tensor([[2, 1], [5, 6], [3, 7], [12, 0]], dtype=torch.float)
# 节点类型
y = torch.tensor([0, 1, 0, 1], dtype=torch.int)
# 邻接矩阵 COO格式
edge_index = torch.tensor([[0, 0, 1, 2, 3],[3, 1, 0, 1, 2]], dtype=torch.long)data = Data(x=x, y=y, edge_index=edge_index)

三、Dataset类

生成数据集

from torch_geometric.datasets import Planetoid
dataset = Planetoid(root='/dataset/Cora', name='Cora')

数据集的使用

model = Net().to(device)
data = dataset[0].to(device)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4)model.train()
for epoch in range(200):optimizer.zero_grad()out = model(data)loss = F.nll_loss(out[data.train_mask], data.y[data.train_mask])loss.backward()optimizer.step()

作业

请通过继承Data类实现一个类,专门用于表示“机构-作者-论文”的网络。该网络包含“机构“、”作者“和”论文”三类节点,以及“作者-机构“和“作者-论文“两类边。对要实现的类的要求:1)用不同的属性存储不同节点的属性;2)用不同的属性存储不同的边(边没有属性);3)逐一实现获取不同节点数量的方法。

from torch_geometric.data import Dataclass MyData(Data):def __init__(self, author, author_edge, institution, institution_edge, paper, paper_edge, **kwargs):super().__init__(**kwargs)self.author = authorself.author_edge = author_edgeself.institution = institutionself.institution_edge = institution_edgeself.paper = paperself.paper_edge = paper_edgedef get_author_num(self):return len(self.author)def get_institution_num(self):return len(self.institution)def get_paper_num(self):return len(self.paper)

环境配置与PyG中图与图数据集的使用相关推荐

  1. 181个NLP教程合集,Colab一键直达,无需环境配置,此外还有481个文本数据集

    梅宁航 发自 凹非寺  量子位 报道 | 公众号 QbitAI 学习NLP不用愁了. 算力.环境配置谷歌提供,Colab套件对NLP全场景支持. 有了算力,还差教程,现在NLP学习合集大全套来了. △ ...

  2. 【环境配置】虚拟机中配置C++环境

    0.前言 为实现 CSAPP 配套C++练习题,在虚拟机上配置c++环境 1.准备一个Linux系统 1.1 下载Linux发行版镜像 选择最常见的Linux发行版Ubuntu,其在官网上可下载,我选 ...

  3. cbnet环境配置和运行中遇到的问题

    一.环境问题 安装时有两套Transformer的网络模型,cbnet是基于transformer的. 1.经常出现CBTransformer 没在仓库这个问题 这个问题在相应的issu中就能找到,根 ...

  4. Window 10下JAVA环境配置

    Window 10下JAVA环境配置   1.下载结束如图: 注意:根据自己windows系统的版本以及位数下载对应的JDK 2.配置环境 将上面下载的JDK安装好,我安装在了F盘,路径如下:F:\J ...

  5. python拿什么做可视化界面好-python爬虫如何制作可视化界面?(pyqt5环境配置篇)...

    却道天凉好个秋~ pyqt5+python+qtdesigner+pycharm制作一个可视化的GUI爬虫工具 前言: 最近闲来无聊又开始了py之路,这次需要的是制作一个贴吧的关键词搜索相关帖子的工具 ...

  6. Java 开发环境配置jdk安装教程

    Java 开发环境配置 在本文中我将为大家介绍如何搭建Java开发环境. 小破站视频教程:https://www.bilibili.com/video/BV1ji4y1u74e/ Windows 上安 ...

  7. 基于Detectron2的BlendMask训练 BlendMask环境配置 COCO数据集

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.下载Detectron2 在这里插入图片描述 AdelaiDet是基于Detectron2之上,可以包含多个实例级 ...

  8. zzw原创_ipv6下环境配置防火墙及FTP处理一例

    缘由:公司这段时间要将原IPV4地址切换到IPV6,在环境配置的过程中,碰到一坑,平时不太注意的问题,在IPV6下却放大了 实现目标:在IPV6下,机器A可以FTP到机器B,可以传输.下载文件 A机器 ...

  9. nodejs的下载安装及环境配置及常见问题--react学习必备--nodejs重新安装前的必要卸载

    学习react我们首先需要使用react和react-dom这两个包,然而在终端用npm触发这一事件的前提是已经安装了nodejs.提示为 npm : 无法将"npm"项识别为 c ...

最新文章

  1. 猎头出500万年薪挖百度某高T,却被对方拒绝!网友:钱不是最重要的!
  2. html 文档自动获取css,前端基础中css选择器,html文档 ,与javascrip中基本的获取
  3. SpringBoot - 优雅的实现【异步编程】
  4. Big Sur更新下载过慢?亲测!满速下载macOS原版系统
  5. DataGridView控件的使用 1207
  6. 数字签名开源_开源如何推动数字艺术时代
  7. 手机linux比windows省电,为什么win10比ubuntu省电?
  8. ES6模块的循环加载
  9. 名为 cursor_jinserted 的游标不存在_一个工程师必须了解的测量常识,你不知道怎么行...
  10. redis 判断存在性_一口气说出四种幂等性解决方案,面试官露出了姨母笑~
  11. 分布有限传输速度高的计算机网络,第5章 计算机网络基础.ppt
  12. You must install libopus-dev
  13. 谭浩强c语言第五版 第二章习题解答
  14. instantclient使用步骤
  15. 引爆点---绝对内行
  16. mysql获取汉字首字母拼音,包括复杂字
  17. html图片如何和输入框并排,闪亮的4个小文本输入框并排
  18. 微商如何通过自媒体平台进行引流
  19. Easter Eggs
  20. html5div拖拽插件,jquery+html5多文件拖放上传插件jquery.filer

热门文章

  1. dj鲜生-32-用户中心-收货地址
  2. tar.gz及tar.bz2两种常见格式的打包压缩及解压方法
  3. Object类入门这一篇就够了!
  4. Java异常类复习总结
  5. Unabe to login, status: 526
  6. 安恒发布态势感知通报预警中心——“先知”
  7. 向一个数组中插入元素
  8. android 通过访问 php 接受 or 传送数据
  9. info nano shutdown
  10. Docker for windows 容器内网通过独立IP直接访问的方法