import tensorflow as tf

    if self.is_summary:
      train_writer.close()
      validation_writer.close()

  def _feature_matching_loss(self, real_data_features, fake_data_features):
    real_data_mean = tf.reduce_mean(real_data_features, axis=0)
    fake_data_mean = tf.reduce_mean(fake_data_features, axis=0)
    feature_loss = tf.reduce_mean(tf.abs(tf.subtract(real_data_mean, fake_data_mean)))

    return feature_loss

  def _tower_loss_semi_supervised(self, inputs, targets, gpu_idx=0, num_classes=11,
                                  is_fm_loss=False):
    with tf.variable_scope("train_specific"):
