tf.train.shuffle_batch

来源:互联网 发布:python 绘制矩阵 编辑:程序博客网 时间:2024/06/01 23:31
tf.train.shuffle_batch是将队列中数据打乱后,再读取出来,因此队列中剩下的数据也是乱序的,队头也是一直在补充(我猜也是按顺序补充),
比如batch_size=5,capacity=10,min_after_dequeue=5,
初始是有序的0,1,..,9(10条记录),
然后打乱8,2,6,4,3,7,9,2,0,1(10条记录),
队尾取出5条,剩下7,9,2,0,1(5条记录),
然后又按顺序补充进来,变成7,9,2,0,1,10,11,12,13,14(10条记录),
再打乱13,10,2,7,0,12...1(10条记录),

再出队...


capacity是队列里元素的最大数量,读取的数据是基于这个范围的,

在这个范围内,min_after_dequeue越大,数据越乱



这样按batch读取的话,最后会自动在前面添加一个维度,比如数据的维度是[1],batch_size是10,那么读取出来的shape就是[10,1]

# Creates batches of 32 images and 32 labels.image_batch, label_batch = tf.train.shuffle_batch(      [single_image, single_label],      batch_size=32,      num_threads=4,      capacity=50000,      min_after_dequeue=10000)


原创粉丝点击