title: Tensorflow tf.train.shuffle_batch() Cannot create a tensor proto whose content is larger than 2GB
body: <p>I have some trouble using tf.train.shuffle_batch() on a large dataset.
  I'm using it like that : </p>
  
  <pre><code>x_train, y_train = tf.train.shuffle_batch(
      [images["train"], labels["train"]],
      batch_size=self.batch_size,            #I reduced it to 8
      capacity=50000,
      enqueue_many=True,
      min_after_dequeue=0,
      num_threads=16,
      seed=self.seed,
      allow_smaller_final_batch=True,
    )
  </code></pre>
  
  <p>Where :</p>
  
  <pre><code>images["train"].shape = (88179,64,64,3) #Training set of tiny-Imagenet
  labels["train"].shape = (88179,)        #Related labels 
  </code></pre>
  
  <p>and it output me this error :</p>
  
  <pre><code>ValueError: Cannot create a tensor proto whose content is larger than 2GB.
  </code></pre>
  
  <p>Indeed I tried on a smaller dataset (CIFAR-10) where shapes are smaller (and 160 of batch_size) :</p>
  
  <pre><code>images["train"].shape = (45000,32,32,3) #Training set of CIFAR-10
  labels["train"].shape = (45000,)        #Related labels 
  </code></pre>
  
  <p>and tf.train.shuffle_batch() work perfectly.</p>
  
  <p>I saw a lot of Questions on this issue but none where people use tf.train.shuffle_batch() (I saw one but without answer in fact : <a href="https://stackoverflow.com/questions/48404534/tensorflow-2gb-array-as-an-input-for-tf-slice-input-producer">Tensorflow &gt; 2GB array as an input for tf.slice_input_producer</a>)</p>
  
  <p>Does someone has an idea ?</p>
  
  <p>[CONFIG : TITAN X 12Go, 32Go RAM, tensorflow 1.4.1, python 2.7.15, CUDA 8.0]</p>