为什么在下一层为relu时禁用tf.layers.batch_normalization的参数“ scale”?

时间:2018-06-27 08:52:50

标签: python tensorflow batch-normalization

tf.layers.batch_normalization的tensorflow文档中,说“ 当下一层是线性的(例如nn.relu)时,由于缩放,可以禁用此参数('scale'的参数)可以由下一层完成。“?这似乎是错误的,因为当下一层是nn.relu时,线性系数是一个不变常数(1),并且该值不会变小。

1 个答案:

答案 0 :(得分:0)

nn.relu之后的图层通常是线性的。在ReLu之前或之后进行一些缩放不会改变任何内容(如果L是线性的,L(relu(x))=relu(L(x)) for all x),因此在Bartch归一化之后进行一次缩放并在下一层进行缩放是多余的。

因此,如果在ReLu之后还有另一个线性图层,通常可以在批处理规范之后跳过紧随ReLu的缩放。