gpt4 book ai didi

python - 如何正确训练 tf.keras.layers.BatchNormalization : Is there still a tf. GraphKeys.UPDATE_OPS 依赖项?

转载 作者:行者123 更新时间:2023-11-28 18:58:15 27 4
gpt4 key购买 nike

我的目标是如何使用推荐的 tf.keras.layers.BatchNormalization 类 (https://www.tensorflow.org/api_docs/python/tf/keras/layers/BatchNormalization) 在 TensorFlow(TensorFlow 版本 1.13.1,适用于图形模式下的 Python)中正确训练批量归一化层。

较早的推荐方法是使用 tf.layers.batch_normalization。文档 ( https://www.tensorflow.org/api_docs/python/tf/layers/batch_normalization ) 表明它目前正在弃用而不是支持 tf.keras.layers.BatchNormalization。

在使用旧类时,文档指出我们必须显式地添加对均值和方差更新操作的依赖,否则这将是训练操作中任何依赖之外的悬挂节点:

update_ops_including_from_batch_norms  =  tf.get_collection(tf.GraphKeys.UPDATE_OPS)
with tf.control_dependencies(update_ops):
my_optimizer = tf.super_cool_optimizer(loss)

我的问题:在 TF 1.13 中使用 tf.keras.layers.BatchNormalization 训练批量规范时,是否仍然需要明确依赖 UPDATE_OPS?我没有在文档中看到这一点,但是,如果有人确定(并且如果可以指向官方文档或代码则更好)这些操作依赖性是隐式处理的,我会更舒服。

最佳答案

答案是否定的,不需要。在 https://www.tensorflow.org/api_docs/python/tf/layers/batch_normalization 的当前文档中提到了它.

附带说明一下,我目前正在使用 tf.layers.BatchNormalization 并显式依赖 UPDATE_OPS(TF 版本 1.10),因为 tf.layers.keras.BatchNormalization 对我来说似乎有问题。使用 tf.layers.keras.BatchNormalization 时我的模型验证失败。也许它已在最近的更新中得到修复。

关于python - 如何正确训练 tf.keras.layers.BatchNormalization : Is there still a tf. GraphKeys.UPDATE_OPS 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55718702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com