有没有办法在tensorflow中为conv2d添加规范化

时间:2017-04-29 20:43:12

标签: tensorflow normalization convolution

为了正确地进行模式匹配,卷积需要归一化 https://en.wikipedia.org/wiki/Cross-correlation#Normalized_cross-correlation

遗憾的是,我找不到如何为conv2d函数进行输入规范化的方法。

隐藏在实施中吗?

3 个答案:

答案 0 :(得分:0)

如果我没有误读,那就是TF 1.x中的图像库:

tf.image.per_image_standardization

https://www.tensorflow.org/api_guides/python/image

顺便说一下,这个特定的功能有点烦人,因为它只需要一个图像作为输入(3D),但是你通常有一个4D张量代表[batch, height, width, channels]的图像。要将该功能应用于一批图像,您可以执行以下操作:

imgs4d = tf.map_fn(tf.image.per_image_standardization, imgs4d_float32)

答案 1 :(得分:0)

tf.image.per_image_standardization完全符合您的要求。

  

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

     

这个op计算(x - mean)/ adjusted_stddev,其中mean是   图像中所有值的平均值,adjust_stddev = max(stddev,   1.0 / SQRT(image.NumElements()))。

     

stddev是图像中所有值的标准偏差。有上限   处理制服时,远离零以防止分裂0   图像。

您需要在预处理步骤中执行此规范化(类似于您要调整大小的位置)。另请查看其他image-related functions

答案 2 :(得分:0)

事实证明,我正在寻找tf.local_response_normalization(https://www.tensorflow.org/versions/r0.11/api_docs/python/nn/normalization),因为它出现在conv2图层之后的一些奇怪的原因并且在例子中并不经常使用