Tensorflow tf.train.shuffle_batch()无法创建内容大于2GB的张量原型

Mat*_*att 5 python gpu machine-learning python-2.7 tensorflow

在大型数据集上使用tf.train.shuffle_batch()时遇到一些麻烦。我正在这样使用它:

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,
  )
Run Code Online (Sandbox Code Playgroud)

哪里:

images["train"].shape = (88179,64,64,3) #Training set of tiny-Imagenet
labels["train"].shape = (88179,)        #Related labels 
Run Code Online (Sandbox Code Playgroud)

它向我输出此错误:

ValueError: Cannot create a tensor proto whose content is larger than 2GB.
Run Code Online (Sandbox Code Playgroud)

确实,我尝试了一个较小的数据集(CIFAR-10),该数据集的形状较小(和batch_size为160):

images["train"].shape = (45000,32,32,3) #Training set of CIFAR-10
labels["train"].shape = (45000,)        #Related labels 
Run Code Online (Sandbox Code Playgroud)

和tf.train.shuffle_batch()完美地工作。

我在这个问题上看到了很多问题,但是在人们使用tf.train.shuffle_batch()的地方没有(我看到一个问题,但实际上没有答案:Tensorflow> 2GB数组作为tf.slice_input_producer的输入

有人有主意吗?

[配置:TITAN X 12Go,32Go RAM,张量流1.4.1,python 2.7.15,CUDA 8.0]