title: Are epochs and training steps the same thing?
body: <pre><code>features = [tf.contrib.layers.real_valued_column("x", dimension=1)]
  estimator = tf.contrib.learn.LinearRegressor(feature_columns=features)
  y = np.array([0., -1., -2., -3.])
  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>For example, do these "steps=1000" and "num_epochs=1000" mean exactly the same thing? If yes, why does it need to be duplicated? If not, can i set these two parameters differently?</p>