Keras 3 API 文档 / KerasCV / / 正则化层 / 随机深度层

随机深度层

[来源]

StochasticDepth

keras_cv.layers.StochasticDepth(rate=0.5, **kwargs)

实现随机深度层。它在残差架构中随机丢弃残差分支。它用作加法运算的直接替换。请注意,此层不会跨单个样本而是跨整个批次丢弃残差块。

参考文献

参数

  • rate: 浮点数,残差分支被丢弃的概率。

示例

StochasticDepth 可在残差网络中使用,如下所示

# (...)
input = tf.ones((1, 3, 3, 1), dtype=tf.float32)
residual = keras.layers.Conv2D(1, 1)(input)
output = keras_cv.layers.StochasticDepth()([input, residual])
# (...)

在训练时,StochasticDepth 返回:$$ x[0] + b_l * x[1], $$ 其中 $b_l$ 是一个概率为 $P(b_l = 1) = rate$ 的随机伯努利变量。在测试时,StochasticDepth 根据丢弃率 ($rate$) 对残差分支的激活进行重新缩放:$$ x[0] + (1 - rate) * x[1] $$