title: What does `training=True` mean when calling a TensorFlow Keras model?
body: <p>In TensorFlow's offcial documentations, they always pass <code>training=True</code> when calling a Keras model in a training loop, for example, <code>logits = mnist_model(images, training=True)</code>.</p>
  
  <p>I tried <code>help(tf.keras.Model.call)</code> and it shows that</p>
  
  <pre><code>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.
  </code></pre>
  
  <p>It says that <code>training</code> is a Boolean or boolean scalar tensor, indicating whether to run the <code>Network</code> in <em>training mode</em> or <em>inference mode</em>. But I didn't find any information about this two modes.</p>
  
  <p>In a nutshell, I don't know <strong>what is the influence of this argument</strong>. And what if I missed this argument when training?</p>