code: def fc_layer(
      _input, out_units, use_bias=False, param_initializer=None
  ):
      features_total = int(_input.get_shape()[-1])
      if not param_initializer:
          param_initializer = {}
      W = BasicModel.weight_variable(
          [features_total, out_units],
          name="W",
          initializer=param_initializer.get(
              "W", tf.contrib.layers.xavier_initializer()
          ),
      )
      output = tf.matmul(_input, W)
      if use_bias:
          bias = BasicModel.weight_variable(
              [out_units],
              name="bias",
              initializer=param_initializer.get(
                  "bias", tf.constant_initializer([0.0] * out_units)
              ),
          )
          output += bias
      return output
  
imports: import os
  import shutil
  import tensorflow
  import numpy
  import time
  from datetime import timedelta
  import json
  import pickle
label_desc: Use image node_id 22 for calling the BasicModel obj's underlying member method code with example usage: obj.fc_layer(_input, out_units, use_bias, param_initializer) and returns: output