怎么使用Pytorch+PyG实现MLP


这篇文章主要讲解了“怎么使用Pytorch+PyG实现MLP”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Pytorch+PyG实现MLP”吧!平台:Windows10语言环境:python3.7编译器:PyCharmPyTorch版本:1.11.0PyG版本:2.1.0本项目我们需要结合两个库,一个是Pytorch,因为还需要按照torch的网络搭建模型进行书写,第二个是PyG,因为在torch中并没有关于图网络层的定义,所以需要torch_geometric这个库来定义一些图层。本文使用的数据集是比较经典的Cora数据集,它是一个根据科学论文之间相互引用关系而构建的Graph数据集合,论文分为7类,共2708篇。Genetic_AlgorithmsNeural_NetworksProbabilistic_MethodsReinforcement_LearningRule_LearningTheory这个数据集是一个用于图节点分类的任务,数据集中只有一张图,这张图中含有2708个节点,10556条边,每个节点的特征维度为1433。这里我们就不重点介绍MLP网络了,相信大家能够掌握基本原理,本文我们使用的是PyG定义网络层,在PyG中已经定义好了MLP这个层,该层采用的就是感知机机制。对于MLP的常用参数:channel_list:样本输入层、中间层、输出层维度的列表in_channels:每个样本的输入维度,就是每个节点的特征维度hidden_channels:单层神经网络中间的隐层大小out_channels:经过MLP后映射成的新的维度,就是经过MLP后每个节点的维度长度num_layers:感知机层数dropout:每个隐藏层的丢弃率,如果存在多层可以使用列表传入act:激活函数,默认为relubias:训练一个偏置b对于本文实现的 pyg_nn.MLP([num_node_features, 32, 64, 128]) 的含义就是定义一个三层的感知机网络,按照 PyTorch 实现等价于如下代码:对于 PyG 中实现起来较为简单,以列表方式传入所以隐层大小即可,第一个维度代表样本的输入特征维度,最后一个维度代表输出的维度大小,中间维度代表隐层的大小,所以 len(channel_list) - 1 代表 MLP 的层数,这种方式是以传入 channel_list 方式定义模型,还可以按照正常参数方式进行传递定义,代码如下:网络定义代码如下:上面网络我们定义了两个MLP层,第一层的参数的输入维度就是初始每个节点的特征维度,输出维度是128。第二个层的输入维度为128,输出维度为分类个数,因为我们需要对每个节点进行分类,最终加上softmax操作。下面就是定义了一些模型需要的参数,像学习率、迭代次数这些超参数,然后是模型的定义以及优化器及损失函数的定义,和pytorch定义网络是一样的。模型训练部分也是和pytorch定义网络一样,因为都是需要经过前向传播、反向传播这些过程,对于损失、精度这些指标可以自己添加。下面就是模型验证阶段,在训练时我们是只使用了训练集,测试的时候我们使用的是测试集,注意这和传统网络测试不太一样,在图像分类一些经典任务中,我们是把数据集分成了两份,分别是训练集、测试集,但是在Cora这个数据集中并没有这样,它区分训练集还是测试集使用的是掩码机制,就是定义了一个和节点长度相同纬度的数组,该数组的每个位置为True或者False,标记着是否使用该节点的数据进行训练。【EPOCH: 】1
训练损失为:1.9856 训练精度为:0.1786
【EPOCH: 】21
训练损失为:1.5419 训练精度为:0.4643
【EPOCH: 】41
训练损失为:1.1653 训练精度为:0.6500
【EPOCH: 】免费云主机域名61
训练损失为:0.8062 训练精度为:0.8071
【EPOCH: 】81
训练损失为:0.5322 训练精度为:0.9286
【EPOCH: 】101
训练损失为:0.3487 训练精度为:0.9714
【EPOCH: 】121
训练损失为:0.2132 训练精度为:0.9571
【EPOCH: 】141
训练损失为:0.1043 训练精度为:0.9929
【EPOCH: 】161
训练损失为:0.0601 训练精度为:1.0000
【EPOCH: 】181
训练损失为:0.0420 训练精度为:1.0000
【Finished Training!】>>>Train Accuracy: 1.0000 Train Loss: 0.0092
>>>Test Accuracy: 0.1800 Test Loss: 1.9587完整代码感谢各位的阅读,以上就是“怎么使用Pytorch+PyG实现MLP”的内容了,经过本文的学习后,相信大家对怎么使用Pytorch+PyG实现MLP这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: Vue怎么实现新国标红绿灯效果

这篇文章主要介绍了Vue怎么实现新国标红绿灯效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么实现新国标红绿灯效果文章都会有所收获,下面我们一起来看看吧。组件化开发是我们一贯的风格。如何进行这个红绿灯组件的设计呢?从上图…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/20 10:54
下一篇 05/20 10:54

相关推荐