code: def graph_structure(self, x):
      x1, x2 = tf.split(x, 2, axis=0)
      x1x2 = tf.reshape(x, [1, -1, self.height, self.width])  # 1(2C)HW
  
      # FlowNet-C
      flownetc_flow2 = FlowNet2C().graph_structure(x)
      flownetc_flow = resize(
          flownetc_flow2 * DISP_SCALE, mode="bilinear"
      )
  
      resampled_img1 = resample(x2, flownetc_flow)
      norm_diff_img0 = channel_norm(x1 - resampled_img1)
  
      # FlowNet-S
      concat1 = tf.concat(
          [
              x1x2,
              resampled_img1,
              flownetc_flow / DISP_SCALE,
              norm_diff_img0,
          ],
          axis=1,
      )
      with tf.variable_scope("flownet_s1"):
          flownets1_flow2 = FlowNet2S().graph_structure(
              concat1, standalone=False
          )
      flownets1_flow = resize(
          flownets1_flow2 * DISP_SCALE, mode="bilinear"
      )
  
      resampled_img1 = resample(x2, flownets1_flow)
      norm_diff_img0 = channel_norm(x1 - resampled_img1)
  
      # FlowNet-S
      concat2 = tf.concat(
          [
              x1x2,
              resampled_img1,
              flownets1_flow / DISP_SCALE,
              norm_diff_img0,
          ],
          axis=1,
      )
      with tf.variable_scope("flownet_s2"):
          flownets2_flow2 = FlowNet2S().graph_structure(
              concat2, standalone=False
          )
      flownets2_flow = resize(
          flownets2_flow2 * DISP_SCALE, mode="nearest"
      )
  
      norm_flownets2_flow = channel_norm(flownets2_flow)
      diff_flownets2_flow = resample(x2, flownets2_flow)
      diff_flownets2_img1 = channel_norm(x1 - diff_flownets2_flow)
  
      # FlowNet-SD
      with tf.variable_scope("flownet_sd"):
          flownetsd_flow = self.flownet2_sd(x1x2)
  
      norm_flownetsd_flow = channel_norm(flownetsd_flow)
      diff_flownetsd_flow = resample(x2, flownetsd_flow)
      diff_flownetsd_img1 = channel_norm(x1 - diff_flownetsd_flow)
  
      concat3 = tf.concat(
          [
              x1,
              flownetsd_flow,
              flownets2_flow,
              norm_flownetsd_flow,
              norm_flownets2_flow,
              diff_flownetsd_img1,
              diff_flownets2_img1,
          ],
          axis=1,
      )
  
      # FlowNet-Fusion
      with tf.variable_scope("flownet_fusion"):
          flownetfusion_flow = self.flownet2_fusion(concat3)
  
      return flownetfusion_flow
  
imports: import tensorflow
  from tensorpack import ModelDesc, argscope, enable_argscope_for_module
label_desc: Use image node_id 2 for calling the FlowNet2 obj's underlying member method code with example usage: obj.graph_structure(x) and returns: flownetfusion_flow