tf_geometric TensorFlow 图神经网络框架开源项目

我要开发同款
匿名用户2020年01月22日
42阅读
开发技术Python
所属分类人工智能、机器学习/深度学习
授权协议GPL

作品详情

tf_geometric是一个高效且友好的图神经网络库,同时支持TensorFlow1.x和2.x。

受到rusty1s/pytorch_geometric项目的启发,我们为TensorFlow构建了一个图神经网络(GNN)库。 tf_geometric 同时提供面向对象接口(OOPAPI)和函数式接口(FunctionalAPI),你可以用它们来构建有趣的模型。

Github主页: https://github.com/CrawlScript/tf_geometric开发文档: https://tf-geometric.readthedocs.io论文: EfficientGraphDeepLearninginTensorFlowwithtf_geometric高效且友好的API

tf_geometric使用消息传递机制来实现图神经网络:相比于基于稠密矩阵的实现,它具有更高的效率;相比于基于稀疏矩阵的实现,它具有更友好的API。除此之外,tf_geometric还为复杂的图神经网络操作提供了简易优雅的API。下面的示例展现了使用tf_geometric构建一个图结构的数据,并使用多头图注意力网络(Multi-headGAT)对图数据进行处理的流程:

#coding=utf-8importnumpyasnpimporttf_geometricastfgimporttensorflowastfgraph=tfg.Graph(x=np.random.randn(5,20),#5个节点,20维特征edge_index=[[0,0,1,3],[1,2,2,1]]#4个无向边)print("GraphDesc:\n",graph)graph.convert_edge_to_directed()#预处理边数据,将无向边表示转换为有向边表示print("ProcessedGraphDesc:\n",graph)print("ProcessedEdgeIndex:\n",graph.edge_index)#多头图注意力网络(Multi-headGAT)gat_layer=tfg.layers.GAT(units=4,num_heads=4,activation=tf.nn.relu)output=gat_layer([graph.x,graph.edge_index])print("OutputofGAT:\n",output)

输出:

GraphDesc:GraphShape:x=>(5,20)edge_index=>(2,4)y=>NoneProcessedGraphDesc:GraphShape:x=>(5,20)edge_index=>(2,8)y=>NoneProcessedEdgeIndex:[[00111223][12023011]]OutputofGAT:tf.Tensor([[0.224431590.0.582632060.32468423][0.298103570.0.194036050.35630274][0.180719760.0.582632060.32468423][0.361232280.0.888972040.450244][0.0.0.80134620.]],shape=(5,4),dtype=float32)入门教程教程列表安装环境要求与依赖库使用pip一键安装tf_geometric及依赖快速入门使用简单示例快速入门面向对象接口(OOPAPI)和函数式接口(FunctionalAPI)使用示例进行快速入门

强烈建议您通过下面的示例代码来快速入门tf_geometric:

节点分类图卷积网络GraphConvolutionalNetwork(GCN)多头图注意力网络Multi-headGraphAttentionNetwork(GAT)ApproximatePersonalizedPropagationofNeuralPredictions(APPNP)InductiveRepresentationLearningonLargeGraphs(GraphSAGE)切比雪夫网络ConvolutionalNeuralNetworksonGraphswithFastLocalizedSpectralFiltering(ChebyNet)SimpleGraphConvolution(SGC)TopologyAdaptiveGraphConvolutionalNetwork(TAGCN)DeepGraphInfomax(DGI)DropEdge:TowardsDeepGraphConvolutionalNetworksonNodeClassification(DropEdge)基于图卷积网络的文本分类GraphConvolutionalNetworksforTextClassification(TextGCN)图分类平均池化MeanPoolingGraphIsomorphismNetwork(GIN)自注意力图池化Self-AttentionGraphPooling(SAGPooling)可微池化HierarchicalGraphRepresentationLearningwithDifferentiablePooling(DiffPool)OrderMatters:SequencetoSequenceforSets(Set2Set)ASAP:AdaptiveStructureAwarePoolingforLearningHierarchicalGraphRepresentations(ASAP)AnEnd-to-EndDeepLearningArchitectureforGraphClassification(SortPool)最小割池化SpectralClusteringwithGraphNeuralNetworksforGraphPooling(MinCutPool)链接预测图自编码器GraphAuto-Encoder(GAE)保存和载入模型模型保存和载入使用tf.train.Checkpoint进行模型保存和载入分布式训练分布式图卷积网络(节点分类)分布式平均池化(图分类)引用

如果您在科研出版物中使用了tf_geometric,欢迎引用下方的论文:

@misc{hu2021efficient,title={EfficientGraphDeepLearninginTensorFlowwithtf_geometric},author={JunHuandShengshengQianandQuanFangandYouzeWangandQuanZhaoandHuaiwenZhangandChangshengXu},year={2021},eprint={2101.11552},archivePrefix={arXiv},primaryClass={cs.LG}}
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论