tensorflow提供了tf.train.batch和tf.train.shuffle_batch函数来将单个样例组织成batch的形式输出。这两个函数都会生成一个队列,队列的入队操作是生成单个样例的方法,而每次出队得到的是一个batch的样例。唯一的区别是是否会将数据顺序打乱。
1.tf.train.batch
batch_size=3
capacity=1000+3*batch_size
example_batch,label_batch=tf.train.batch(
[example,label],batch_size=batch_size,capacity=capacity)
参数:
capacity给出了队列的最大容量,队列如果太大,需要占用很多的内存资源,如果太小,出队操作可能会因为没有数据而被阻碍(block),从而导致训练效率降低。当队列长度等于容量时,tensorflow将暂停入队操作,而只是等待元素出队。当元素个数小于容量时,tensorflow将自动重新启动入队操作。
2.tf.train.shuffle_batch
batch_si