def get_batch(self): cur_from = self.cur cur_to = min(cur_from + self.batch_size, self.size) segdb = [self.segdb[self.index[i]] for i in range(cur_from, cur_to)] data, label, im_info = get_segmentation_test_batch(segdb, self.config) self.data = [[mx.nd.array(data[i][name]) for name in self.data_name] for i in xrange(len(data))] self.im_info = im_info
def get_batch(self): cur_from = self.cur cur_to = min(cur_from + self.batch_size, self.size) segdb = [self.segdb[self.index[i]] for i in range(cur_from, cur_to)] data, label, im_info = get_segmentation_test_batch(segdb, self.config) self.data = [[mx.nd.array(data[i][name]) for name in self.data_name] for i in range(len(data))] self.im_info = im_info
def get_batch(self, scale=1.0, back=False): if back: cur_from = self.cur - self.batch_size else: cur_from = self.cur cur_to = min(cur_from + self.batch_size, self.size) segdb = [self.segdb[self.index[i]] for i in range(cur_from, cur_to)] # decide multi device slice work_load_list = [1] * len(self.ctx) slices = _split_input_slice(self.batch_size, work_load_list) rst = [] for idx, islice in enumerate(slices): isegdb = [ segdb[i] for i in range(islice.start, islice.stop) if i < len(segdb) ] if not isegdb == []: rst.append( get_segmentation_test_batch(isegdb, self.config, is_train=False, has_label=self.has_label, scale=scale)) all_data = [_['data'] for _ in rst] all_label = [_['label'] for _ in rst] self.data = [[mx.nd.array(data[key]) for key in self.data_name] for data in all_data] if self.has_label: self.label = [[mx.nd.array(label[key]) for key in self.label_name] for label in all_label] self.labels_gt = { 'label': tensor_vstack([ label[key] for key in self.label_name for label in all_label ]) }