Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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
                ])
            }