【GNN 03】PyG

工具包安装: 不要pip安装

https://github.com/pyg-team/pytorch_geometricicon-default.png?t=N7T8https://github.com/pyg-team/pytorch_geometric

 

import torch
import networkx as nx
import matplotlib.pyplot as pltdef visualize_graph(G, color):plt.figure(figsize=(7, 7))plt.xticks([])plt.yticks([])nx.draw_networkx(G, pos=nx.spring_layout(G, seed=42), with_labels=False, node_color=color, cmap="Set2")plt.show()def visualize_embedding(h, color, epoch=None, loss=None):plt.figure(figsize=(7, 7))plt.xticks([])plt.yticks([])h = h.detach().cpu().numpy()plt.scatter(h[:, 0], h[:, 1], s=140, c=color, cmap="Set2")if epoch is not None and loss is not None:plt.xlabel(f'Epoch: {epoch}, Loss: {loss.item():.4f}', fontsize=16)plt.show()

1 dataset

from torch_geometric.datasets import KarateClubdataset = KarateClub()
print(f'Dataset: idataset] :')
print('===================')
print(f'Number of graphs: {len(dataset)}')
print(f'Number of features: {dataset.num_features}')
print(f'Number of classes: {dataset.num_classes}')
data = dataset[0]
print(data)

2 source-target

edge_index = data.edge_index
# print(edge_index.t())

3 Visual presentation using networkx

from torch_geometric.utils import to_networkxG = to_networkx(data, to_undirected=True)
visualize_graph(G, color=data.y)

4 GCN model

import torch
from torch.nn import Linear
from torch_geometric.nn import GCNConv
import torch.sparseclass GCN(torch.nn.Module):def __init__(self):super().__init__()torch.manual_seed(1234)self.conv1 = GCNConv(dataset.num_features, 4, cache=False)self.conv2 = GCNConv(4, 4)self.conv3 = GCNConv(4, 2)self.classifier = Linear(2, dataset.num_classes)def forward(self, x, edge_index):h = self.conv1(x, edge_index) # edge_index 邻接矩阵h = h.tanh()h = self.conv2(h, edge_index)h = h.tanh()h = self.conv3(h, edge_index)h = h.tanh()out = self.classifier(h)return out, h

 

5 Two-dimensional vector

model = GCN()
print(model)_, h = model(data.x, data.edge_index)
visualize_embedding(h, color=data.y)

6 Training model(semi-supervised)

import timemodel = GCN()
criterion = torch.nn.CrossEntropyLoss()  # Define loss criterion.
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)  # Define optimizer.def train(data):optimizer.zero_grad()out, h = model(data.x, data.edge_index)  # h是两维向量,主要是为了咱们画个图loss = criterion(out[data.train_mask], data.y[data.train_mask])  # semi-supervisedloss.backward()optimizer.step()return loss, hfor epoch in range(401):loss, h = train(data)if epoch % 10 == 0:visualize_embedding(h, color=data.y, epoch=epoch, loss=loss)time.sleep(0.3)

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业架构LNMP学习笔记14

默认官方模块: Gzip压缩: 压缩文件,使文件变小了,传输更快了,目前大部分市场浏览器都支持Gzip。 传输的时候省流量。 目的是为了提高用户的加载速度。 #开启gzip压缩 gzip on; #http协议版本 gzip_http_version 1.0…

Maven 知识点总结

文章目录 Maven1、Maven 坐标2、Maven 仓库3、Maven 依赖依赖配置依赖范围依赖调解原则排除依赖 4、Maven 生命周期5、Maven 聚合与继承 Maven Maven是一个项目管理工具,它包含了项目对象模型(POM:Project Object Model)&#xf…

无人机通信协议MAVLink简介

Micro Air Vehicle Link(简称MAVLink)用于无人系统(例如,机器人、无人机、无人车、无人船和无人潜航器)。它定义了一组无人系统和地面站之间的消息交换规则。此协议广泛用于无人驾驶系统中,特别是ArduPilot和PX4无人驾驶系统,MAVLink协议提供了强大的功能,不仅用于监视…

Linux安装Redis(详细教程)

Linux安装Redis 注:希望将redis安装到此目录 /usr/local/redis 希望将安装包下载到此目录 /usr/local/src 可自己选择 1.创建安装目录/usr/local/redis mkdir /usr/local/redis 2.进入安装包目录 cd /usr/local/redis 3.进行下载安装包 wget https://download…

用python实现基本数据结构【03/4】

说明 如果需要用到这些知识却没有掌握,则会让人感到沮丧,也可能导致面试被拒。无论是花几天时间“突击”,还是利用零碎的时间持续学习,在数据结构上下点功夫都是值得的。那么Python 中有哪些数据结构呢?列表、字典、集…

JDK8新特性--函数式接口--(Consumer的概念理解,模拟练习,企业实战)全流程彻底搞懂

背景,起因是因为在项目开发过程中,发现了一处代码的写法觉得很新奇看不懂,了解后发现是用到了函数式接口的知识。特此学习记录,整体过程梳理在本文。如果你不满足就会写个CURD,业务代码只会new来new去,代码…

