Tensorflow Keras中的学习阶段是什么?

Tensorflow Keras中的学习阶段是什么?,tensorflow,keras,Tensorflow,Keras,我试图用Keras编写自己的循环层,并注意到源代码中的这一行: 这相当令人困惑。“培训”不是“学习阶段”吗?!我想更重要的是,我是否需要在我的自定义循环层中的输出上设置\u学习\u阶段 “培训标志”是指(或层)在预测结果或测试时的行为与培训不同。 根据所使用的后端,Keras可能需要实现自己的布尔“训练标志”(对于Keras 2.2.4,在as上),或者可以使用本机后端张量(如),以便集成动态目的代码 因此,层类别描述如下: uses_learning_phase: Whether any op

我试图用Keras编写自己的循环层,并注意到源代码中的这一行:

这相当令人困惑。“培训”不是“学习阶段”吗?!我想更重要的是,我是否需要在我的自定义循环层中的
输出
上设置
\u学习\u阶段
“培训标志”是指(或层)在预测结果或测试时的行为与培训不同。 根据所使用的后端,Keras可能需要实现自己的布尔“训练标志”(对于Keras 2.2.4,在as上),或者可以使用本机后端张量(如),以便集成动态目的代码

因此,层类别描述如下:

uses_learning_phase: Whether any operation
    of the layer uses `K.in_training_phase()`
    or `K.in_test_phase()`.
输出张量可以给定一个属性_使用_学习_相位,该相位由属性读取。如果任何输出张量具有该属性(且为true),则层的属性将返回true

在Keras复发层中的使用 您的代码片段来自keras/layers/recurrent.py,当调用private\u generate\u dropout\u mask方法时,后端的操作创建者“in\u train\u phase()”将被删除。因此,正在设置输出张量的标志“\u使用\u学习\u阶段”

引用的后端代码的解释

in_training_phase()和in_test_phase()是。“training”是一个可选参数,并引用training标志。如果未给出参数,则在

training = learning_phase()
但是,如果Training Flag是后端的张量且未设置可选的Training参数,则输出张量的属性_uses_learning_phase仅设置(并设置为True)。(这也可以解释为什么层需要设置_使用_learning _phase本身,但我认为在不标记输出张量的情况下通过in _test _phase创建操作没有任何用处。现在,假设有一个。)

uses_learning_phase: Whether any operation
    of the layer uses `K.in_training_phase()`
    or `K.in_test_phase()`.
training = learning_phase()