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

网站做建筑三维图彩票网站开发制作

网站做建筑三维图,彩票网站开发制作,安卓手机软件开发平台,连云港网站建设推广基础原理讲解 应用路径 卷积网络最经典的就是CNN#xff0c;其 可以提取图片中的有效信息#xff0c;而生活中存在大量拓扑结构的数据。图卷积网络主要特点就是在于其输入数据是图结构数据#xff0c;即 G ( V , E ) G(V,E) G(V,E)#xff0c;其中V是节点#xff0c;E是…基础原理讲解 应用路径 卷积网络最经典的就是CNN其 可以提取图片中的有效信息而生活中存在大量拓扑结构的数据。图卷积网络主要特点就是在于其输入数据是图结构数据即 G ( V , E ) G(V,E) G(V,E)其中V是节点E是边能有效提取拓扑结构中的有效信息实现节点分类边预测等。 基础原理 其核心公式是 H ( l 1 ) σ ( D ~ − 1 / 2 A ~ D ~ − 1 / 2 H l W l ) H^{(l1)}\sigma(\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}H^{l}W^l) H(l1)σ(D~−1/2A~D~−1/2HlWl) 其中 σ \sigma σ 是非线性激活函数 D ~ \tilde{D} D~是度矩阵, D ~ i i ∑ j A ~ i j \tilde{D}_{ii}\sum_j\tilde{A}_{ij} D~ii​∑j​A~ij​ A ~ \tilde{A} A~是加了自环的邻接矩阵,通常表示为 A I AI AI A A A是原始邻接矩阵 I I I是单位矩阵 H l H^l Hl是第 l l l层的节点特征矩阵 H l 1 H^{l1} Hl1是第 l 1 l1 l1层的节点特征矩阵 W l W^l Wl是第 l l l层的学习权重矩阵 步骤讲解 1、邻接矩阵归一化 将邻接矩阵归一化使得邻居节点特征对中心节点特征的贡献相等。 2、特征聚合 通过邻接矩阵与节点特征矩阵相乘实现邻居特征聚合。 3、线性变换 通过可学习的权重矩阵对聚合后的特征进行线性变换。 加自环的邻接矩阵 A ~ A λ I \tilde{A} A\lambda I A~AλI 邻接矩阵加上一个单位矩阵 λ \lambda λ是一个可以训练的参数但也可直接取1。加自环 是为了增强节点自我特征表示这样在进行图卷积操作时节点不仅会聚合来自邻居节点的特征还会聚合自己的特征。 图卷积操作 图片的卷积是一个一个卷积核在图片上滑动着做卷积。图的卷积就是自己加邻居一起做加和。 即 A ~ X \tilde{A}X A~X 度矩阵求解 D ~ i i ∑ j A ~ i j \tilde{D}_{ii}\sum_j\tilde{A}_{ij} D~ii​j∑​A~ij​ 标准化 在进行加和时节点的度不同有存在较高度值的节点和较低度值的节点这可能导致梯度爆炸或梯度消失的问题。 根据度矩阵求逆然后 D ~ − 1 A ~ D ~ − 1 X \tilde{D}^{-1}\tilde{A} \tilde{D}^{-1}X D~−1A~D~−1X就进行了标准化前一个 D ~ − 1 \tilde{D}^{-1} D~−1是对行进行标准化后一个 D ~ − 1 \tilde{D}^{-1} D~−1是对列进行标准化。能够实现给与低度节点更大的权重从而降低高节点的影响。 在上式推导中 D ~ − 1 A ~ D ~ − 1 X \tilde{D}^{-1}\tilde{A} \tilde{D}^{-1}X D~−1A~D~−1X 做了两次标准化所以修改上式为 D ~ − 1 / 2 A ~ D ~ − 1 / 2 X \tilde{D}^{-1/2}\tilde{A} \tilde{D}^{-1/2}X D~−1/2A~D~−1/2X 简单python实现 基于cora数据集实现节点分类 cora数据集处理 # cora数据集测试 raw_data pd.read_csv(./data/data/cora/cora.content, sep\t, headerNone) print(content shape: , raw_data.shape)raw_data_cites pd.read_csv(./data/data/cora/cora.cites, sep\t, headerNone) print(cites shape: , raw_data_cites.shape)features raw_data.iloc[:,1:-1] print(features shape: , features.shape)# one-hot encoding labels pd.get_dummies(raw_data[1434]) print(\n----head(3) one-hot label----) print(labels.head(3)) l_ np.array([0,1,2,3,4,5,6]) lab [] for i in range(labels.shape[0]):lab.append(l_[labels.loc[i,:].values.astype(bool)][0]) #构建邻接矩阵 num_nodes raw_data.shape[0]# 将节点重新编号为[0, 2707] new_id list(raw_data.index) id list(raw_data[0]) c zip(id, new_id) map dict(c)# 根据节点个数定义矩阵维度 matrix np.zeros((num_nodes,num_nodes))# 根据边构建矩阵 for i ,j in zip(raw_data_cites[0],raw_data_cites[1]):x map[i] ; y map[j]matrix[x][y] matrix[y][x] 1 # 无向图有引用关系的样本点之间取1# 查看邻接矩阵的元素 print(matrix.shape)GCN网络实现 device torch.device(cuda if torch.cuda.is_available() else cpu) print(fUsing device: {device}) class GCNLayer(nn.Module):def __init__(self, in_features, out_features):super(GCNLayer, self).__init__()self.linear nn.Linear(in_features, out_features)def forward(self, x, adj):rowsum torch.sum(adj,dim1)d_inv_sqrt torch.pow(rowsum,-0.5)d_inv_sqrt[torch.isinf(d_inv_sqrt)] 0.0d_mat_inv_sqrt torch.diag(d_inv_sqrt)adj_normalized torch.mm(torch.mm(d_mat_inv_sqrt,adj),d_mat_inv_sqrt)out torch.mm(adj_normalized,x)out self.linear(out)return out class GCN(nn.Module):def __init__(self, n_features, n_hidden, n_classes):super(GCN, self).__init__()self.gcn1 GCNLayer(n_features, n_hidden)self.gcn2 GCNLayer(n_hidden, n_classes)def forward(self, x, adj):x self.gcn1(x, adj)x F.relu(x)x self.gcn2(x, adj)return x#F.log_softmax(x, dim1) # 示例数据实际数据应根据具体情况加载features torch.tensor(features.values, dtypetorch.float32) adj torch.tensor(matrix, dtypetorch.float32) labels torch.tensor(lab, dtypetorch.long) # features torch.tensor([[1, 0], [0, 1], [1, 1]], dtypetorch.float32) # adj torch.tensor([[1, 1, 0], [1, 1, 1], [0, 1, 1]], dtypetorch.float32) # labels torch.tensor([0, 1, 0], dtypetorch.long)# 模型参数 n_features features.shape[1] n_hidden 16 n_classes len(torch.unique(labels))# 创建模型 model GCN(n_features, n_hidden, n_classes) model model.cuda() optimizer optim.Adam(model.parameters(), lr0.01) loss_fn nn.CrossEntropyLoss() # 训练模型 n_epochs 200 for epoch in range(n_epochs):model.train()features, labels features.cuda(), labels.cuda()adj adj.cuda()optimizer.zero_grad()output model(features, adj)loss loss_fn(output, labels)loss.backward()optimizer.step()if (epoch 1) % 20 0:print(fEpoch {epoch1}, Loss: {loss.item()}) print(Training complete.)参考 cora数据集及简介 图卷积网络详细介绍 GCN讲解
http://www.hkea.cn/news/14307338/

