code: def analogy_computation_2d(f_first_enc,
                             f_first_frame,
                             f_current_enc,
                             first_depth):
    
    with tf.variable_scope('analogy_computation'):
  
      frame_enc_diff = f_first_frame - f_first_enc
  
      frame_enc_diff_enc = tf.layers.conv2d(
          frame_enc_diff,
          first_depth * 4,
          3,
          padding='same',
          activation=tf.nn.relu,
          strides=1)
      f_current_enc_enc = tf.layers.conv2d(
          f_current_enc,
          first_depth * 4,
          3,
          padding='same',
          activation=tf.nn.relu,
          strides=1)
  
      analogy = tf.concat([frame_enc_diff_enc, f_current_enc_enc], 3)
      analogy = tf.layers.conv2d(
          analogy,
          first_depth * 4,
          3,
          padding='same',
          activation=tf.nn.relu,
          strides=1)
      analogy = tf.contrib.layers.layer_norm(analogy)
      analogy = tf.layers.conv2d(
          analogy,
          first_depth * 4,
          3,
          padding='same',
          activation=tf.nn.relu,
          strides=1)
      return tf.layers.conv2d(
          analogy,
          first_depth * 4,
          3,
          padding='same',
          activation=tf.nn.relu,
          strides=1)
docs: Implements the deep analogy computation.