code: def forward(self, graph, feature, norm=None):
      TEMP = F.relu(self.temp)
      norm = GF.degree_norm(graph)
      tmp = []
      tmp.append(feature)
      for i in range(self.K):
          h0 = feature
          feature = feature * norm
          feature = graph.send_recv(feature)
          feature = feature * norm
          feature = h0 + feature
          tmp.append(feature)
      out = (comb(self.K, 0) / (2**self.K)) * TEMP[0] * tmp[self.K]
      for i in range(self.K):
          feature = tmp[self.K - i - 1]
          h0 = feature
          feature = feature * norm
          feature = graph.send_recv(feature)
          feature = feature * norm
          feature = h0 - feature
          for j in range(i):
              h0 = feature
              feature = feature * norm
              feature = graph.send_recv(feature)
              feature = feature * norm
              feature = h0 - feature
          out = (
              out
              + (comb(self.K, i + 1) / (2**self.K))
              * TEMP[i + 1]
              * feature
          )
      return out
  
file_path: PGL/examples/bernnet/propagation.py
imports: import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  import pgl
  from pgl.nn import functional
  import math
  from scipy.special import comb
label_desc: Use image node_id 2 for calling the BernProp obj's underlying member method code with example usage: obj.forward(graph, feature, norm) and returns: out