From: @zhan_ke Reviewed-by: Signed-off-by:tags/v1.2.0-rc1
| @@ -0,0 +1,243 @@ | |||
| # 目录 | |||
| <!-- TOC --> | |||
| - [目录](#目录) | |||
| - [贝叶斯图协同过滤](#贝叶斯图协同过滤) | |||
| - [模型架构](#模型架构) | |||
| - [数据集](#数据集) | |||
| - [特性](#特性) | |||
| - [混合精度](#混合精度) | |||
| - [环境要求](#环境要求) | |||
| - [快速入门](#快速入门) | |||
| - [脚本说明](#脚本说明) | |||
| - [脚本及样例代码](#脚本及样例代码) | |||
| - [脚本参数](#脚本参数) | |||
| - [训练过程](#训练过程) | |||
| - [训练](#训练) | |||
| - [评估过程](#评估过程) | |||
| - [评估](#评估) | |||
| - [模型描述](#模型描述) | |||
| - [性能](#性能) | |||
| - [随机情况说明](#随机情况说明) | |||
| - [ModelZoo主页](#modelzoo主页) | |||
| <!-- /TOC --> | |||
| # 贝叶斯图协同过滤 | |||
| 贝叶斯图协同过滤(BGCF)是Sun J、Guo W、Zhang D等人于2020年提出的。通过结合用户与物品交互图中的不确定性,显示了Amazon推荐数据集的优异性能。使用MindSpore中的Amazon-Beauty数据集对BGCF进行训练。更重要的是,这是BGCF的第一个开源版本。 | |||
| [论文](https://dl.acm.org/doi/pdf/10.1145/3394486.3403254): Sun J, Guo W, Zhang D, et al.A Framework for Recommending Accurate and Diverse Items Using Bayesian Graph Convolutional Neural Networks[C]//Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining.2020: 2030-2039. | |||
| # 模型架构 | |||
| BGCF包含两个主要模块。首先是抽样,它生成基于节点复制的样本图。另一个为聚合节点的邻居采样,节点包含平均聚合器和注意力聚合器。 | |||
| # 数据集 | |||
| - 数据集大小: | |||
| 所用数据集的统计信息摘要如下: | |||
| | | Amazon-Beauty | | |||
| | ------------------ | -----------------------:| | |||
| | 任务 | 推荐 | | |||
| | # 用户 | 7068 (1图) | | |||
| | # 物品 | 3570 | | |||
| | # 交互 | 79506 | | |||
| | # 训练数据 | 60818 | | |||
| | # 测试数据 | 18688 | | |||
| | # 密度 | 0.315% | | |||
| - 数据准备 | |||
| - 将数据集放到任意路径,文件夹应该包含如下文件(以Amazon-Beauty数据集为例): | |||
| ```text | |||
| . | |||
| └─data | |||
| ├─ratings_Beauty.csv | |||
| ``` | |||
| - 为Amazon-Beauty生成MindRecord格式的数据集 | |||
| ```builddoutcfg | |||
| cd ./scripts | |||
| # SRC_PATH是您下载的数据集文件路径 | |||
| sh run_process_data_ascend.sh [SRC_PATH] | |||
| ``` | |||
| - 启动 | |||
| ```text | |||
| # 为Amazon-Beauty生成MindRecord格式的数据集 | |||
| sh ./run_process_data_ascend.sh ./data | |||
| # 特性 | |||
| ## 混合精度 | |||
| 为了充分利用Ascend芯片强大的运算能力,加快训练过程,此处采用混合训练方法。MindSpore能够处理FP32输入和FP16操作符。在BGCF示例中,除损失计算部分外,模型设置为FP16模式。 | |||
| # 环境要求 | |||
| - 硬件(Ascend) | |||
| - 框架 | |||
| - [MindSpore](https://www.mindspore.cn/install) | |||
| - 如需查看详情,请参见如下资源: | |||
| - [MindSpore教程](https://www.mindspore.cn/tutorial/training/zh-CN/master/index.html) | |||
| - [MindSpore Python API](https://www.mindspore.cn/doc/api_python/zh-CN/master/index.html) | |||
| # 快速入门 | |||
| 通过官方网站安装MindSpore,并正确生成数据集后,您可以按照如下步骤进行训练和评估: | |||
| - Ascend处理器环境运行 | |||
| ```text | |||
| # 使用Amazon-Beauty数据集运行训练示例 | |||
| sh run_train_ascend.sh | |||
| # 使用Amazon-Beauty数据集运行评估示例 | |||
| sh run_eval_ascend.sh | |||
| ``` | |||
| # 脚本说明 | |||
| ## 脚本及样例代码 | |||
| ```shell | |||
| └─bgcf | |||
| ├─README.md | |||
| ├─scripts | |||
| | ├─run_eval_ascend.sh # 启动评估 | |||
| | ├─run_process_data_ascend.sh # 生成MindRecord格式的数据集 | |||
| | └─run_train_ascend.sh # 启动训练 | |||
| | | |||
| ├─src | |||
| | ├─bgcf.py # BGCF模型 | |||
| | ├─callback.py # 回调函数 | |||
| | ├─config.py # 训练配置 | |||
| | ├─dataset.py # 数据预处理 | |||
| | ├─metrics.py # 推荐指标 | |||
| | └─utils.py # 训练BGCF的工具 | |||
| | | |||
| ├─eval.py # 评估网络 | |||
| └─train.py # 训练网络 | |||
| ``` | |||
| ## 脚本参数 | |||
| 在config.py中可以同时配置训练参数和评估参数。 | |||
| - BGCF数据集配置 | |||
| ```python | |||
| "learning_rate": 0.001, # 学习率 | |||
| "num_epochs": 600, # 训练轮次 | |||
| "num_neg": 10, # 负采样率 | |||
| "raw_neighs": 40, # 原图采样邻居个数 | |||
| "gnew_neighs": 20, # 样本图采样邻居个数 | |||
| "input_dim": 64, # 用户与物品嵌入维度 | |||
| "l2_coeff": 0.03 # l2系数 | |||
| "neighbor_dropout": [0.0, 0.2, 0.3]# 不同汇聚层dropout率 | |||
| "num_graphs":5 # 样例图个数 | |||
| ``` | |||
| 在config.py中以获取更多配置。 | |||
| ## 训练过程 | |||
| ### 训练 | |||
| - Ascend处理器环境运行 | |||
| ```python | |||
| sh run_train_ascend.sh | |||
| ``` | |||
| 训练结果将保存在脚本路径下,文件夹名称以“train”开头。您可在日志中找到结果,如下所示。 | |||
| ```python | |||
| Epoch 001 iter 12 loss 34696.242 | |||
| Epoch 002 iter 12 loss 34275.508 | |||
| Epoch 003 iter 12 loss 30620.635 | |||
| Epoch 004 iter 12 loss 21628.908 | |||
| ... | |||
| Epoch 597 iter 12 loss 3662.3152 | |||
| Epoch 598 iter 12 loss 3640.7612 | |||
| Epoch 599 iter 12 loss 3654.9087 | |||
| Epoch 600 iter 12 loss 3632.4585 | |||
| ... | |||
| ``` | |||
| ## 评估过程 | |||
| ### 评估 | |||
| - Ascend评估 | |||
| ```python | |||
| sh run_eval_ascend.sh | |||
| ``` | |||
| 评估结果将保存在脚本路径下,文件夹名称以“eval”开头。您可在日志中找到结果,如下所示。 | |||
| ```python | |||
| epoch:020, recall_@10:0.07345, recall_@20:0.11193, ndcg_@10:0.05293, ndcg_@20:0.06613, | |||
| sedp_@10:0.01393, sedp_@20:0.01126, nov_@10:6.95106, nov_@20:7.22280 | |||
| epoch:040, recall_@10:0.07410, recall_@20:0.11537, ndcg_@10:0.05387, ndcg_@20:0.06801, | |||
| sedp_@10:0.01445, sedp_@20:0.01168, nov_@10:7.34799, nov_@20:7.58883 | |||
| epoch:060, recall_@10:0.07654, recall_@20:0.11987, ndcg_@10:0.05530, ndcg_@20:0.07015, | |||
| sedp_@10:0.01474, sedp_@20:0.01206, nov_@10:7.46553, nov_@20:7.69436 | |||
| ... | |||
| epoch:560, recall_@10:0.09825, recall_@20:0.14877, ndcg_@10:0.07176, ndcg_@20:0.08883, | |||
| sedp_@10:0.01882, sedp_@20:0.01501, nov_@10:7.58045, nov_@20:7.79586 | |||
| epoch:580, recall_@10:0.09917, recall_@20:0.14970, ndcg_@10:0.07337, ndcg_@20:0.09037, | |||
| sedp_@10:0.01896, sedp_@20:0.01504, nov_@10:7.57995, nov_@20:7.79439 | |||
| epoch:600, recall_@10:0.09926, recall_@20:0.15080, ndcg_@10:0.07283, ndcg_@20:0.09016, | |||
| sedp_@10:0.01890, sedp_@20:0.01517, nov_@10:7.58277, nov_@20:7.80038 | |||
| ... | |||
| ``` | |||
| # 模型描述 | |||
| ## 性能 | |||
| | 参数 | BGCF | | |||
| | ------------------------------------ | ----------------------------------------- | | |||
| | 资源 | Ascend 910 | | |||
| | 上传日期 | 09/23/2020(月/日/年) | | |||
| | MindSpore版本 | 1.0.0 | | |||
| | 数据集 | Amazon-Beauty | | |||
| | 训练参数 | epoch=600 | | |||
| | 优化器 | Adam | | |||
| | 损失函数 | BPR loss | | |||
| | Recall@20 | 0.1534 | | |||
| | NDCG@20 | 0.0912 | | |||
| | 训练成本 | 25min | | |||
| | 脚本 | [bgcf脚本](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/gnn/bgcf) | | |||
| # 随机情况说明 | |||
| BGCF模型中有很多的dropout操作,如果想关闭dropout,可以在src/config.py中将neighbor_dropout设置为[0.0, 0.0, 0.0] 。 | |||
| # ModelZoo主页 | |||
| 请浏览官网[主页](https://gitee.com/mindspore/mindspore/tree/master/model_zoo)。 | |||
| @@ -0,0 +1,202 @@ | |||
| # 目录 | |||
| <!-- TOC --> | |||
| - [目录](#目录) | |||
| - [图注意力网络描述](#图注意力网络描述) | |||
| - [模型架构](#模型架构) | |||
| - [数据集](#数据集) | |||
| - [特性](#特性) | |||
| - [混合精度](#混合精度) | |||
| - [环境要求](#环境要求) | |||
| - [快速入门](#快速入门) | |||
| - [脚本说明](#脚本说明) | |||
| - [脚本及样例代码](#脚本及样例代码) | |||
| - [脚本参数](#脚本参数) | |||
| - [训练过程](#训练过程) | |||
| - [训练](#训练) | |||
| - [模型描述](#模型描述) | |||
| - [性能](#性能) | |||
| - [随机情况说明](#随机情况说明) | |||
| - [ModelZoo主页](#modelzoo主页) | |||
| <!-- /TOC --> | |||
| # 图注意力网络描述 | |||
| 图注意力网络(GAT)由Petar Veličković等人于2017年提出。GAT通过利用掩蔽自注意层来克服现有基于图的方法的缺点,在Cora等传感数据集和PPI等感应数据集上都达到了最先进的性能。以下是用MindSpore的Cora数据集训练GAT的例子。 | |||
| [论文](https://arxiv.org/abs/1710.10903): Veličković, P., Cucurull, G., Casanova, A., Romero, A., Lio, P., & Bengio, Y. (2017).Graph attention networks. arXiv preprint arXiv:1710.10903. | |||
| # 模型架构 | |||
| 请注意节点更新函数是级联还是平均,取决于注意力层是否为网络输出层。 | |||
| # 数据集 | |||
| - 数据集大小: | |||
| 所用数据集汇总如下: | |||
| | | Cora | Citeseer | | |||
| | ------------------ | -------------: | -------------: | | |||
| | 任务 | Transductive | Transductive | | |||
| | # 节点 | 2708 (1图) | 3327 (1图) | | |||
| | # 边 | 5429 | 4732 | | |||
| | # 特性/节点 | 1433 | 3703 | | |||
| | # 类 | 7 | 6 | | |||
| | # 训练节点 | 140 | 120 | | |||
| | # 验证节点 | 500 | 500 | | |||
| | # 测试节点 | 1000 | 1000 | | |||
| - 数据准备 | |||
| - 将数据集放到任意路径,文件夹应该包含如下文件(以Cora数据集为例): | |||
| ```text | |||
| . | |||
| └─data | |||
| ├─ind.cora.allx | |||
| ├─ind.cora.ally | |||
| ├─ind.cora.graph | |||
| ├─ind.cora.test.index | |||
| ├─ind.cora.tx | |||
| ├─ind.cora.ty | |||
| ├─ind.cora.x | |||
| └─ind.cora.y | |||
| ``` | |||
| - 为Cora或Citeseer生成MindRecord格式的数据集 | |||
| ```buildoutcfg | |||
| cd ./scripts | |||
| # SRC_PATH为下载的数据集文件路径,DATASET_NAME为Cora或Citeseer | |||
| sh run_process_data_ascend.sh [SRC_PATH] [DATASET_NAME] | |||
| ``` | |||
| - 启动 | |||
| ```text | |||
| # 为Cora生成MindRecord格式的数据集 | |||
| ./run_process_data_ascend.sh ./data cora | |||
| # 为Citeseer生成MindRecord格式的数据集 | |||
| ./run_process_data_ascend.sh ./data citeseer | |||
| ``` | |||
| # 特性 | |||
| ## 混合精度 | |||
| 为了充分利用Ascend芯片强大的运算能力,加快训练过程,此处采用混合训练方法。MindSpore能够处理FP32输入和FP16操作符。在GAT示例中,除损失计算部分外,模型设置为FP16模式。 | |||
| # 环境要求 | |||
| - 硬件(Ascend) | |||
| - 框架 | |||
| - [MindSpore](https://www.mindspore.cn/install) | |||
| - 如需查看详情,请参见如下资源: | |||
| - [MindSpore教程](https://www.mindspore.cn/tutorial/training/zh-CN/master/index.html) | |||
| - [MindSpore Python API](https://www.mindspore.cn/doc/api_python/zh-CN/master/index.html) | |||
| # 快速入门 | |||
| 通过官方网站安装MindSpore,并正确生成数据集后,您可以按照如下步骤进行训练和评估: | |||
| - Ascend处理器环境运行 | |||
| ```text | |||
| # 使用Cora数据集运行训练示例,DATASET_NAME为cora | |||
| sh run_train_ascend.sh [DATASET_NAME] | |||
| ``` | |||
| # 脚本说明 | |||
| ## 脚本及样例代码 | |||
| ```shell | |||
| . | |||
| └─gat | |||
| ├─README.md | |||
| ├─scripts | |||
| | ├─run_process_data_ascend.sh # 生成MindRecord格式的数据集 | |||
| | └─run_train_ascend.sh # 启动训练 | |||
| | | |||
| ├─src | |||
| | ├─config.py # 训练配置 | |||
| | ├─dataset.py # 数据预处理 | |||
| | ├─gat.py # GAT模型 | |||
| | └─utils.py # 训练gat的工具 | |||
| | | |||
| └─train.py # 训练网络 | |||
| ``` | |||
| ## 脚本参数 | |||
| 在config.py中可以同时配置训练参数和评估参数。 | |||
| - 配置GAT和Cora数据集 | |||
| ```python | |||
| "learning_rate": 0.005, # 学习率 | |||
| "num_epochs": 200, # 训练轮次 | |||
| "hid_units": [8], # 每层注意头隐藏单元 | |||
| "n_heads": [8, 1], # 每层头数 | |||
| "early_stopping": 100, # 早停忍耐轮次数 | |||
| "l2_coeff": 0.0005 # l2系数 | |||
| "attn_dropout": 0.6 # 注意力层dropout系数 | |||
| "feature_dropout":0.6 # 特征层dropout系数 | |||
| ``` | |||
| ## 训练过程 | |||
| ### 训练 | |||
| - Ascend处理器环境运行 | |||
| ```python | |||
| sh run_train_ascend.sh [DATASET_NAME] | |||
| ``` | |||
| 训练结果将保存在脚本路径下,文件夹名称以“train”开头。您可在日志中找到结果 | |||
| ,如下所示。 | |||
| ```python | |||
| Epoch:0, train loss=1.98498 train acc=0.17143 | val loss=1.97946 val acc=0.27200 | |||
| Epoch:1, train loss=1.98345 train acc=0.15000 | val loss=1.97233 val acc=0.32600 | |||
| Epoch:2, train loss=1.96968 train acc=0.21429 | val loss=1.96747 val acc=0.37400 | |||
| Epoch:3, train loss=1.97061 train acc=0.20714 | val loss=1.96410 val acc=0.47600 | |||
| Epoch:4, train loss=1.96864 train acc=0.13571 | val loss=1.96066 val acc=0.59600 | |||
| ... | |||
| Epoch:195, train loss=1.45111 train_acc=0.56429 | val_loss=1.44325 val_acc=0.81200 | |||
| Epoch:196, train loss=1.52476 train_acc=0.52143 | val_loss=1.43871 val_acc=0.81200 | |||
| Epoch:197, train loss=1.35807 train_acc=0.62857 | val_loss=1.43364 val_acc=0.81400 | |||
| Epoch:198, train loss=1.47566 train_acc=0.51429 | val_loss=1.42948 val_acc=0.81000 | |||
| Epoch:199, train loss=1.56411 train_acc=0.55000 | val_loss=1.42632 val_acc=0.80600 | |||
| Test loss=1.5366285, test acc=0.84199995 | |||
| ... | |||
| ``` | |||
| # 模型描述 | |||
| ## 性能 | |||
| | 参数 | GAT | | |||
| | ------------------------------------ | ----------------------------------------- | | |||
| | 资源 | Ascend 910 | | |||
| | 上传日期 | 2020-06-16 | | |||
| | MindSpore版本 | 0.5.0-beta | | |||
| | 数据集 | Cora/Citeseer | | |||
| | 训练参数 | epoch=200 | | |||
| | 优化器 | Adam | | |||
| | 损失函数 | Softmax交叉熵 | | |||
| | 准确率 | 83.0/72.5 | | |||
| | 速度 | 0.195s/epoch | | |||
| | 总时长 | 39s | | |||
| | 脚本 | <https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/gnn/gat> | | |||
| # 随机情况说明 | |||
| GAT模型中有很多的dropout操作,如果想关闭dropout,可以在src/config.py中将attn_dropout和feature_dropout设置为0。注:该操作会导致准确率降低到80%左右。 | |||
| # ModelZoo主页 | |||
| 请浏览官网[主页](https://gitee.com/mindspore/mindspore/tree/master/model_zoo)。 | |||
| @@ -0,0 +1,192 @@ | |||
| # 目录 | |||
| <!-- TOC --> | |||
| - [目录](#目录) | |||
| - [图卷积网络描述](#图卷积网络描述) | |||
| - [模型架构](#模型架构) | |||
| - [数据集](#数据集) | |||
| - [环境要求](#环境要求) | |||
| - [快速入门](#快速入门) | |||
| - [用法](#用法) | |||
| - [启动](#启动) | |||
| - [脚本说明](#脚本说明) | |||
| - [脚本及样例代码](#脚本及样例代码) | |||
| - [脚本参数](#脚本参数) | |||
| - [培训、评估、测试过程](#培训评估测试过程) | |||
| - [用法](#用法-1) | |||
| - [启动](#启动-1) | |||
| - [结果](#结果) | |||
| - [模型描述](#模型描述) | |||
| - [性能](#性能) | |||
| - [随机情况说明](#随机情况说明) | |||
| - [ModelZoo主页](#modelzoo主页) | |||
| <!-- /TOC --> | |||
| # 图卷积网络描述 | |||
| 图卷积网络(GCN)于2016年提出,旨在对图结构数据进行半监督学习。它提出了一种基于卷积神经网络有效变体的可扩展方法,可直接在图上操作。该模型在图边缘的数量上线性缩放,并学习隐藏层表示,这些表示编码了局部图结构和节点特征。 | |||
| [论文](https://arxiv.org/abs/1609.02907): Thomas N. Kipf, Max Welling.2016.Semi-Supervised Classification with Graph Convolutional Networks.In ICLR 2016. | |||
| # 模型架构 | |||
| GCN包含两个图卷积层。每一层以节点特征和邻接矩阵为输入,通过聚合相邻特征来更新节点特征。 | |||
| # 数据集 | |||
| | 数据集 | 类型 | 节点 | 边 | 类 | 特征 | 标签率 | | |||
| | ------- | ---------------:|-----:| ----:| ------:|--------:| ---------:| | |||
| | Cora | Citation network | 2708 | 5429 | 7 | 1433 | 0.052 | | |||
| | Citeseer| Citation network | 3327 | 4732 | 6 | 3703 | 0.036 | | |||
| # 环境要求 | |||
| - 硬件(Ascend处理器) | |||
| - 准备Ascend或GPU处理器搭建硬件环境。如需试用昇腾处理器,请发送[申请表](https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/file/other/Ascend%20Model%20Zoo%E4%BD%93%E9%AA%8C%E8%B5%84%E6%BA%90%E7%94%B3%E8%AF%B7%E8%A1%A8.docx)至ascend@huawei,审核通过即可获得资源。 | |||
| - 框架 | |||
| - [MindSpore](https://gitee.com/mindspore/mindspore) | |||
| - 如需查看详情,请参见如下资源: | |||
| - [MindSpore教程](https://www.mindspore.cn/tutorial/training/zh-CN/master/index.html) | |||
| - [MindSpore Python API](https://www.mindspore.cn/doc/api_python/zh-CN/master/index.html) | |||
| # 快速入门 | |||
| - 安装[MindSpore](https://www.mindspore.cn/install) | |||
| - 从github下载/kimiyoung/planetoid提供的数据集Cora或Citeseer | |||
| - 将数据集放到任意路径,文件夹应该包含如下文件(以Cora数据集为例): | |||
| ```text | |||
| . | |||
| └─data | |||
| ├─ind.cora.allx | |||
| ├─ind.cora.ally | |||
| ├─ind.cora.graph | |||
| ├─ind.cora.test.index | |||
| ├─ind.cora.tx | |||
| ├─ind.cora.ty | |||
| ├─ind.cora.x | |||
| └─ind.cora.y | |||
| ``` | |||
| - 为Cora或Citeseer生成MindRecord格式的数据集 | |||
| ## 用法 | |||
| ```buildoutcfg | |||
| cd ./scripts | |||
| # SRC_PATH为下载的数据集文件路径,DATASET_NAME为Cora或Citeseer | |||
| sh run_process_data.sh [SRC_PATH] [DATASET_NAME] | |||
| ``` | |||
| ## 启动 | |||
| ```text | |||
| # 为Cora生成MindRecord格式的数据集 | |||
| sh run_process_data.sh ./data cora | |||
| # 为Citeseer生成MindRecord格式的数据集 | |||
| sh run_process_data.sh ./data citeseer | |||
| ``` | |||
| # 脚本说明 | |||
| ## 脚本及样例代码 | |||
| ```shell | |||
| . | |||
| └─gcn | |||
| ├─README.md | |||
| ├─scripts | |||
| | ├─run_process_data.sh # 生成MindRecord格式的数据集 | |||
| | └─run_train.sh # 启动训练,目前只支持Ascend后端 | |||
| | | |||
| ├─src | |||
| | ├─config.py # 参数配置 | |||
| | ├─dataset.py # 数据预处理 | |||
| | ├─gcn.py # GCN骨干 | |||
| | └─metrics.py # 损失和准确率 | |||
| | | |||
| └─train.py # 训练网络,每个训练轮次后评估验证结果收敛后,训练停止,然后进行测试。 | |||
| ``` | |||
| ## 脚本参数 | |||
| 训练参数可以在config.py中配置。 | |||
| ```text | |||
| "learning_rate": 0.01, # 学习率 | |||
| "epochs": 200, # 训练轮次 | |||
| "hidden1": 16, # 第一图卷积层隐藏大小 | |||
| "dropout": 0.5, # 第一图卷积层dropout率 | |||
| "weight_decay": 5e-4, # 第一图卷积层参数的权重衰减 | |||
| "early_stopping": 10, # 早停容限 | |||
| ``` | |||
| ## 培训、评估、测试过程 | |||
| ### 用法 | |||
| ```text | |||
| # 使用Cora或Citeseer数据集进行训练,DATASET_NAME为Cora或Citeseer | |||
| sh run_train.sh [DATASET_NAME] | |||
| ``` | |||
| ### 启动 | |||
| ```bash | |||
| sh run_train.sh cora | |||
| ``` | |||
| ### 结果 | |||
| 训练结果将保存在脚本路径下,文件夹名称以“train”开头。您可在日志中找到如下结果: | |||
| ```text | |||
| Epoch:0001 train_loss= 1.95373 train_acc= 0.09286 val_loss= 1.95075 val_acc= 0.20200 time= 7.25737 | |||
| Epoch:0002 train_loss= 1.94812 train_acc= 0.32857 val_loss= 1.94717 val_acc= 0.34000 time= 0.00438 | |||
| Epoch:0003 train_loss= 1.94249 train_acc= 0.47857 val_loss= 1.94337 val_acc= 0.43000 time= 0.00428 | |||
| Epoch:0004 train_loss= 1.93550 train_acc= 0.55000 val_loss= 1.93957 val_acc= 0.46400 time= 0.00421 | |||
| Epoch:0005 train_loss= 1.92617 train_acc= 0.67143 val_loss= 1.93558 val_acc= 0.45400 time= 0.00430 | |||
| ... | |||
| Epoch:0196 train_loss= 0.60326 train_acc= 0.97857 val_loss= 1.05155 val_acc= 0.78200 time= 0.00418 | |||
| Epoch:0197 train_loss= 0.60377 train_acc= 0.97143 val_loss= 1.04940 val_acc= 0.78000 time= 0.00418 | |||
| Epoch:0198 train_loss= 0.60680 train_acc= 0.95000 val_loss= 1.04847 val_acc= 0.78000 time= 0.00414 | |||
| Epoch:0199 train_loss= 0.61920 train_acc= 0.96429 val_loss= 1.04797 val_acc= 0.78400 time= 0.00413 | |||
| Epoch:0200 train_loss= 0.57948 train_acc= 0.96429 val_loss= 1.04753 val_acc= 0.78600 time= 0.00415 | |||
| Optimization Finished! | |||
| Test set results: cost= 1.00983 accuracy= 0.81300 time= 0.39083 | |||
| ... | |||
| ``` | |||
| # 模型描述 | |||
| ## 性能 | |||
| | 参数 | GCN | | |||
| | -------------------------- | -------------------------------------------------------------- | | |||
| | 资源 | Ascend 910 | | |||
| | 上传日期 | 2020-06-09 | | |||
| | MindSpore版本 | 0.5.0-beta | | |||
| | 数据集 | Cora/Citeseer | | |||
| | 训练参数 | epoch=200 | | |||
| | 优化器 | Adam | | |||
| | 损失函数 | Softmax交叉熵 | | |||
| | 准确率 | 81.5/70.3 | | |||
| | 参数(B) | 92160/59344 | | |||
| | 脚本 | <https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/gnn/gcn> | | |||
| # 随机情况说明 | |||
| 以下两种随机情况: | |||
| - 根据入参--seed在train.py中设置种子。 | |||
| - 随机失活操作。 | |||
| train.py已经设置了一些种子,避免权重初始化的随机性。若需关闭随机失活,将src/config.py中相应的dropout_prob参数设置为0。 | |||
| # ModelZoo主页 | |||
| 请浏览官网[主页](https://gitee.com/mindspore/mindspore/tree/master/model_zoo)。 | |||