human
Complete this python program:
def lo_regularizer(scale, scope=None):
assistant
#Here is the Python program you requested.

    """lo regularization removes the neurons of current layer, `o` represents `outputs`
    Returns a function that can be used to apply group lo regularization to weights.
    The implementation follows `TensorFlow contrib <https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/layers/python/layers/regularizers.py>`_.
    Parameters
    scale : float
    A scalar multiplier `Tensor`. 0.0 disables the regularizer.
    scope: An optional scope name for TF12+.
    Returns
    A function with signature `lo(weights, name=None)` that apply Lo regularization.
    Raises
    ValueError : If scale is outside of the range [0.0, 1.0] or if scale is not a float.
    """
    import numbers
    from tensorflow.python.framework import ops
    from tensorflow.python.ops import standard_ops
    if isinstance(scale, numbers.Integral):
        raise ValueError(('scale    cannot    be    an    integer:    %s' % scale))
    if isinstance(scale, numbers.Real):
        if (scale < 0.0):
            raise ValueError(('Setting    a    scale    less    than    0    on    a    regularizer:    %g' % scale))
        if (scale >= 1.0):
            raise ValueError(('Setting    a    scale    greater    than    1    on    a    regularizer:    %g' % scale))
        if (scale == 0.0):
            logging.info('Scale    of    0    disables    regularizer.')
            return (lambda _, name=None: None)
    def lo(weights, name='lo_regularizer'):
        'Applies    group    column    regularization    to    weights.'
        with tf.name_scope(name) as scope:
            my_scale = ops.convert_to_tensor(scale, dtype=weights.dtype.base_dtype, name='scale')
            standard_ops_fn = standard_ops.multiply
            return standard_ops_fn(my_scale, standard_ops.reduce_sum(standard_ops.sqrt(standard_ops.reduce_sum(tf.square(weights), 0))), name=scope)
    return lo