为了正确地进行模式匹配,卷积需要归一化 https://en.wikipedia.org/wiki/Cross-correlation#Normalized_cross-correlation
遗憾的是,我找不到如何为conv2d函数进行输入规范化的方法。
隐藏在实施中吗?
答案 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图层之后的一些奇怪的原因并且在例子中并不经常使用