title: What is the relationship between steps and epochs in TensorFlow?
body: <p>I am going through TensorFlow <a href="https://www.tensorflow.org/get_started/get_started" rel="nofollow noreferrer">get started tutorial</a>. In the <code>tf.contrib.learn</code> example, these are two lines of code:</p>
  
  <pre><code>input_fn = tf.contrib.learn.io.numpy_input_fn({"x":x}, y, batch_size=4, num_epochs=1000)
  estimator.fit(input_fn=input_fn, steps=1000)
  </code></pre>
  
  <p>I am wondering what is the difference between argument <code>steps</code> in the call to <code>fit</code> function and <code>num_epochs</code> in the <code>numpy_input_fn</code> call. Shouldn't there be just one argument? How are they connected? </p>
  
  <p>I have found that code is somehow taking the <code>min</code> of these two as the number of steps in the toy example of the tutorial.</p>
  
  <p>At least, one of the two parameters either <code>num_epochs</code> or <code>steps</code> has to be redundant. We can calculate one from the other. Is there a way I can know how many steps (number of times parameters get updated) my algorithm actually took? </p>
  
  <p>I am curious about which one takes precedence. And does it depend on some other parameters?</p>