相关文章:

  • 网站建设有哪些名词企业管理系统er图
  • 网站设计案例网站小程序代理项目
  • 网站建设要学哪些网站开发需要哪些知识和工具
  • 北京视频直播网站建设减肥瘦身网站模板源码
  • 网站底部版权信息代码济南网站建设92jzh
  • 手机网站 生成有保障的注册代理
  • 有哪些专做自然风景图片的网站长春市住房建设局网站
  • 网站做的比较好的贸易公司.net给网站做短信验证
  • 视觉网站建设长沙小红书推广公司
  • 三星做号网站福清市建设局监督站网站
  • 潘家园做网站的公司施工企业研发资金投入情况说明
  • 珠海网站建设怎么样电话语音聊天网站建设多少钱
  • 无锡做网站6上海网站建设优化价格
  • 北京网站优化公司哪家好中企动力做的网站容易SEO吗
  • 三种常用的网站设计软件陕西省建设集团公司网站
  • php一键建站wordpress自动选择添加标签页
  • 烟台制作网站天津网站建站
  • dw做的网站链接文库网站建设开发
  • 备案资料 网站建设方案书网站建设如何把更改内容
  • 网站网站做代理企业网站设计要点
  • 网站设计用处wordpress 电子商务插件
  • 一年级书签制作图片通辽网站建设0475seo
  • 网站开发项目经验和教训网站组建 需求分析
  • 临沂网站建设推广制作静态网页的软件
  • 手机网站开发最好用的框架百度的首页
  • 网站设计应该考虑的重要因素开发网站的公司
  • 阿里巴巴网站建设的背景杭州网络安全公司
  • 建公司网站流程电子商务营销网站建设
  • 嘉兴专业做网站的公司企业网络营销是什么
  • asp.net做报名网站网站域名绑定破解