大规模图数据思路代码

import torch
import torch.nn.functional as F
from torch_geometric.datasets import Planetoid
from torch_geometric.nn import GCNConv
from torch_geometric.loader import NeighborSampler# 定义图神经网络模型
class GCN(torch.nn.Module):def __init__(self, num_features, num_classes):super(GCN, self).__init__()self.conv1 = GCNConv(num_features, 16)self.conv2 = GCNConv(16, num_classes)def forward(self, x, edge_index, size):# 使用邻居信息进行采样x = self.conv1(x, edge_index)x = F.relu(x)x = F.dropout(x, training=self.training)x = self.conv2(x, edge_index, size)return F.log_softmax(x, dim=1)# 加载数据集
dataset = Planetoid(root='/tmp/Cora', name='Cora')
data = dataset[0]# 创建邻居采样迭代器
train_loader = NeighborSampler(data.edge_index, node_idx=data.train_mask, sizes=[10, 10],  # 每层采样的邻居数batch_size=64,   # 每次批次的节点数num_nodes=data.num_nodes)# 初始化模型和优化器
model = GCN(num_features=dataset.num_node_features, num_classes=dataset.num_classes)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model.to(device)# 训练模型
def train(loader, model, optimizer):model.train()total_loss = 0for batch_size, n_id, adj in loader:optimizer.zero_grad()# 通过采样得到节点特征和边列表x = data.x[n_id].to(device)out = model(x, adj.edge_index, adj.size)loss = F.nll_loss(out[adj.node_idx], data.y[adj.node_idx].to(device))loss.backward()optimizer.step()total_loss += loss.item()return total_loss# 评估模型
def test(model):model.eval()with torch.no_grad():out = model(data.x.to(device), data.edge_index.to(device), data.num_nodes)pred = out.argmax(dim=1)correct = pred[data.test_mask.to(device)] == data.y[data.test_mask.to(device)]acc = int(correct.sum()) / int(data.test_mask.sum())return acc# 训练和验证
for epoch in range(200):loss = train(train_loader, model, optimizer)if epoch % 20 == 0:train_acc = test(model)print(f'Epoch {epoch}, Loss: {loss:.4f}, Train Accuracy: {train_acc:.4f}')# 测试模型
test_acc = test(model)
print(f'Test Accuracy: {test_acc:.4f}')

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

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

相关文章

我在Vscode学Java泛型(泛型设计、擦除、通配符)

Java泛型 一、泛型 Generics的意义1.1 在没有泛型的时候,集合如何存储数据1.2 引入泛型的好处1.3 注意事项1.3.1 泛型不支持基本数据类型1.3.2 当泛型指定类型,传递数据时可传入该类及其子类类型1.3.3 如果不写泛型,类型默认是Object 二、泛型…

Java语言程序设计——篇九(1)

🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿 内部类 概述内部类—内部类的分类成员内部类实战演练 局部内部类实战演练 匿名内部类实战演练 静态内部类实战演练 概述 内部类或嵌套类&#…

【计算机网络】RIP路由协议实验

一:实验目的 1:掌握在路由器上配置RIPv2。 二:实验仪器设备及软件 硬件:RCMS交换机、网线、内网网卡接口、Windows 2019操作系统的计算机等。具体为:三层交换机1台、路由器2台。 软件:wireshark软件、记…

virtualbox ubuntu扩充磁盘大小

首先在虚拟存储管理里面修改磁盘大小 然后安装gparted sudo gparted 打开管理工具 选中要调整的区域右键选择调整区域大小 拖动上述位置就可以实现扩容。完成后点击应用 然后重启虚拟机即可。

WSL快速入门

1. WSL介绍 WSL文档地址:https://learn.microsoft.com/zh-cn/windows/wsl WSL:全称 Windows Subsystem for Linux,即windows上的Linux子系统(虚拟机工具)。是Win10推出的全新特性,可以更轻量地在Windows系统…

vue3中element tabs标签页 tab-click事件无法拿到最新值

element tabs标签页有2个常用的事件方法,tab-click 和 tab-change tab-click事件 tab-click事件:当用户点击Tab标签时触发,有2个返回参数, (pane: TabsPaneContext, ev: Event) pane.props.name 中可以获取到最新的tab页签绑定值 …

定时器+外部中断实现NEC红外线协议解码

一、前言 1.1 功能介绍 随着科技的进步和人们生活水平的提高,红外遥控器已经成为了日常生活中不可或缺的电子设备之一,广泛应用于电视、空调、音响等多种家电产品中。 传统的红外遥控器通常只能实现预设的有限功能,无法满足用户对设备更加智…

WHAT - 屏幕 dpr 设备像素比率

目录 一、设备像素比率 (DPR)二、DPR 与每英寸点数 (DPI)三、dpr2 和 dpr1 有什么区别设备像素比率为 1 (DPR 1)设备像素比率为 2 (DPR 2)实际区别示例代码例子 一、设备像素比率 (DPR) DPR(设备像素比率)常常在讨论屏幕分辨率和显示质量时使用。 设…

RockyLinux 9 PXE Server bios+uefi 自动化部署 RockLinux 8 9

pxe server 前言 PXE(Preboot eXecution Environment,预启动执行环境)是一种网络启动协议,允许计算机通过网络启动而不是使用本地硬盘。PXE服务器是实现这一功能的服务器,它提供了启动镜像和引导加载程序,…

1.2 单链表定义及操作实现(链式结构)

1.单链表定义 链式存储:用一组任意的存储单元存储线性表中的数据元素。用这种方法存储的线性 表简称线性链表。 为了正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其直接 后继结点的地址(或位置)…

故障诊断 | 基于Transformer故障诊断分类预测(Matlab)

文章目录 预测效果文章概述程序设计参考资料预测效果 文章概述 Transformer故障诊断/分类预测 | 基于Transformer故障诊断分类预测(Matlab) Transformer 模型本质上都是预训练语言模型,大都采用自监督学习 (Self-supervised learning) 的方式在大量生语料上进行训练,也就是…

Java解析epub电子书文件实战demo

如何使用 Java、Spring Boot 和 Epublib 库解析存储在阿里云对象存储服务(OSS)上的 EPUB 文件。这里将指导您完成设置必要依赖项、配置 OSS 客户端以及编写服务以读取和提取 EPUB 文件章节的全过程。 步骤1:添加依赖项 首先,将 E…

微信小程序消息订阅处理实践

微信小程序提供订阅消息功能,分为一次性订阅消息、长期订阅消息。长期订阅消息目前只针对民生、金融、教育等有线下服务场景的类目开放。这些只是大类,并不表示所包含的所有二级类目都能申请长期订阅消息,具体看官方文档。 另一个长期订阅消…

RNN(一)——循环神经网络的实现

文章目录 一、循环神经网络RNN1.RNN是什么2.RNN的语言模型3.RNN的结构形式 二、完整代码三、代码解读1.参数return_sequences2.调参过程 一、循环神经网络RNN 1.RNN是什么 循环神经网络RNN主要体现在上下文对理解的重要性,他比传统的神经网络(传统的神…

04 卷积神经网络

目录 1. 基本概念 1.1 卷积神经网络 1.2 卷积 1.3 汇聚(池化) 2. CNN网络架构及参数学习 2.1 网络架构 2.2 参数学习 3. 典型的卷积神经网络 3.1 LeNet-5 3.2 AlexNet 3.3 Inception网络 3.4 残差网络 4. 其他卷积方式 1. 基本概念 1.1 …

ReentrantReadWriteLock详解

目录 ReentrantReadWriteLock详解1、ReentrantReadWriteLock简介2、ReentrantReadWriteLock类继承结构和类属性3、ReentrantReadWriteLock的读写锁原理分析4、ReentrantReadWriteLock.WriteLock类的核心方法详解非公平写锁的获取非公平写锁的释放公平写锁的获取公平写锁的释放 …

全网最最实用--模型高效推理:量化基础

文章目录 一、量化基础--计算机中数的表示1. 原码(Sign-Magnitude)2. 反码(Ones Complement)3. 补码(Twos Complement)4. 浮点数(Floating Point)a.常用的浮点数标准--IEEE 754(FP32…

ElasticSearch核心之DSL查询语句实战

什么是DSL? Elasticsearch提供丰富且灵活的查询语言叫做DSL查询(Query DSL),它允许你构建更加复杂、强大的查询。 DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现。目前常用的框架查询方法什么的底层都是构建DSL语句实现的,所以你必…

跨境电商独立站:Shopify/Wordpress/店匠选哪个?

在面对不断增加的平台运营压力时,不少跨境电商的商家逐渐将注意力转向建立自己的独立站。据《中国跨境出口电商发展报告(2022)》所示,中国拥有的独立站数量在2022年已接近20万个,这表明独立站已成为卖家拓展海外市场的…

IndentationError:unindent does not match any outer indentation level

IndentationError:unindent does not match any outer indentation level 目录 IndentationError:unindent does not match any outer indentation level 【常见模块错误】 【解决方案】 原因分析: 解决方法: 示例: 欢迎来到我的主页&am…