Skip to content

Latest commit

 

History

History
112 lines (49 loc) · 3.67 KB

README.md

File metadata and controls

112 lines (49 loc) · 3.67 KB

GGNN Code Recommendation

1. 简单介绍

这个项目包含了GGNN(Gated Graph Neural Network1,门控图神经网络)的代码,以及基于GGNN的API代码推荐和token推荐模型的源代码。

2. 项目结构

本项目有三个模块:

2.1 basic_ggnn_model

GGNN模型的代码,tf版本和pytorch版本

(1) tf_version

  • 代码来源:微软开源的 tensorflow1.0+ 版本的GGNN源代码,项目路径:microsoft/gated-graph-neural-network-samples2

  • 注意:为了方便阅读和调试,我们对microsoft/gated-graph-neural-network-samples的代码进行了简单的修改,将原来的DenseGGNNChemModel类和ChemModel类合并为DenseGGNNModel类。

(2) torch_version

  • 说明:参考Tensorflow版本复现的PyTorch版本 GGNN 模型。

  • 注意:只包含了模型的代码,不包含数据集加载部分。目前 main.py 中所有的数据都是随机生成的。

2.2 code_rec_api_level

基于GGNN模型的API推荐,包含一个tf版本和两个pytorch版本。

Step1. 将代码的 API上下文图 输入到 GGNN 中得到此图的向量表示

Step2. 将代码的 token序列 输入到 LSTM 中的到隐藏状态

Step3. 将两个网络输出的向量拼接,在输入到Softmax得到输出

(1) tf_version_1

  • 说明:tensorflow 1.0+ 版本的 API推荐模型

  • 代码来源:论文 Holistic Combination of Structural and Textual Code Information for Context based API Recommendation3 的源代码。

  • 注意:此API推荐模型中的GGNN模型的代码是在microsoft/gated-graph-neural-network-samples的基础上改的。

(2) tf_version_2

  • 说明:依然是tensorflow 1.0+ 版本的 API推荐模型。这里的代码和 code_rec_api_level/tf_version_1 几乎是一样,只是将 tf_version_1/model_train.py 中的类拆分到了不同文件。

  • 代码来源:依然是论文 Holistic Combination of Structural and Textual Code Information for Context based API Recommendation3 的源代码。

(3) torch_version_1

  • 说明:Pytorch版本的 API推荐。

  • 代码来源:GGNN模型的代码参考了另外两个项目来实现:ggnn.pytorch4GGNN_Reasoning5

(4) torch_version_2

  • 说明:Pytorch版本的 API推荐,和(3)的区别是GGNN模型的代码不同。

  • 代码来源:GGNN模型的代码使用的是basic_ggnn_model/torch_version中的。

2.3 code_rec_token_level

基于GGNN模型的代码token推荐,目前只包含一个tf版本。

(1) tf_version

  • 说明:tensorflow版本的 token推荐,参考code_rec_api_level/tf_version_1来实现。

3. Reference

[1] Gated Graph Sequence Neural Networks.

[2] GitHub - microsoft/gated-graph-neural-network-samples: Sample Code for Gated Graph Neural Networks

[3] Holistic Combination of Structural and Textual Code Information for Context based API Recommendation.

[4] GitHub - chingyaoc/ggnn.pytorch: A PyTorch Implementation of Gated Graph Sequence Neural Networks (GGNN)

[5] GitHub - entslscheia/GGNN_Reasoning: PyTorch implementation for Graph Gated Neural Network (for Knowledge Graphs)