gcn代码pytorch_GCN的简单实现(pytorch)

import torch
import torch.nn as nn
import torch.nn.functional as Fimport networkx as nxdef normalize(A , symmetric=True):# A = A+IA = A + torch.eye(A.size(0))# 所有节点的度d = A.sum(1)if symmetric:#D = D^-1/2D = torch.diag(torch.pow(d , -0.5))return D.mm(A).mm(D)else :# D=D^-1D =torch.diag(torch.pow(d,-1))return D.mm(A)class GCN(nn.Module):'''Z = AXW'''def __init__(self , A, dim_in , dim_out):super(GCN,self).__init__()self.A = Aself.fc1 = nn.Linear(dim_in ,dim_in,bias=False)self.fc2 = nn.Linear(dim_in,dim_in//2,bias=False)self.fc3 = nn.Linear(dim_in//2,dim_out,bias=False)def forward(self,X):'''计算三层gcn'''X = F.relu(self.fc1(self.A.mm(X)))X = F.relu(self.fc2(self.A.mm(X)))return self.fc3(self.A.mm(X))#获得空手道俱乐部数据
G = nx.karate_club_graph()
A = nx.adjacency_matrix(G).todense()
#A需要正规化
A_normed = normalize(torch.FloatTensor(A),True)N = len(A)
X_dim = N# 没有节点的特征,简单用一个单位矩阵表示所有节点
X = torch.eye(N,X_dim)
# 正确结果
Y = torch.zeros(N,1).long()
# 计算loss的时候要去掉没有标记的样本
Y_mask = torch.zeros(N,1,dtype=torch.uint8)
# 一个分类给一个样本
Y[0][0]=0
Y[N-1][0]=1
#有样本的地方设置为1
Y_mask[0][0]=1
Y_mask[N-1][0]=1#真实的空手道俱乐部的分类数据
Real = torch.zeros(34 , dtype=torch.long)
for i in [1,2,3,4,5,6,7,8,11,12,13,14,17,18,20,22] :Real[i-1] = 0
for i in [9,10,15,16,19,21,23,24,25,26,27,28,29,30,31,32,33,34] :Real[i-1] = 1# 我们的GCN模型
gcn = GCN(A_normed ,X_dim,2)
#选择adam优化器
gd = torch.optim.Adam(gcn.parameters())for i in range(300):#转换到概率空间y_pred =F.softmax(gcn(X),dim=1)#下面两行计算cross entropyloss = (-y_pred.log().gather(1,Y.view(-1,1)))#仅保留有标记的样本loss = loss.masked_select(Y_mask).mean()#梯度下降#清空前面的导数缓存gd.zero_grad()#求导loss.backward()#一步更新gd.step()if i%20==0 :_,mi = y_pred.max(1)print(mi)#计算精确度print((mi == Real).float().mean())

3132a14c9964b0aec4a1648fa6299b70.png

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

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

相关文章

当电压放大电路的开路增益和输出电阻固定后_放大器的设计基础

放大器是电子电路(尤其是模拟电路)中的主要构件之一,使用放大器,它们会提高信号电平。放大器是一个术语,用于描述增加输入信号强度的电路。放大器广泛用于从音频应用到射频应用的各个领域中。但是,对于所有放大器,无论…

mysql数据库 auto_increment_mysql数据库 auto_increment

MySQL内核月报 2014.09-MySQL 捉虫动态auto_increment背景:Innodb引擎使用B_tree结构保存表数据,这样就需要一个唯一键表示每一行记录(比如二级索引记录引用)。Innodb表定义中处理主键的逻辑是:1.如果表定义了主键,就使用主键唯一…

linux 嵌入式 快照_Linux 系统之Systemd

标签:子贡问为仁。子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者。”——孔子(春秋)《论语卫灵公》【工欲善其事,必先利其器】掌握一门技术,知道其发展历程是非常重要的…

myeclipse打包java文件_MyEclipse将Java项目打包成jar文件的三种方法

方案一:用Eclipse自带的Export功能步骤1:准备主清单文件 “MANIFEST.MF”,由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下:M…

java程序模拟atm机_Java项目实现模拟ATM机

