Tensorflow understanding tf.train.shuffle_batch
<p>I have a single file of training data, about 100K rows, and I'm running a straightforward <code>tf.train.GradientDescentOptimizer</code> on each training step.  The setup is essentially taken directly from Tensorflow's MNIST example.  Code reproduced below:</p>

<pre><code>x = tf.placeholder(tf.float32, [None, 21])
W = tf.Variable(tf.zeros([21, 2]))
b = tf.Variable(tf.zeros([2]))
y = tf.nn.softmax(tf.matmul(x, W) + b)

y_ = tf.placeholder(tf.float32, [None, 2])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
</code></pre>

<p>Given that I'm reading training data from a file, I'm using <code>tf.train.string_input_producer</code> and <code>tf.decode_csv</code> to read rows from the csv, and then <code>tf.train.shuffle_batch</code> to create batches that I then train on.</p>

<p>I'm confused as to what my parameters should be for <code>tf.train.shuffle_batch</code>.  I read Tensorflow's documentation, and yet I'm still not sure what the "optimal" batch_size, capacity, and min_after_dequeue values are.  Can anyone help shed some light on how I go about choosing proper values for these parameters, or link me to a resource where I can learn more?  Thanks-- </p>

<p>Here's the API link: <a href="https://www.tensorflow.org/versions/r0.9/api_docs/python/io_ops.html#shuffle_batch" rel="nofollow">https://www.tensorflow.org/versions/r0.9/api_docs/python/io_ops.html#shuffle_batch</a></p>