软件工程评级B-,有大量调剂名额。北京联合大学考情分析

北京联合大学(B-) 考研难度(☆) 内容:23考情概况(拟录取和复试分析)、院校概况、23专业目录、23复试详情、各专业考情分析、各科目考情分析。 正文1239字,预计阅读:3分钟 2023考情概况 北京…

从零开始-与大语言模型对话学技术-gradio篇(4)

前言 本文介绍「星火杯」认知大模型场景创新赛中的落选项目- AI命理分析系统,属于个人娱乐练手。总结提炼了往期文章精华并发掘出新的知识。 包括本地部署版本和Web在线版本,两种打包方式基于 半自动化使用.bat手动打包迁移python项目 如何把 Gradio …

Java——》synchronized互斥性

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

你应该知道的几个国产化平台-行云管家

近年来我国国产化加速发展,国产化平台也越来越多。但还有很多小伙伴不知道有哪些,这里就给大家汇总几个,大家应该知道的国产化平台。 你应该知道的几个国产化平台 1、cpu:龙芯、飞腾、鲲鹏、兆芯、海光、申威 2、浏览器&#xf…

Vercel的下一件大事:AI SDK和开发人员加速器

Vercel CEO Guillermo Rauch说,构建AI应用程序是开发人员注册Vercel的第二大原因。Ergo:Vercel AI SDK和加速器。 在 2020 年代,很少有公司比流行的 React 框架 Next.js 的管理者 Vercel 对前端开发人员生态系统产生更大的影响。当我在 2020…

骨传导耳机怎么听到声音?骨传导耳机是否会对听力造成损害?

其实骨传导耳机让我们听到的的传声原理很简单,而且骨传导现象很常见,简单的来说,就是像我们平时吃薯片或者挠头发,无论声音再小,自己也能听见,这就是骨传导的现象,也是为啥骨传导耳机不需要入耳…

GitHubGiteeGitlab极狐(JihuLab)同时生成并配置SSH公私钥详细过程

GitHub-微软-github.com Gitee-开源中国- gitee.com Gitlab-乌克兰GitLab 公司-gitlab.com 极狐(JihuLab)-中国代理商运营的Gitlab -gitlab.cn或者jihulab.com 使用SSH公钥可以让你在你的电脑和GitHub等平台通讯的时候使用更安全的连接(Git的Remote要使用SSH地址&a…

计算机竞赛 大数据疫情分析及可视化系统

文章目录 0 前言2 开发简介3 数据集4 实现技术4.1 系统架构4.2 开发环境4.3 疫情地图4.3.1 填充图(Choropleth maps)4.3.2 气泡图 4.4 全国疫情实时追踪4.6 其他页面 5 关键代码最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 大数据疫…

vue应用全局音乐(自动播放)

这里写自定义目录标题 1.从同事哪里白嫖过来的&#xff0c;主要是jq写的&#xff0c;需要单独引入jq cdn 2.打开index.html 将代码放到里面 <!DOCTYPE html> <html><head><meta charset"utf-8" /><metaname"viewport"content…

软件设计——面向对象的七大原则

前言 软件设计模式和设计原则是成为一个软件架构师的基本功&#xff0c;较好的理解这些基础知识无疑是十分重要的。在这篇文章中荔枝将会比较详细梳理一下面向对象的七大原则&#xff0c;大家可以先看看这部分内容再去学习设计模式会比较好哈哈哈哈~~~ 在软件开发中&#xff0c…

Linux RPM JDK升级

以JDK1.8升级JDK17为例 上传jdk17安装包到linux服务器 检查jdk版本 rpm -qa|grep jdk 删除查询到的jdk rpm -e --nodeps jdk1.8-1.8.0_201-fcs.x86_64 删除完毕后安装新的jdk rpm -ivh jdk-17_linux-x64_bin.rpm 检查jdk版本 java -version

深入探讨基于python的SGBM参数影响效果

什么是SGBM SGBM&#xff08;Semi-Global Block Matching&#xff09;是一种用于计算双目视觉中视差&#xff08;disparity&#xff09;的半全局匹配算法&#xff0c;在OpenCV中的实现为semi-global block matching&#xff08;SGBM&#xff09;。它是基于全局匹配算法和局部匹…

Matlab 2016安装MinGW-w64-4.9.2

Matlab 2016安装MinGW-w64-4.9.2 项目需求&#xff1a;需要将matlab中的.m文件编译为cpp文件 .dll .h .lib。 我相信大家在对matlab2016安装MinGW-w64出现了各种各样的问题。如&#xff1a;4.9.2安装失败&#xff1b;安装了其他版本但是matlab检测不到&#xff0c;或者其他各种…

Matlab之DICOM(数字图像和通信医学)格式图像数据读取函数dicomread

一、DICOM是什么&#xff1f; DICOM是数字图像和通信医学格式的图像数据&#xff0c;在MATLAB中&#xff0c;可以使用dicomread函数读取DICOM格式的图像数据。 二、dicomread函数 使用方法如下&#xff1a; imageData dicomread(filename);其中&#xff0c;filename表示DI…