我想更好地了解队列和批处理的行为。我的训练集中有1,000,000条记录,我想要训练1000个批次。现在我的代码是使用string_input_producer创建一个队列,然后根据我的批量大小(在本例中为1000)执行read_up_to。如果我将相应的shuffle_batch中的批量大小设置得更小,会有什么行为?它是否会抛弃其他900条记录或一次出列100条但仍最终处理所有记录?
queue = tf.train.string_input_producer(partitions,
num_epochs=num_epochs, shuffle=shuffle)
_, rows = reader.read_up_to(queue, num_records=1000)
features = tf.parse_example(rows, features=input_features)
features = tf.train.shuffle_batch(
features,
batch_size=100,
capacity=10000,
min_after_dequeue=2001,
num_threads=multiprocessing.cpu_count(),
enqueue_many=True,
allow_smaller_final_batch=True
)