【问题标题】:Setting the TensorFlow is_training training flag (in batch_normalize)设置 TensorFlow is_training 训练标志(在 batch_normalize 中)
【发布时间】:2016-04-17 08:31:18
【问题描述】:

我想在 TensorFlow 中使用批量标准化,并在 GitHub 上发现了这个 batch_normalize 函数:link

我注意到有一个特定的标志来检查我们是否在训练。但是,我不熟悉如何将此标志设置为 True 或 False,训练时设置此 particular 标志是否标准?我指的是这里:

is_training = array_ops_.squeeze(ops.get_collection("IS_TRAINING"))

总结一下我的问题:如何将此标志设置为 True/False,以便我可以使用此 batch_normalize 函数?

谢谢!

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    该函数是 scikit-flow a.k.a TF learn 的一部分,而不是“基础”TF - 您可以看到他们如何在库的估算器部分设置标志:GitHub link

    这是

    self._graph.add_to_collection("IS_TRAINING", True)
    

    其中self._graph 是包含batchnorm op 的TF 图。

    【讨论】:

      【解决方案2】:

      如果您将它用作传递给TensorFlowEstimator 的自定义模型函数的一部分,您可以简单地调用fit,这样它就会处于训练状态。当您调用predict 时,batch_normalize 将用于测试。

      请注意,这些是由 TensorFlow Learn(又名 Scikit Flow)自动调用的,因此您只需提供自定义模型函数并将其传递给 TensorFlowEstimator

      【讨论】:

        猜你喜欢
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-16
        • 1970-01-01
        • 2016-03-09
        • 2023-03-27
        相关资源
        最近更新 更多