title: What are "model variables" in Tensorflow and slim?
body: <p>From <a href="https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/slim" rel="nofollow noreferrer">https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/slim</a>,</p>
  
  <blockquote>
    <p>TF-Slim further differentiates variables by defining model variables,
    which are variables that represent parameters of a model. Model
    variables are trained or fine-tuned during learning and are loaded
    from a checkpoint during evaluation or inference. Examples include the
    variables created by a slim.fully_connected or slim.conv2d layer.
    Non-model variables are all other variables that are used during
    learning or evaluation but are not required for actually performing
    inference. For example, the global_step is a variable using during
    learning and evaluation but it is not actually part of the model.
    Similarly, moving average variables might mirror model variables, but
    the moving averages are not themselves model variables.</p>
  </blockquote>
  
  <p>From <a href="https://www.tensorflow.org/versions/master/api_docs/python/state_ops/variable_helper_functions" rel="nofollow noreferrer">https://www.tensorflow.org/versions/master/api_docs/python/state_ops/variable_helper_functions</a>,</p>
  
  <blockquote>
    <p>tf.model_variables()</p>
    
    <p>Returns all variables in the MODEL_VARIABLES collection.</p>
  </blockquote>
  
  <p>Yet slim creates "moving mean" variables as part of its batch norm layers that are included in the MODEL_VARIABLES collection.</p>
  
  <p>I can see at least possible definitions of "model variable":</p>
  
  <ol>
  <li>Used in inference.</li>
  <li>Fine tuned during training (whether by an optimizer or some other means such as moving averaging).</li>
  <li>Stored in checkpoints</li>
  </ol>
  
  <p>Is it the case that Tensorflow's "model variables" are defined by condition 2, while slim's "model variables" are defined by condition 1?</p>