code: def layer(op):
      """Decorator for composable network layers."""
  
      def layer_decorated(self, *args, **kwargs):
          # Automatically set a name if not provided.
          name = kwargs.setdefault(
              "name", self.get_unique_name(op.__name__)
          )
          # Figure out the layer inputs.
          assert len(args) >= 1
          if len(args) == 1:
              layer_inputs = args[0]
          else:
              layer_inputs = list(args)
          layer_output = op(self, layer_inputs, **kwargs)
          # print('op: %s   shape: %s' % (op, layer_output._keras_shape))
          # print('op: %s   shape: %s' % (op, layer_output.get_shape().as_list()))
          # Add to layer LUT.
          self.layers[name] = layer_output
          self.output = layer_output
          return layer_output
  
      return layer_decorated
  
imports: import numpy
label_desc: Use image node_id 1 for calling a global function with example usage: layer(op) and returns: layer_decorated, layer_output