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

泰州网站制作方案定制线下推广方法有哪些

泰州网站制作方案定制,线下推广方法有哪些,企业解决方案业余,香港服务器做盈利网站深度学习(36)—— 图神经网络GNN(1) 这个系列的所有代码我都会放在git上,欢迎造访 文章目录 深度学习(36)—— 图神经网络GNN(1)1. 基础知识2.使用场景3. 图卷积神经网…

深度学习(36)—— 图神经网络GNN(1)

这个系列的所有代码我都会放在git上,欢迎造访

文章目录

  • 深度学习(36)—— 图神经网络GNN(1)
    • 1. 基础知识
    • 2.使用场景
    • 3. 图卷积神经网络GCN
      • (1)基本思想
    • 4. GNN基本框架——pytorch_geometric
      • (1)数据
      • (2)可视化
      • (3)网络定义
      • (4)训练模型(semi-supervised)

1. 基础知识

  • GNN考虑的事当前的点和周围点之间的关系

  • 邻接矩阵是对称的稀疏矩阵,表示图中各个点之间的关系

  • 图神经网络的输入是每个节点的特征和邻接矩阵

  • 文本数据可以用图的形式表示吗?文本数据也可以表示图的形式,邻接矩阵表示连接关系

  • 邻接矩阵中并不是一个N* N的矩阵,而是一个source,target的2* N的矩阵
    在这里插入图片描述

  • 信息传递神经网络:每个点的特征如何更新??——考虑他们的邻居,更新的方式可以自己设置:最大,最小,平均,求和等

  • GNN可以有多层,图的结构不发生改变,即当前点所连接的点不发生改变(邻接矩阵不发生变化)【卷积中存在感受野的概念,在GNN中同样存在,GNN的感受野也随着层数的增大变大】

  • GNN输出的特征可以干什么?

    • 各个节点的特征组合,对图分类【graph级别任务】
    • 对各个节点分类【node级别任务】
    • 对边分类【edge级别任务】
    • 利用图结构得到特征,最终做什么自定义!

2.使用场景

  • 为什么CV和NLP中不用GNN?
    因为图像和文本的数据格式很固定,传统神经网络格式是固定的,输入的东西格式是固定的
  • 化学、医疗
  • 分子、原子结构
  • 药物靶点
  • 道路交通,动态流量预测
  • 社交网络——研究人
    GNN输入格式比较随意,是不规则的数据结构, 主要用于输入数据不规则的时候

3. 图卷积神经网络GCN

  • 图卷积和卷积完全不同
  • GCN不是单纯的有监督学习,多数是半监督,有的点是没有标签的,在计算损失的时候只考虑有标签的点。针对数据量少的情况也可以训练

(1)基本思想

  • 网络层次:第一层对于每个点都要做更新,最后输出每个点对应的特征向量【一般不会做特别深层的】
  • 图中的基本组成:G(原图)A(邻接)D(度)F(特征)
  • 度矩阵的倒数* 邻接矩阵 *度矩阵的倒数——>得到新的邻接矩阵【左乘对行做归一化,右乘对列做归一化】
  • 两到三层即可,太多效果不佳

4. GNN基本框架——pytorch_geometric

它实现了各种GNN的方法
注意:安装过程中不要pip install,会失败!根据自己的device和python版本去下载scatter,pattern等四个依赖,先安装他们然后再pip install torch_geometric==2.0
这里记得是2.0版本否则会出现 TypeError: Expected ‘Iterator‘ as the return annotation for __iter__ of SMILESParser, but found ty
献上github地址:这里

下面是一个demo

(1)数据

这里使用的是和这个package提供的数据,具体参考:club
在这里插入图片描述

from torch_geometric.datasets import KarateClubdataset = KarateClub()
print(f'Dataset: {dataset}:')
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]  # Get the first graph object.

在torch_geometric中图用Data的格式,Data的对象:可以在文档中详细了解在这里插入图片描述
其中的属性

  • edge_index:表示图的连接关系(start,end两个序列)
  • node features:每个点的特征
  • node labels:每个点的标签
  • train_mask:有的节点没有标签(用来表示哪些节点要计算损失)

(2)可视化

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

在这里插入图片描述

(3)网络定义

GCN layer的定义:在这里插入图片描述
可以在官网的文档做详细了解

在这里插入图片描述
卷积层就有很多了:
在这里插入图片描述

import torch
from torch.nn import Linear
from torch_geometric.nn import GCNConvclass GCN(torch.nn.Module):def __init__(self):super().__init__()torch.manual_seed(1234)self.conv1 = GCNConv(dataset.num_features, 4) # 只需定义好输入特征和输出特征即可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) # 输入特征与邻接矩阵(注意格式,上面那种)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, hmodel = GCN()
print(model)_, h = model(data.x, data.edge_index)
print(f'Embedding shape: {list(h.shape)}')# 输出最后分类前的中间特征shapevisualize_embedding(h, color=data.y)

这时很分散
在这里插入图片描述

(4)训练模型(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.yidumall.com/news/8389.html

相关文章:

  • 制作网站时怎样做滚动字幕广东seo价格是多少钱
  • 荆州哪里做网站个人怎么做免费百度推广
  • 网页版微信登录入口手机百度seo关键词排名优化
  • 网站商城设计方案搜索引擎优化实训
  • 网络游戏那个网站做的最好免费推广的网站有哪些
  • 网站建设方案机构seo关键词优化的技巧
  • 唐山的做网站的企业排名前50名免费的网站
  • 在做好政府网站建设方面上海专业seo
  • 购物型网站用dw做怎么在百度做广告
  • 山西两学一做网站重庆百度seo整站优化
  • 北京公司做网站优化好搜移动端关键词快速排名
  • 如何注销网站图片搜索图片识别
  • 宠物网站模板seo流量增长策略
  • 手机网站怎么设计晋中网站seo
  • 东莞网站建设主要学什么百度公司全称叫什么
  • 微信平台商城开发seo发包技术教程
  • 贵阳公众号开发公司seo优化就业前景
  • 装饰logo设计图片怎么做优化
  • 网站开发备案认证杭州网络推广网络优化
  • 做水果网站需要些什么企业培训心得
  • 有哪些高端的网站谷歌浏览器下载安装(手机安卓版)
  • dedecms 招聘网站重庆森林粤语完整版在线观看免费
  • 这么做国外网站的国内镜像站谷歌浏览器官网手机版
  • 北京网站制作公司飞沐篮网最新消息
  • 外行学习个人网站建设网站推广的意义和方法
  • 台湾刚刚传来重大消息沈阳优化网站公司
  • 远丰做网站怎么样网上营销方法
  • 网站建设和网页建设的区别灰色行业推广
  • 做爰片免费网站给我看看学技术包分配的培训机构
  • java网站开发框架搭建手册企业官网首页设计