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

图神经网络之异构图转同构图

heterogeneous graph转homogeneous

  • 异构图创建教程
  • dgl.to_homogeneous语法格式
  • 例子

异构图创建教程

对于异构图创建,可以看异构图创建教程

dgl.to_homogeneous语法格式

dgl.to_homogeneous(G, ndata=None, edata=None, store_type=True, return_count=False)
  • G:传入的异构图
  • ndata (可选):组合所有节点特征,行为节点数,列为特征维度。例如 ndata=[‘h’],则将组合后的所有节点特征赋给ndata[‘h’]。因此,所有节点类型的特征必须具有相同的形状和数据类型。默认情况下,返回的图将不包含任何节点特征。
  • edata(可选):和ndata同理
  • store_type (可选):如果为 True,则在返回的图中存储类型信息,作为 dgl.NTYPE 和 dgl.ETYPE 特征。默认为True
  • return_count (可选):如果为 True,则返回类型信息,作为整数列表;第 i 个元素对应第 i 种类型的节点/边的数量。默认为False

例子

import dgl
import torch
hg = dgl.heterograph({
    ('user', 'follows', 'user'): ([0, 1], [1, 2]),
    ('developer', 'develops', 'game'): ([0, 1], [0, 1])
    })
hg.nodes['user'].data['h'] = torch.ones(3, 1)
hg.nodes['developer'].data['h'] = torch.zeros(2, 1)
hg.nodes['game'].data['h'] = torch.ones(2, 1)
g = dgl.to_homogeneous(hg)
# The first three nodes are for 'user', the next two are for 'developer',
# and the last two are for 'game'
print(f'节点信息为:{g.ndata}')
print('--------------------')
# The first two edges are for 'follows', and the next two are for 'develops' edges.
print(f'边信息为:{g.edata}')
print('--------------------')
g = dgl.to_homogeneous(hg, ndata=['h'])
print(f"节点特征为:{g.ndata['h']}")

结果如下:
在这里插入图片描述
对于节点特征,可以看到矩阵的行为节点数,列为特征维度


http://www.kler.cn/news/341673.html

相关文章:

  • 深度学习:5种经典神经网络模型介绍
  • JavaScript 常量/数据类型/类型转换 简单学习
  • c# 可空引用类型
  • Linux服务器安全-使用非root账号登陆
  • linux udev详解
  • 深入了解 MySQL 中的 JSON_CONTAINS
  • 《深入浅出LLM基础篇》(五):Propmt工程优化
  • 光控资本:科创板股票代码开头是什么,科创板股票代码?
  • 卷积神经网络细节问题及知识点
  • LVS搭建负载均衡
  • 49.字母异位词分组
  • uniapp view怎么按长度排列一行最多四个元素,并且换行后,每一行之间都有间隔
  • 基于SpringBoot+Vue+uniapp的高校教务管理小程序系统设计和实现
  • 鸿蒙harmonyos next flutter混合开发之开发FFI plugin
  • 量化交易与基础投资工具介绍
  • TIM的PWM模式
  • Java使用注解进行参数校验
  • 【每天学点AI】大模型如何做情感分类?BERT是如何做情感分类的?
  • 等保测评是什么?为什么要做等保测评?
  • 技术分享 —— JMeter接口与性能测试实战!