def _launch_pipeline(self):
"""This method creates two queues.
filename_queue: stores the list of filesnames in data_file and label_file
data_queue: stores the mini-batch
"""
self.data_processes = [] # Holds process handles
queue_size = 2 * self.num_preprocess_threads + 2 * self.num_gpu_towers
self.data_queue = Queue(queue_size) # This queue stores the data
image_files = open(self.data_file, 'r').readlines()
labels = open(self.label_file, 'r').readlines()
print 'Size of queue: ', queue_size
self.filename_queue = Queue(len(image_files)) # This queue stores the filenames
p = Process(target=self._create_filename_queue, args=(self.filename_queue, image_files, labels, self.num_epochs))
p.start()
self.data_processes.append(p)
print 'Data feeder started'
for each_worker in range(self.num_preprocess_threads):
p = Process(target=self._each_worker_process, args=(self.data_queue,))
p.start()
self.data_processes.append(p)
评论列表
文章目录