class_docstr: Base class for the layers.
  
  Parameters
  ----------
  name : str or None
      Layer's name. Can be used as a reference to specific layer. Name
      Can be specified as:
  
          - String: Specified name will be used as a direct reference to
            the layer. For example, `name="fc"`
  
          - Format string: Name pattern could be defined as a format string
            and specified field will be replaced with an index. For example,
            `name="fc{{}}"` will be replaced with `fc1`, `fc2` and so on.
            A bit more complex formatting methods are acceptable, for
            example, `name="fc-{{:<03d}}"` will be converted to `fc-001`,
            `fc-002`, `fc-003` and so on.
  
          - ``None``: When value specified as ``None`` than name will be
            generated from the class name.
  
      Defaults to ``None``.
  
  Methods
  -------
  variable(value, name, shape=None, trainable=True)
      Initializes variable with specified values.
  
  get_output_shape(input_shape)
      Computes expected output shape from the layer based on the
      specified input shape.
  
  output(*inputs, **kwargs)
      Propagates input through the layer. The ``kwargs``  variable
      might contain additional information that propagates through the
      network.
  
  Attributes
  ----------
  variables : dict
      Variable names and their values. Dictionary can be empty in case
      if variables hasn't been created yet.
class_docstr_tok: ["Base","class","for","the","layers",".","Parameters","--","--","--","--","--","name",":","str","or","None","Layer","'s","name",".","Can","be","used","as","a","reference","to","specific","layer",".","Name","Can","be","specified","as",":","-","String",":","Specified","name","will","be","used","as","a","direct","reference","to","the","layer",".","For","example",",","`","name=","''","fc","''","`","-","Format","string",":","Name","pattern","could","be","defined","as","a","format","string","and","specified","field","will","be","replaced","with","an","index",".","For","example",",","`","name=","''","fc","{","{","}","}","''","`","will","be","replaced","with","`","fc1","`",",","`","fc2","`","and","so","on",".","A","bit","more","complex","formatting","methods","are","acceptable",",","for","example",",","`","name=","''","fc-","{","{",":","<","03d","}","}","''","`","will","be","converted","to","`","fc-001","`",",","`","fc-002","`",",","`","fc-003","`","and","so","on",".","-","``","None","``",":","When","value","specified","as","``","None","``","than","name","will","be","generated","from","the","class","name",".","Defaults","to","``","None","``",".","Methods","--","--","--","-","variable","(","value",",","name",",","shape=None",",","trainable=True",")","Initializes","variable","with","specified","values",".","get_output_shape","(","input_shape",")","Computes","expected","output","shape","from","the","layer","based","on","the","specified","input","shape",".","output","(","*","inputs",",","*","*","kwargs",")","Propagates","input","through","the","layer",".","The","``","kwargs","``","variable","might","contain","additional","information","that","propagates","through","the","network",".","Attributes","--","--","--","--","--","variables",":","dict","Variable","names","and","their","values",".","Dictionary","can","be","empty","in","case","if","variables","has","n't","been","created","yet","."]
code: def __copy__(self):
      params = self.get_params()
      # We make sure that new name will be created if user
      # specified name=None
      params["name"] = self.original_name
  
      copied_layer = self.__class__(**params)
      # Input shape can change and it cannot be controlled from
      # the __init__ method
      copied_layer.input_shape = self.input_shape
  
      return copied_layer
  
imports: import re
  import copy
  import types
  import string
  import inspect
  from functools import partial
  from collections import OrderedDict, defaultdict
  import six
  import numpy
  import tensorflow
  from neupy.exceptions import LayerConnectionError
  from neupy.core.properties import Property, TypedListProperty
  from neupy.utils import as_tuple, tf_utils
  from neupy.layers.graph import BaseGraph, make_one_if_possible
label_desc: Use image node_id 10 for calling the BaseLayer obj's underlying member method code with example usage: obj.__copy__() and returns: copied_layer