深度学习中,当一块GPU不够用时,我们就需要使用多卡进行并行训练。其中多卡并行可分为数据并行和模型并行。具体区别如下图所示: 由于模型并行比较少用,这里只对数据并行进行记录。对于pytorch,有两种方式可以进行数据并行:数据并行(DataParallel,DP)和分布式数据并行(DistributedDataParallel,DDP)。 在多卡训练的实现上,DP与DDP的思路是相似的: 1、每张卡都复制一个有相同参数的模型副本。 2、每次迭代,每张卡分别输入不同批次数据,分别计算梯度。 3、DP与DDP的主要不同在于接下来的多卡通信: DP的多卡交互实现在一个进...
图神经网络(GNN)目前的主流实现方式就是节点之间的信息汇聚,也就是类似于卷积网络的邻域加权和,比如图卷积网络(GCN)、图注意力网络(GAT)等。下面根据GCN的实现原理使用Pytorch张量,和调用torch_geometric包,分别对Cora数据集进行节点分类实验。 Cora是关于科学文献之间引用关系的图结构数据集。数据集包含一个图,图中包括2708篇文献(节点)和10556个引用关系(边)。其中每个节点都有一个1433维的特征向量,即文献内容的嵌入向量。文献被分为七个类别:计算机科学、物理学等。 GCN计算流程 对于某个GCN层,假设输入图的节点特征为$X\inR^{|V...