class_docstr: GraphSAGE layer from `Inductive Representation Learning on
  Large Graphs <https://arxiv.org/pdf/1706.02216.pdf>`__
class_docstr_tok: ["GraphSAGE","layer","from","`","Inductive","Representation","Learning","on","Large","Graphs","<","https",":","\/\/arxiv.org\/pdf\/1706.02216.pdf",">","`","__"]
code: def forward(self, A, feat):
      feat_src = feat
      feat_dst = feat[: A.shape[1]]
  
      # Aggregator type: mean.
      srcdata = self.fc_neigh(feat_src)
      # Divided by degree.
      D_hat = dglsp.diag(A.sum(0)) ** -1
      A_div = A @ D_hat
      # Conv neighbors.
      dstdata = A_div.T @ srcdata
  
      rst = self.fc_self(feat_dst) + dstdata
      return rst
  
imports: import argparse
  from functools import partial
  import dgl.graphbolt
  import dgl.sparse
  import torch
  import torch.nn
  import torch.nn.functional
  import torchmetrics.functional
  from dgl.graphbolt.subgraph_sampler import SubgraphSampler
  from torch.utils.data import functional_datapipe
label_desc: Use image node_id 3 for calling the SAGEConv obj's underlying member method code with example usage: obj.forward(A, feat) and returns: rst