python - TimeDistributed(BatchNormalization) 与 BatchNormalization

标签 python keras deep-learning neural-network

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

如果我们直接应用 BatchNormalization 层而不是 TimeDistributed 层,则将计算所有 10 个时间步长的均值和方差作为一个整体。 然而,包裹在 TimeDistributed 层中的 BatchNormalization 将计算形状为 ( 1 , 128 , 128 , 3 ) 的批处理的均值和方差,即对于每个时间步。

关于python - TimeDistributed(BatchNormalization) 与 BatchNormalization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61733280/

相关文章:

python - 使用 Selenium 在网页上抓取隐藏的产品详细信息

python - 加速初始 TensorFlow 启动

python - 如何根据 Keras 中的另一个数组建立索引

tensorflow - 如何处理keras中多元LSTM的多步时间序列预测

python - 使用 exec() 动态调用异步函数

python - Twisted > 如何读取比 TCP 帧长度更长的 TCP 消息,例如来自窗口 TCP 客户端的 1380 字节

python - 形状为 (15000, 250) 的目标数组被传递给形状为 (None, 1) 的输出,同时用作损失 `binary_crossentropy` 。我该怎么办?

deep-learning - 如何加快 Gensim Word2vec 模型加载时间?

python - 在 virtualenv 中无法 "import matplotlib.pyplot as plt"

machine-learning - 如果输出层(标签)由 one-hot 向量和零向量组成,应使用什么损失函数?