tensorflow-2.0 技巧 | ImageNet 归一化

_MEAN_RGB = [123.15, 115.90, 103.06]
def _preprocess_subtract_imagenet_mean(inputs):
    """Subtract Imagenet mean RGB value."""
    mean_rgb = tf.reshape(_MEAN_RGB, [1, 1, 1, 3])
    print("mean_rgb:
", mean_rgb)
    return inputs - mean_rgb
inputs = tf.random.uniform(shape=[2, 448, 448, 3], maxval=255)
print("inputs:
", inputs)
imgs_new = _preprocess_subtract_imagenet_mean(inputs)
print("imgs_sub:
", imgs_new)

tensorflow-2.0 技巧 |  ImageNet 归一化
会Boardcast!
– 从最后面的维度开始匹配。
– 在前面插入若干维度。
– 将维度的size从1通过expand变到和某个Tensor相同的维度。

总之,Broadcasting操作就是自动实现了若干unsqueeze和expand操作,以使两个tensor的shape一致,从而完成某些操作(往往是加法)。