文献引用数据集分类(GCN)

news2024/9/21 4:27:01
#基于点的任务
from torch_geometric.datasets import Planetoid
from torch_geometric.transforms import NormalizeFeatures
import matplotlib.pyplot as plt
from sklearn.manifold import TSNE
import torch
import torch.nn.functional as F
from torch.nn import Linear
from torch_geometric.nn import GCNConv

dataset = Planetoid(root='/data/Planetoid', name='Cora', transform=NormalizeFeatures())

data = dataset[0]
# print(data)

#可视化部分
def visualize(h,color):
    #降维操作
    z = TSNE(n_components=2).fit_transform(h.detach().cpu().numpy())
    plt.figure(figsize=(10,10))
    plt.xticks([])
    plt.yticks([])
    plt.scatter(z[:,0],z[:,1],c=color,cmap='Set2',s=70)
    plt.show()

#全连接网络
# class MLP(torch.nn.Module):
#     def __init__(self,hidden_channels):
#         super().__init__()
#         self.lin1 = Linear(dataset.num_features,hidden_channels)
#         self.lin2 = Linear(hidden_channels,dataset.num_classes)
#
#     def forward(self,x):
#         x = self.lin1(x)
#         x = x.relu()
#         x = F.dropout(x,p = 0.5,training=self.training)
#         x = self.lin2(x)
#         return x

#GCN网络
class GCN(torch.nn.Module):
    def __init__(self,hidden_channels):
        super().__init__()
        self.conv1 = GCNConv(dataset.num_features,hidden_channels)
        self.conv2 = GCNConv(hidden_channels,dataset.num_classes)

    def forward(self,x,edge_index):
        x = self.conv1(x,edge_index)
        x = x.relu()
        x = F.dropout(x,p = 0.5,training=self.training)
        x = self.conv2(x,edge_index)
        return x


model = GCN(hidden_channels=16)
# model.eval()
# out = model(data.x,data.edge_index)
# visualize(out,data.y)

# print(model)
criterion = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(),lr=0.01,weight_decay=5e-4)

#训练部分
def train():
    model.train()
    optimizer.zero_grad()
    out = model(data.x,data.edge_index)
    loss = criterion(out[data.train_mask],data.y[data.train_mask])
    loss.backward()
    optimizer.step()
    return loss

#测试部分
def test():
    model.eval()
    out = model(data.x,data.edge_index)
    pred = out.argmax(dim=1)
    test_correct = pred[data.test_mask] == data.y[data.test_mask]
    test_acc = int(test_correct.sum()) / int(data.test_mask.sum())
    return test_acc

for epoch in range(1,201):
    loss = train()
    print(
        'Epoch: {:03d}, Loss: {:.4f}, Test: {:.4f}'.format(epoch, loss, test())
    )

#准确率计算
test_acc = test()
print('Test Accuracy: {:.4f}'.format(test_acc))

model.eval()
out = model(data.x,data.edge_index)
visualize(out,data.y)

结果如下:

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

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

相关文章

Mysql原理与调优-事务与MVCC

目录 1.事务 1.1 什么是事务 1.2 事务隔离级别 1.2.1 事务并发执行可能出现的问题 1.2.2 隔离级别 1.2.3 如何查看和设置事务的隔离级别 1.2.3 快照读和当前读 2.MVCC 2.1 版本链机制 2.2 Read View 2.2.1 Read View读取事务的原则 2.4 Read Committed级别查询 2.5…

ACM MM 2024,复旦腾讯优图等提出MDT-A2G,可根据说话语音同步生成手势

复旦&腾讯优图等提出MDT-A2G,这是一个专门用来生成与语音同步手势的先进模型。想象一下,当我们说话时,身体自然会做出手势。这个模型的目的是让计算机也能像人类一样,根据说话的内容来生成合适的手势。它的运作方式像是一个人…

python的多线程实现高速下载PDB数据集

多线程下载数据 最近在某个网站上写了个shell脚本来下载数据集,内容量不大,但是下载的特别的慢,于是想到用多线程下载,发现快了很多。本文主要让大家清楚python中的几个模块区别和关于程序加速的一些方法,以及多线程下…

YOLOv8_det/seg/pose/obb推理流程

本章将介绍目标检测、实例分割、关键点检测和旋转目标检测的推理原理,基于onnx模型推理,那么首先就需要了解onnx模型的输入和输出,对输入的图片需要进行预处理的操作,对输出的结果需要进行后处理的操作,这部分内容在我的另一个专栏《YOLOv8深度剖析》中也有介绍,如果对YO…

【数学建模备赛】Ep06:多元线性回归分析

文章目录 一、前言🚀🚀🚀二、多元线性回归分析:☀️☀️☀️1. 回归分析的介绍和分类1.1相关性1.2 相关性≠因果性1.3 因变量Y1.4 自变量X 2. 回归分析的三条使命3. 数据的分类以及数据的来源 后序还在更新中~~~三、总结&#xff…

通用定时器 输出pwm原理

这个是 输出pwm 判断条件,比较cnt和arr的值,来判断当前是否输出有效电平 这个是判断pwm的输出条件排列模式,可以选pwm1或者pwm2模式,然后每个模式有递增计数还是递减计数,例如:根据设置的是pwm1模式的 递增…

基于django的双选宠物托管服务平台/python宠物托管系统

