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

征二级网站建设意见 通知商业空间设计案例ppt模板

征二级网站建设意见 通知,商业空间设计案例ppt模板,东莞百度网站优化,软件开发五个阶段文章目录 基本步骤GNN和全连接层#xff08;FC#xff09;联合训练1. 定义GNN模型类2. 定义FC模型类3. 训练循环中的联合优化解释完整代码 GNN和全连接层#xff08;FC#xff09;分别使用不同的优化器和学习率分别进行参数更新解释 基本步骤 要从GNN#xff08;图神经网… 文章目录 基本步骤GNN和全连接层FC联合训练1. 定义GNN模型类2. 定义FC模型类3. 训练循环中的联合优化解释完整代码 GNN和全连接层FC分别使用不同的优化器和学习率分别进行参数更新解释 基本步骤 要从GNN图神经网络中提取特征并使用全连接层FCFully Connected Layer进行后续处理可以按照以下步骤进行 构建图神经网络模型选择一种GNN架构例如GCNGraph Convolutional Network、GATGraph Attention Network等。你可以使用深度学习框架如PyTorch、TensorFlow来实现。 获取节点特征和图结构准备好节点特征矩阵和邻接矩阵这些是GNN模型的输入。 通过GNN提取特征 设计GNN模型的前向传播过程将节点特征和邻接矩阵输入GNN层。从GNN层的输出中提取节点的嵌入特征。 连接全连接层进行分类或回归 将GNN提取的节点特征作为输入传递给一个或多个全连接层。通过全连接层进行后续的分类、回归等任务。 GNN和全连接层FC联合训练 如果GNN和全连接层FC分别在不同的类中并且你希望它们可以联合训练你可以通过以下步骤实现端到端的训练过程并确保反向传播能够正确进行 定义GNN和FC模型分别定义GNN和FC模型类。特征提取与分类在训练循环中将GNN提取的特征传递给FC进行分类。联合优化使用一个优化器来更新两个模型的参数。 以下是具体的实现步骤和代码示例 1. 定义GNN模型类 import torch import torch.nn as nn import torch.nn.functional as F from torch_geometric.nn import GCNConv from torch_geometric.data import Data, Batch from sklearn.preprocessing import StandardScalerclass GNN(nn.Module):def __init__(self, in_channels, hidden_channels, out_channels):super(GNN, self).__init__()self.conv1 GCNConv(in_channels, hidden_channels)self.conv2 GCNConv(hidden_channels, out_channels)def forward(self, data):x, edge_index data.x, data.edge_indexx self.conv1(x, edge_index)x F.relu(x)x self.conv2(x, edge_index)gnn_features F.relu(x)return gnn_features2. 定义FC模型类 class FC(nn.Module):def __init__(self, in_features, num_classes):super(FC, self).__init__()self.fc nn.Linear(in_features, num_classes)def forward(self, x):out self.fc(x)return out3. 训练循环中的联合优化 # 假设我们有一些数据 num_nodes_per_graph 10 num_graphs 5 num_node_features 16 num_classes 3# 创建多个图数据 graphs [] for _ in range(num_graphs):x torch.randn((num_nodes_per_graph, num_node_features))scaler StandardScaler()x torch.tensor(scaler.fit_transform(x), dtypetorch.float) # 标准化edge_index torch_geometric.utils.grid(num_nodes_per_graph)graphs.append(Data(xx, edge_indexedge_index))# 批处理数据 batch Batch.from_data_list(graphs)# 创建模型 gnn_model GNN(in_channelsnum_node_features, hidden_channels32, out_channels64) fc_model FC(in_features64, num_classesnum_classes)# 使用一个优化器来联合优化两个模型的参数 optimizer torch.optim.Adam(list(gnn_model.parameters()) list(fc_model.parameters()), lr1e-4) criterion nn.CrossEntropyLoss()# 生成一些随机目标 target torch.randint(0, num_classes, (num_nodes_per_graph * num_graphs,))# 训练模型 for epoch in range(100):gnn_model.train()fc_model.train()optimizer.zero_grad()# 前向传播通过GNN模型gnn_features gnn_model(batch)# 前向传播通过FC模型output fc_model(gnn_features)# 计算损失loss criterion(output, target)# 反向传播loss.backward()# 优化器步optimizer.step()print(fEpoch {epoch1}, Loss: {loss.item()})# 查看特征 print(Extracted GNN features:, gnn_features)解释 GNN模型类GNN类定义了一个简单的两层GCN模型用于特征提取。FC模型类FC类定义了一个全连接层模型用于分类。联合优化 在训练循环中首先通过GNN模型提取特征然后将提取的特征传递给FC模型进行分类。使用一个优化器来同时优化GNN和FC模型的参数。通过调用optimizer.zero_grad()清除梯度调用loss.backward()进行反向传播最后调用optimizer.step()更新参数。 通过这种方式尽管GNN和FC模型分别在不同的类中它们仍然可以端到端地进行联合训练并确保梯度正确地传播到整个模型的每一部分。 使用正确的参数来生成随机图。torch_geometric.utils.erdos_renyi_graph需要使用num_nodes和edge_prob参数 完整代码 import torch import torch.nn as nn import torch.nn.functional as F from torch_geometric.data import Data, Batch from torch_geometric.nn import GCNConv from torch_geometric.utils import erdos_renyi_graph from sklearn.preprocessing import StandardScalerclass GNN(nn.Module):def __init__(self, in_channels, hidden_channels, out_channels):super(GNN, self).__init__()self.conv1 GCNConv(in_channels, hidden_channels)self.conv2 GCNConv(hidden_channels, out_channels)def forward(self, data):x, edge_index data.x, data.edge_indexx self.conv1(x, edge_index)x F.relu(x)x self.conv2(x, edge_index)gnn_features F.relu(x)return gnn_featuresclass FC(nn.Module):def __init__(self, in_features, num_classes):super(FC, self).__init__()self.fc nn.Linear(in_features, num_classes)def forward(self, x):out self.fc(x)return out# 假设我们有一些数据 num_nodes_per_graph 10 num_graphs 5 num_node_features 16 num_classes 3# 创建多个图数据 graphs [] for _ in range(num_graphs):x torch.randn((num_nodes_per_graph, num_node_features))scaler StandardScaler()x torch.tensor(scaler.fit_transform(x), dtypetorch.float) # 标准化edge_index erdos_renyi_graph(num_nodesnum_nodes_per_graph, edge_prob0.5) # 生成随机图graphs.append(Data(xx, edge_indexedge_index))# 批处理数据 batch Batch.from_data_list(graphs)# 创建模型 gnn_model GNN(in_channelsnum_node_features, hidden_channels32, out_channels64) fc_model FC(in_features64, num_classesnum_classes)# 使用一个优化器来联合优化两个模型的参数 optimizer torch.optim.Adam(list(gnn_model.parameters()) list(fc_model.parameters()), lr1e-4) criterion nn.CrossEntropyLoss()# 生成一些随机目标 target torch.randint(0, num_classes, (num_nodes_per_graph * num_graphs,))# 训练模型 for epoch in range(100):gnn_model.train()fc_model.train()optimizer.zero_grad()# 前向传播通过GNN模型gnn_features gnn_model(batch)# 前向传播通过FC模型output fc_model(gnn_features)# 计算损失loss criterion(output, target)# 反向传播loss.backward()# 优化器步optimizer.step()print(fEpoch {epoch1}, Loss: {loss.item()})# 查看特征 print(Extracted GNN features:, gnn_features) GNN和全连接层FC分别使用不同的优化器和学习率分别进行参数更新 如果你想为GNN和全连接层FC分别使用不同的优化器和学习率可以按照以下步骤进行 定义两个优化器一个用于GNN模型另一个用于FC模型。分别进行参数更新在训练循环中分别对两个模型进行前向传播、损失计算和反向传播然后使用各自的优化器更新参数。 以下是实现代码示例 import torch import torch.nn as nn import torch.nn.functional as F from torch_geometric.data import Data, Batch from torch_geometric.nn import GCNConv from torch_geometric.utils import erdos_renyi_graph from sklearn.preprocessing import StandardScalerclass GNN(nn.Module):def __init__(self, in_channels, hidden_channels, out_channels):super(GNN, self).__init__()self.conv1 GCNConv(in_channels, hidden_channels)self.conv2 GCNConv(hidden_channels, out_channels)def forward(self, data):x, edge_index data.x, data.edge_indexx self.conv1(x, edge_index)x F.relu(x)x self.conv2(x, edge_index)gnn_features F.relu(x)return gnn_featuresclass FC(nn.Module):def __init__(self, in_features, num_classes):super(FC, self).__init__()self.fc nn.Linear(in_features, num_classes)def forward(self, x):out self.fc(x)return out# 假设我们有一些数据 num_nodes_per_graph 10 num_graphs 5 num_node_features 16 num_classes 3# 创建多个图数据 graphs [] for _ in range(num_graphs):x torch.randn((num_nodes_per_graph, num_node_features))scaler StandardScaler()x torch.tensor(scaler.fit_transform(x), dtypetorch.float) # 标准化edge_index erdos_renyi_graph(num_nodesnum_nodes_per_graph, edge_prob0.5) # 生成随机图graphs.append(Data(xx, edge_indexedge_index))# 批处理数据 batch Batch.from_data_list(graphs)# 创建模型 gnn_model GNN(in_channelsnum_node_features, hidden_channels32, out_channels64) fc_model FC(in_features64, num_classesnum_classes)# 使用两个优化器分别优化GNN和FC模型的参数 optimizer_gnn torch.optim.Adam(gnn_model.parameters(), lr1e-3) # GNN使用较高的学习率 optimizer_fc torch.optim.Adam(fc_model.parameters(), lr1e-4) # FC使用较低的学习率 criterion nn.CrossEntropyLoss()# 生成一些随机目标 target torch.randint(0, num_classes, (num_nodes_per_graph * num_graphs,))# 训练模型 for epoch in range(100):gnn_model.train()fc_model.train()optimizer_gnn.zero_grad()optimizer_fc.zero_grad()# 前向传播通过GNN模型gnn_features gnn_model(batch)# 前向传播通过FC模型output fc_model(gnn_features)# 计算损失loss criterion(output, target)# 反向传播loss.backward()# 使用各自的优化器更新参数optimizer_gnn.step()optimizer_fc.step()print(fEpoch {epoch1}, Loss: {loss.item()})# 查看特征 print(Extracted GNN features:, gnn_features)解释 GNN模型类GNN类定义了一个简单的两层GCN模型用于特征提取。FC模型类FC类定义了一个全连接层模型用于分类。数据生成使用torch_geometric.utils.erdos_renyi_graph生成随机图数据并确保参数正确。联合优化 定义两个优化器分别用于GNN和FC模型并为它们设置不同的学习率。在训练循环中首先通过GNN模型提取特征然后将提取的特征传递给FC模型进行分类。使用各自的优化器来分别清除梯度、进行反向传播和更新参数。 通过这种方式尽管GNN和FC模型分别在不同的类中并使用不同的优化器和学习率它们仍然可以端到端地进行联合训练并确保梯度正确地传播到整个模型的每一部分。
http://www.w-s-a.com/news/957148/

