在TensorFlow的官方文档中,在训练循环中调用Keras模型(例如training=True
)时,它们总是通过logits = mnist_model(images, training=True)
。
我尝试了help(tf.keras.Model.call)
,它表明了
Help on function call in module tensorflow.python.keras.engine.network:
call(self, inputs, training=None, mask=None)
Calls the model on new inputs.
In this case `call` just reapplies
all ops in the graph to the new inputs
(e.g. build a new computational graph from the provided inputs).
Arguments:
inputs: A tensor or list of tensors.
training: Boolean or boolean scalar tensor, indicating whether to run
the `Network` in training mode or inference mode.
mask: A mask or list of masks. A mask can be
either a tensor or None (no mask).
Returns:
A tensor if there is a single output, or
a list of tensors if there are more than one outputs.
它表示training
是布尔或布尔标量张量,表示是在 training模式还是推理模式中运行Network
。但是我没有找到关于这两种模式的任何信息。
简而言之,我不知道该论点的影响。而且如果我在训练时错过了这个论点怎么办?
答案 0 :(得分:3)
某些神经网络层在训练和推理期间的行为有所不同,例如Dropout和BatchNormalization层。例如
training
参数使图层知道应该采用两条“路径”中的哪一条。如果您对此设置不正确,则您的网络可能无法正常运行。
答案 1 :(得分:0)
请参考this答案。消除怀疑可能会有所帮助。此外,如果您需要,我可以提供更多说明。谢谢。