                              kernel_size=kernel_size,
                              padding=padding,
                              **kwargs)
          var_x = Add()([var_x, inp])
          var_x = LeakyReLU(alpha=0.2)(var_x)
          return var_x
  
      # <<< Unbalanced Model Blocks >>> #
      def conv_sep(self, inp, filters, kernel_size=5, strides=2, **kwargs):
          """ Seperable Convolution Layer """
 
</s> remove             var_x = PixelShuffler()(var_x)
 </s> add             var_x = PixelShuffler(name="{}_pixelshuffler".format(name))(var_x) </s> remove             var_x = SubPixelUpscaling()(var_x)
 </s> add             var_x = SubPixelUpscaling(name="{}_subpixel".format(name))(var_x) </s> remove             var_x = LeakyReLU(0.1)(var_x)
 </s> add             var_x = LeakyReLU(0.1, name="{}_leakyrelu".format(name))(var_x)
        var_x = LeakyReLU(alpha=0.2, name="{}_leakyrelu_3".format(name))(var_x)
                              kernel_size=kernel_size,
                              padding=padding,
                              **kwargs)
          var_x = Add()([var_x, inp])
        var_x = LeakyReLU(alpha=0.2, name="{}_leakyrelu_3".format(name))(var_x)
          return var_x
  
      # <<< Unbalanced Model Blocks >>> #
      def conv_sep(self, inp, filters, kernel_size=5, strides=2, **kwargs):
          """ Seperable Convolution Layer """
keep keep keep keep replace keep keep keep keep keep
 Model Structure Changes

Standardize inputs for AutoEncoders
Name outputs from AutoEncoders
Name layers in nn_blocks.py 
lib/model/nn_blocks.py