tensorflow下的图片标准化函数per | 您所在的位置:网站首页 › image/4/step6swap15.gif › tensorflow下的图片标准化函数per |
实验环境:windows 7,anaconda 3(Python 3.5),tensorflow(gpu/cpu) 函数介绍:标准化处理可以使得不同的特征具有相同的尺度(Scale)。这样,在使用梯度下降法学习参数的时候,不同特征对参数的影响程度就一样了。tf.image.per_image_standardization(image),此函数的运算过程是将整幅图片标准化(不是归一化),加速神经网络的训练。主要有如下操作,(x - mean) / adjusted_stddev,其中x为图片的RGB三通道像素值,mean分别为三通道像素的均值,adjusted_stddev = max(stddev, 1.0/sqrt(image.NumElements()))。stddev为三通道像素的标准差,image.NumElements()计算的是三通道各自的像素个数。 实验代码: import tensorflow as tf import matplotlib.image as img import matplotlib.pyplot as plt import numpy as np sess = tf.InteractiveSession() image = img.imread('D:/Documents/Pictures/logo7.jpg') shape = tf.shape(image).eval() h,w = shape[0],shape[1] standardization_image = tf.image.per_image_standardization(image)#标准化 fig = plt.figure() fig1 = plt.figure() ax = fig.add_subplot(111) ax.set_title('orginal image') ax.imshow(image) ax1 = fig1.add_subplot(311) ax1.set_title('original hist') ax1.hist(sess.run(tf.reshape(image,[h*w,-1]))) ax1 = fig1.add_subplot(313) ax1.set_title('standardization hist') ax1.hist(sess.run(tf.reshape(standardization_image,[h*w,-1]))) plt.ion() plt.show()实验结果: 两幅hist图分别是原图和标准化后的RGB的像素值分布图,可以看到只是将图片的像素值大小限定到一个范围,但是像素值的分布为改变。 |
CopyRight 2018-2019 实验室设备网 版权所有 |