相关文章:

  • 太原建网站公司网站设计的流程是怎样的
  • 网站开发交易平台北京网站建设的价格低
  • 捷克注册公司网站搜索引擎广告推广
  • 网站的实用性青岛九二网络科技有限公司
  • 广东备案网站网站反链如何做
  • 做网站的实施过程企业建设H5响应式网站的5大好处6
  • ps制作个人网站首页景安搭建wordpress
  • 常德建设网站制作网站建设推广是什么工作
  • 长春服务好的网站建设百度推广话术全流程
  • 做的网站浏览的越多越挣钱基于jsp的网站开发开题报告
  • 好的做问卷调查的网站好网站调用时间
  • 广州微网站建设平台阿里云国外服务器
  • 如何把做好的网站代码变成网页wordpress shortcode土豆 视频
  • 网站改版竞品分析怎么做中山网站建设文化价格
  • 玉林市网站开发公司电话做网站空间 阿里云
  • 南充做网站略奥网络免费的正能量视频素材网站
  • 电子商务网站开发的基本原则汕头网站制作流程
  • 网站访问量突然增加合肥宣传片制作公司六维时空
  • 建设购物网站流程图怎么找网站
  • 阿里云部署多个网站制作小程序网站源码
  • 博罗东莞网站建设网站免费源代码
  • 网站规划与设计范文桂平网站建设
  • 网站备案号密码wordpress邮箱发送信息错误
  • 模板的网站都有哪些关键词搜索工具爱站网
  • 鲜花网站建设的利息分析企业网站建设方案书
  • 深圳网站平台石家庄做商城网站的公司
  • 微网站营销是什么私人订制网站有哪些
  • 浙江建设工程合同备案网站新手做网站教程
  • 网站优化关键词排名自己怎么做wordpress安装主题失败
  • 成都建设银行招聘网站网站的切换语言都是怎么做的