gpt4 book ai didi

python - Batch Norm - 在 TensorFlow 中提取运行均值和运行方差

转载 作者:行者123 更新时间:2023-11-28 18:14:32 24 4
gpt4 key购买 nike

我正在尝试查看通过 GCMLE 导出的经过训练的 tensorflow 模型的运行均值和运行方差(saved_model.pbassets/* & 变量/*)。这些值保存在图中的什么位置?我可以从 tf.GraphKeys.TRAINABLE_VARIABLES 访问 gamma/beta 值,但我无法在任何 tf.GraphKeys.MODEL_VARIABLES 中找到运行平均值和运行方差.运行均值和运行方差是否存储在其他地方?

我知道在测试时(即 Modes.EVAL),运行均值和运行方差用于对输入数据进行归一化,然后使用 gamma 和 beta 对归一化数据进行缩放和移动.我试图查看推理时需要的所有变量,但找不到运行均值和运行方差。这些是否仅在测试时使用而不在推理时使用(Modes.PREDICT)?如果是这样,那就可以解释为什么我在导出的模型中找不到它们,但我希望它们在那里。

基于 tf.GraphKeys我已经尝试过其他东西,比如 tf.GraphKeys.MOVING_AVERAGE_VARIABLES 但它们也是空的。我还在 batch_normalization 文档中看到了这一行“注意:训练时,需要更新 moving_mean 和 moving_variance。默认情况下,更新操作放在 tf.GraphKeys.UPDATE_OPS 中,因此它们需要添加为对 train_op 的依赖。”所以我然后尝试从我保存的模型中查看 tf.GraphKeys.UPDATE_OPS 并且它们包含一个分配操作 batch_normalization/AssignMovingAvg:0 但仍然不清楚我将在哪里获得值(value)来自。

最佳答案

移动均值和移动方差似乎存储在 tf.GraphKeys.GLOBAL_VARIABLES 中,看起来 MODEL_VARIABLES 中没有显示任何内容的原因是因为您需要使用 tf.contrib.framework.local_variable

关于python - Batch Norm - 在 TensorFlow 中提取运行均值和运行方差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49310720/

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