摘 要 伴随着社会以及科学技术的发展,互联网已经渗透在人们的身边,网络慢慢的变成了人们的生活必不可少的一部分,紧接着网络飞速的发展,系统管理这一名词已不陌生,越来越多的双选宠物托管服务等机构都会定制一款属于…

生成式人工智能在无人机群中的应用、挑战和机遇

人工智能咨询培训老师叶梓 转载标明出处 无人机群在执行人类难以或危险任务方面有巨大潜力,但在复杂动态环境中学习和协调大量无人机的移动和行动,对传统AI方法来说是重大挑战。生成式人工智能(Generative AI, GAI),凭…

尚品汇-前端面包屑平台属性、排序处理(三十三)

目录: (1)面包屑处理平台属性 (2)排序处理 (2)单点登录业务介绍 (1)面包屑处理平台属性 前端显示:面包屑显示效果 搜list搜索方法继续添加返回的平台属性…

el-table表格可编辑

需求&#xff1a;使用elementui的表格组件&#xff0c;实现某些列可以输入或者下拉选择修改行数据 //tabClickLabel 只是作为区分是否可以修改列的条件 <el-tableref"table":data"tableData":header-cell-style"{ background: #F5F7FA, height: 3…

理解Java中的for-each循环:为什么有时候不能修改数组元素?

前言&#xff1a; 刚开始学习编程的时候&#xff0c;我们都会老老实实用 for-i循环&#xff0c;后面接触到for-each的时候&#xff0c;发现竟然还可以再省一点代码&#xff0c;慢慢也会开始学会用for-each。但其实&#xff0c;在有些即使是需要从头遍历的场景&#xff0c;for-e…

uva455 输入格式说的不明白多加空格

提要&#xff1a;题目你看原题有输出格式的坑&#xff0c;本来已经写好代码 结果被这**格式整半天才好&#xff01;&#xff01; 那个xuhanx是我错了那么多次主打一个锲而不舍笑死我了。简单讲一下核心代码就一行 x[j] ! pattern[j % i] 这个是原理比较好理解吧。 建议就是…

SpringBoot和Redis的交互数据操作 以及 Redis的持久化/删除策略和缓存问题

一、SpringBoot和Redis/MySQL的数据交互 说明&#xff1a; 在 SpringBoot2.x 之后&#xff0c;原来使用的jedis 被替换为了 lettuce SpringBoot/Spring和Redis之间的交互简称为Spring-data-redis,有两种方式提供选择&#xff1a; jedis &#xff1a;采用的直连&#xff0c;多个…

一个专门用于Java服务端图片合成的工具,支持图片、文本、矩形等多种素材的合成,功能丰富强大(附源码)

前言 在数字化营销的当下&#xff0c;企业对于图片处理的需求日益增长。然而&#xff0c;传统的图片处理方式往往需要复杂的操作和专业的技术&#xff0c;这不仅增加了工作量&#xff0c;也提高了时间成本。 为了处理这一问题&#xff0c;一款能够简化图片合成流程的软件应运…

《书生大模型实战营第3期》进阶岛 第4关: InternVL 多模态模型部署微调实践

文章大纲 写在前面&#xff08;什么是InternVL&#xff09;InternVL 模型总览Dynamic High ResolutionPixel ShuffleInternVL 部署微调实践准备InternVL模型准备环境准备微调数据集InternVL 推理部署攻略使用pipeline进行推理推理后 InternVL 微调攻略准备数据集配置微调参数开…

中年程序员从西安出发到日照、青岛低成本吃喝万里行,暑假遛娃自由行:连云港-日照-青岛 6天5 晚自由行

文章大纲 暑假出行总体方案Day1 西安-连云港&#xff1a;连岛Day2 连云港-日照&#xff1a;海鲜蒸汽锅Day3 日照 &#xff1a;海洋馆Day4 日照-青岛&#xff1a;再游金沙滩Day5 青岛&#xff1a;山涧溪谷Day6 青岛-连云港-西安 暑假出行总体方案 今年出去玩的地方不算少&#…

Java中VM options与Program arguments区别与作用

Java中VM options与Program arguments区别与作用 VM options 我们在程序中需要的运行时环境变量&#xff0c;它需要以-D或-X或-XX开头&#xff0c;每个参数使用空格分隔 使用最多的就是-Dkeyvalue设定系统属性值&#xff0c;比如-Dserver.port8088 application.yml server:…

深度优先搜索:如何在二叉树中找出“好节点”【迭代法、状态管理技巧、DFS】

一、题目分析 题目要求&#xff1a; 给定一棵二叉树&#xff0c;定义一个“好节点”为&#xff1a;从根节点到该节点路径上&#xff0c;没有任何节点的值比该节点的值大。要求我们返回二叉树中好节点的数量。 示例&#xff1a; 示例 1: 输入: [3,1,4,3,null,1,5] 输出: 4解…

Open3D 遍历八叉树

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2数据显示 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff08;长期更新&#xff09;-CSDN博客 一、概…

Git安装包及怎么再windows上运行

第一步&#xff1a;下载git。 国内 Git for Windows. 国内镜像 感谢GitHub - waylau/git-for-win: Git for Windows. 国内直接从官网下载比较困难&#xff0c;需要翻墙。这里提供一个国内的下载站&#xff0c;方便网友下载 安装步骤&#xff1a; Git for Windows安装和基本…