在http://cs231n.github.io/neural-networks-2/上提到,对于卷积神经网络,最好使用平均减法和归一化技术预处理数据。
我只是想知道如何使用Tensorflow最好地接近它。
平均减法
X -= np.mean(X)
正常化
X /= np.std(X, axis = 0)
答案 0 :(得分:7)
您正在寻找
tf.image.per_image_whitening(image)
如果您使用Tensorflow版本< r0.12 tf.image.per_image_standardization(image)
否则。线性缩放图像,使其具有零均值和单位范数。
此操作计算(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
欲获得更多信息。