本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下项目名称模拟ATM机项目描述简单实现ATM机功能代码实现测试类public class Test {//模拟多功能ATM机public static void main(String[] args) {ATM atm new ATM();atm.opearte(…

java计算器流程图_帮帮忙:Java小计算器代码,及需求分析.流程图.

展开全部package example;import java.awt.*;import java.awt.event.*;public class Calculator extends Frame {/*** 本实例实现功能如下 1.普通加减乘除运算 2.小数点的情况已经解32313133353236313431303231363533e58685e5aeb931333236393738决 3.开始按0已经解决 4.消去键可…

java 邮件跟踪_如何跟踪邮件已读状态(Java)

>图片的展示形式:html中图片元素表示:其中src部分是比较好玩的,我们可以用图片服务器链接地址,例如:我们也可以使用base64的图片字符串,例如:>利用图片加载来跟踪用户打开邮件状态&#x…

linux定时结束java进程_使用zt-exec库定时清理linux休眠进程

在几个月前上线的一个采集项目,构架是基于java selenium chromedriver chrome实现的采集。至于为哈不直接用jsoup或httpclient实现采集功能,是因为很多被采集页面都是通过js来渲染内容的,所以必须用webdriverchrome来模拟真正的浏览器访问…

java spring4 jar包_spring jar包官方下载|

spring-web jar包是用来SSH配置的jar包 配置了监听器,还出现严重: Error configuring application listener of class org.springframework.web.context.ContextLoader就需要它,欢迎有需要的用户前来it猫扑下载!spring-web.jar作用spring-web…

java 找不到符号 con_我的java程序运行时,提示找不到符号,求解!

我的java程序运行时,提示找不到符号,求解!关注:163 答案:4 mip版解决时间 2021-02-07 23:57提问者人潮拥挤你不在2021-02-06 23:57import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.applet.AudioClip;public class M…

ctf的php,CTF中常见的PHP漏洞

1.MD5()漏洞php在处理字符串时会利用!,||,进行hash值的比较 他把每一个“0E’开头的哈希值都解释为0,因此如果两个不同的密码经过hash处理之后都是以‘0e’开头,那么PHP会认为两者是相同的,南京邮电大学一次…

php 缩略图 失真,WORDPRESS缩略图失真变形模糊的解决方法

众所周知,网站最怕改版,其中一个主要的原因就是缩略图的问题,旧模板的缩略图尺寸不一定适合新版的模板缩略图尺寸要求,尽管后台的设置-多媒体-缩略图尺寸修改了,可这是新上传的图片才会生成新的尺寸的缩略图&#xff0…

php表单 提交数据,PHP表单提交数据

1.PHP表单处理PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据GET 和 POST 都创建数组(例如,array( key > value, key2 > value2, key3 > value3, ...))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。…

php ci框架 模板引擎,详解CodeIgniter框架实现的整合Smarty引擎DEMO

CodeIgniter框架实现的整合Smarty引擎DEMO示例本文实例讲述了CodeIgniter框架实现的整合Smarty引擎。分享给大家供大家参考,具体如下:Smarty的模板机制很强大,一般情况下CI框架无需整合其他模板标签,因为PHP本身就是一种标签&…

padodb time.inc.php,怎样实现PHP中ADODB事务处理

这次给大家带来怎样实现PHP中ADODB事务处理,实现PHP中ADODB事务处理的注意事项有哪些,下面就是实战案例,一起来看一下。一、代码adodb.inc.php可从官方网站http://adodb.sourceforge.net/ 下载。或者点击此处本站下载。conn.php:&…

双用户windows linux系统,Windows与Linux合二为一?终于能在windows上运行Linux了!

原标题:Windows与Linux合二为一?终于能在windows上运行Linux了!目前在PC端操作系统市场份额中,微软旗下的windows系统占据超过50%的比例。作为微软旗下发布的产品之一,windows系统深受用户喜爱。从经典的XP和win7&…

linux的用户及权限管理,用户及权限管理

一、Linux用户、组的概念1.用户管理员:root,0其他用户:1-65535系统用户:1-499,守护进程获取资源进行权限分配普通用户:500,交互式登陆2.组管理员组:root,0其他用户:1-65535系统用户组:1-499普通用户组:500note:关于uid,gid的范围可以参考/etc/login.def3.Linux安全上下文进程所…

linux内存使用策略swap,Linux Swap使用分析

Linux操作系统性能分析主要包含磁盘IO、CPU、内存以及网络流量,而这里主要针对系统内存的使用进程情况做个分析。一、如何查看系统内存使用情况1、根据常用命令查看系统内存使用概况free -gtotal used free shared buffers cachedMem: …

csky linux 编译内核,TQ2440的EmbedSky_hello模块编译内核问题及解决

已在内核代码中添加EmbedSky_hello驱动为例,进行内核编译时候出现了一下几个问题:1、在 /opt/EmbedSky/linux 2.6.30.4/drivers/char目录下修改“Kconfig”文件,添加如下内容:config EmbedSky_HELLOtristate "TQ2440/SKY2440…

linux设备树例程,iTOP-iMX6-设备树内核-实时时钟RTC以及Linux-c测试例程

当 Linux 开发者谈论一个实时时钟,他们通常指的是某种能记录墙上时间,并且有备用电池,以至于在系统关机的时候仍然可以工作的器件。Linux 有两个系列广泛兼容的用户空间 RTC 设备节点:• /dev/rtc : PC 机及兼容机系统…