如何使用Tensorflow执行平均减法和归一化

时间:2016-08-03 12:20:50

标签: python tensorflow

http://cs231n.github.io/neural-networks-2/上提到,对于卷积神经网络,最好使用平均减法和归一化技术预处理数据。

我只是想知道如何使用Tensorflow最好地接近它。

平均减法

X -= np.mean(X)

正常化

X /= np.std(X, axis = 0)

3 个答案:

答案 0 :(得分:7)

您正在寻找

  1. tf.image.per_image_whitening(image)如果您使用Tensorflow版本< r0.12
  2. tf.image.per_image_standardization(image)否则。
  3.   

    线性缩放图像,使其具有零均值和单位范数。

         

    此操作计算(x - mean)/ adjusted_stddev,其中mean是图像中所有值的平均值,adjust_stddev = max(stddev,1.0 / sqrt(image.NumElements()))。

答案 1 :(得分:1)

查看feature columns的源代码我注意到real_valued_column类型有一个关键字参数normalizer,可以将默认规范化函数作为参数应用于张量的每个元素:

real_valued_column("col_name", normalizer = lambda x: (x-X.mean())/X.std())

其中X是您的数据。我认为这里的优点是可以在专用机器上的张量流图中应用归一化。标准化功能也可以轻松定制。

答案 2 :(得分:1)

最好的技巧是使用tf.image.per_image_standardization。 阅读文档https://www.tensorflow.org/api_docs/python/tf/image/per_image_standardization 欲获得更多信息。