parameters: (image)
return_statement: return image
docstring: Linearly scales `image` to have zero mean and unit norm.
  
    This op computes `(x - mean) / adjusted_stddev`, where `mean` is the average
    of all values in image, and
    `adjusted_stddev = max(stddev, 1.0/sqrt(image.NumElements()))`.
  
    `stddev` is the standard deviation of all values in `image`. It is capped
    away from zero to protect against division by 0 when handling uniform images.
  
    Args:
      image: 3-D tensor of shape `[height, width, channels]`.
  
    Returns:
      The standardized image with same shape as `image`.
  
    Raises:
      ValueError: if the shape of 'image' is incompatible with this function.
docstring_summary: Linearly scales `image` to have zero mean and unit norm.
docstring_tokens: Linearly scales image to have zero mean and unit norm .
function: def per_image_standardization(image):
    """Linearly scales `image` to have zero mean and unit norm.
  
    This op computes `(x - mean) / adjusted_stddev`, where `mean` is the average
    of all values in image, and
    `adjusted_stddev = max(stddev, 1.0/sqrt(image.NumElements()))`.
  
    `stddev` is the standard deviation of all values in `image`. It is capped
    away from zero to protect against division by 0 when handling uniform images.
  
    Args:
      image: 3-D tensor of shape `[height, width, channels]`.
  
    Returns:
      The standardized image with same shape as `image`.
  
    Raises:
      ValueError: if the shape of 'image' is incompatible with this function.
    """
    image = ops.convert_to_tensor(image, name='image')
    image = control_flow_ops.with_dependencies(
        _Check3DImage(image, require_static=False), image)
    num_pixels = math_ops.reduce_prod(array_ops.shape(image))
  
    image = math_ops.cast(image, dtype=dtypes.float32)
    image_mean = math_ops.reduce_mean(image)
  
    variance = (math_ops.reduce_mean(math_ops.square(image)) -
                math_ops.square(image_mean))
    variance = gen_nn_ops.relu(variance)
    stddev = math_ops.sqrt(variance)
  
    # Apply a minimum normalization that protects us against uniform images.
    min_stddev = math_ops.rsqrt(math_ops.cast(num_pixels, dtypes.float32))
    pixel_value_scale = math_ops.maximum(stddev, min_stddev)
    pixel_value_offset = image_mean
  
    image = math_ops.subtract(image, pixel_value_offset)
    image = math_ops.div(image, pixel_value_scale)
    return image
function_tokens: def per_image_standardization ( image ) : image = ops . convert_to_tensor ( image , name = 'image' ) image = control_flow_ops . with_dependencies ( _Check3DImage ( image , require_static = False ) , image ) num_pixels = math_ops . reduce_prod ( array_ops . shape ( image ) ) image = math_ops . cast ( image , dtype = dtypes . float32 ) image_mean = math_ops . reduce_mean ( image ) variance = ( math_ops . reduce_mean ( math_ops . square ( image ) ) - math_ops . square ( image_mean ) ) variance = gen_nn_ops . relu ( variance ) stddev = math_ops . sqrt ( variance ) # Apply a minimum normalization that protects us against uniform images. min_stddev = math_ops . rsqrt ( math_ops . cast ( num_pixels , dtypes . float32 ) ) pixel_value_scale = math_ops . maximum ( stddev , min_stddev ) pixel_value_offset = image_mean image = math_ops . subtract ( image , pixel_value_offset ) image = math_ops . div ( image , pixel_value_scale ) return image