docstr: :param x:   (batch, N, 9)
  :param adj: (batch, 4, N, N)
  
  :param x_deq: (batch, N, 9)
  :param adj_deq:  (batch, edge_num, 4)
  :return:
  x_deq: (batch, N, 9)
  adj_deq: (batch, edge_num, 4)
docstr_tok: [":","param","x",":","(","batch",",","N",",","9",")",":","param","adj",":","(","batch",",","4",",","N",",","N",")",":","param","x_deq",":","(","batch",",","N",",","9",")",":","param","adj_deq",":","(","batch",",","edge_num",",","4",")",":","return",":","x_deq",":","(","batch",",","N",",","9",")","adj_deq",":","(","batch",",","edge_num",",","4",")"]
code: def forward(self, x, adj, x_deq, adj_deq):
      """
      :param x:   (batch, N, 9)
      :param adj: (batch, 4, N, N)
  
      :param x_deq: (batch, N, 9)
      :param adj_deq:  (batch, edge_num, 4)
      :return:
      x_deq: (batch, N, 9)
      adj_deq: (batch, edge_num, 4)
      """
      # inputs for RelGCNs
      graph_emb_node, graph_node_emb_edge = self._get_embs(x, adj)
  
      for i in range(self.num_flow_layer):
          # update x_deq
          node_t = self.node_st_net[i](graph_emb_node).type(x.dtype)
          x_deq = one_hot_add(x_deq, node_t)
  
          # update adj_deq
          edge_t = self.edge_st_net[i](graph_node_emb_edge).type(
              adj.dtype
          )
          adj_deq = one_hot_add(adj_deq, edge_t)
  
      return [x_deq, adj_deq]
  
file_path: DIG/dig/ggraph/method/GraphDF/model/disgraphaf.py
imports: import torch
  from torch import nn
  from .st_net import ST_Dis
  from .df_utils import one_hot_add, one_hot_minus
  from .rgcn import RGCN
label_desc: Use image node_id 2 for calling the DisGraphAF obj's underlying member method code with example usage: obj.forward(x, adj, x_deq, adj_deq) and returns: list