BatchNormalization和TimeDistributed(BatchNormalization)对顺序数据(例如视频)是否具有相同的影响?如果没有,有什么区别?
在tf.keras.layers.TimeDistributed的文档中,您会注意到,
>> inputs = tf.keras.Input(shape=(10, 128, 128, 3))
>> conv_2d_layer = tf.keras.layers.Conv2D(64, (3, 3))
>> outputs = tf.keras.layers.TimeDistributed(conv_2d_layer)(inputs)
>> outputs.shape
基本上,包裹的图层TimeDistributed
将应用于每个时间步。意思是,在上面的代码示例中,Conv2D
一层位于所有10个时间步的下方。同样适用于BatchNormalization
。
取而代之的TimeDistributed
层,如果我们采用一种BatchNormalization
直接层,均值和方差会被计算为所有的10个时间步作为一个整体。而BatchNormalization
包裹在TimeDistributed
一层中的将计算一批形状(( 1 , 128 , 128 , 3 )
即每个时间步长)的均值和方差。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句