Linearly scales each image in image
to have mean 0 and variance 1.
tf.image.per_image_standardization(
image
)
For each 3D image x
in image
, computes (x  mean) / adjusted_stddev
,
where
mean
is the average of all values in x
adjusted_stddev = max(stddev, 1.0/sqrt(N))
is capped away from 0 to
protect against division by 0 when handling uniform images
N
is the number of elements in x
stddev
is the standard deviation of all values in x
Example Usage:
image = tf.constant(np.arange(1, 13, dtype=np.int32), shape=[2, 2, 3])
image # 3D tensor
<tf.Tensor: shape=(2, 2, 3), dtype=int32, numpy=
array([[[ 1, 2, 3],
[ 4, 5, 6]],
[[ 7, 8, 9],
[10, 11, 12]]], dtype=int32)>
new_image = tf.image.per_image_standardization(image)
new_image # 3D tensor with mean ~= 0 and variance ~= 1
<tf.Tensor: shape=(2, 2, 3), dtype=float32, numpy=
array([[[1.593255 , 1.3035723 , 1.0138896 ],
[0.7242068 , 0.4345241 , 0.14484136]],
[[ 0.14484136, 0.4345241 , 0.7242068 ],
[ 1.0138896 , 1.3035723 , 1.593255 ]]], dtype=float32)>
Args 
image

An nD Tensor with at least 3 dimensions, the last 3 of which are
the dimensions of each image.

Returns 
A Tensor with the same shape as image and its dtype is float32 .

Raises 
ValueError

The shape of image has fewer than 3 dimensions.
