我正在尝试查看通过GCMLE(
我知道在测试时(即
根据tf.GraphKeys,我尝试了其他方法,如
saved_model.pb,assets/*和variables/*
)导出的已训练TensorFlow模型的运行平均值和方差。这些值在图中保存在哪里?我可以从tf.GraphKeys.TRAINABLE_VARIABLES
访问gamma/beta值,但我无法在任何tf.GraphKeys.MODEL_VARIABLES
中找到运行时平均值和方差。运行平均值和方差是否存储在其他地方?我知道在测试时(即
Modes.EVAL
),运行平均值和方差用于归一化传入的数据,然后使用gamma和beta对归一化数据进行缩放和移位。我正在尝试查看推理时间需要的所有变量,但是我找不到运行平均值和方差。它们只在测试时而不是推理时间(Modes.PREDICT
)使用吗?如果是这样,那就解释了为什么我在导出的模型中找不到它们,但我预计它们会在那里。根据tf.GraphKeys,我尝试了其他方法,如
tf.GraphKeys.MOVING_AVERAGE_VARIABLES
,但它们也是空的。我还在批处理规范的文档中看到了这行“注意:在训练时,需要更新移动均值和移动方差。默认情况下,更新操作放置在tf.GraphKeys.UPDATE_OPS
中,因此它们需要作为train_op的依赖项添加。”所以我尝试查看我保存的模型中的tf.GraphKeys.UPDATE_OPS
,它们包含一个assign op batch_normalization/AssignMovingAvg:0
,但仍不清楚我从哪里获取这个值。