dgl用户文档第六章

简介

本章前三节将介绍不同场景下训练GNN模型的随机方法;

后三节则是一些比较高级的话题, 对于那些想要开发新的采样方法, 新的GNN模块来适应Mini-batch训练的人来说是可以查阅的, 后三节介绍了在Mini-batch中将如何评估以及推断模型的性能;

1、如果图的规模很大, b比如有上百万乃至数十亿的边和节点, 则上一章中提到的训练方法就无法起效了:

  • 假设一个L LL层的GCN, 隐层状态节点有H HH个, 然后在一张有N NN个节点的图上运行, 则需要至少O ( N L H ) O(NLH)O(NLH)的显存空间, 一旦N NN很大就会直接溢出;

2、因此本章主要介绍执行随机小批量训练的方法, 这样就不需要把整张图里的节点特征都输入到GPU中;

3、近邻采样方法(Neighborhood Sampling Approaches):

  • 在每一次梯度下降优化中, 选择计算一小批的节点来计算它们在网络中的最终层(假设为第L LL层)表示;

  • 然后在第L − 1 L-1L−1层选择这些节点的所有或一些近邻;

  • 这样一层层地从后往前迭代, 直到输入层;

  • 可以用这张图片来描述这个过程:

dgl用户文档第六章_第1张图片

  • 这样就可以保存workload于计算资源, 然后在一张大图上训练GNN模型

  • dgl.sampling: https://docs.dgl.ai/api/python/dgl.sampling.html ;

    • dgl.sampling模块中提供了一些近邻采样方法;

 

 

补充

参考

https://caoyang.blog.csdn.net/article/details/110629996

https://docs.dgl.ai/guide/minibatch.html

你可能感兴趣的:(dgl)