Ejemplo n.º 1
0
class DataIterator(DataIteratorBase):
    def __init__(self,
                 file,
                 shuffle=True,
                 augment=True,
                 batch_size=10,
                 limit=None):

        super(DataIterator, self).__init__(batch_size)

        self.limit = limit
        self.records = 0

        self.raw_data_iterator = RawDataIterator(file,
                                                 shuffle=shuffle,
                                                 augment=augment)
        self.generator = self.raw_data_iterator.gen()

    def _recv_arrays(self):

        while True:

            if self.limit is not None and self.records > self.limit:
                raise StopIteration

            tpl = next(self.generator, None)
            if tpl is not None:
                self.records += 1
                return tpl

            if self.limit is None or self.records < self.limit:
                print("Staring next generator loop cycle")
                self.generator = self.raw_data_iterator.gen()
            else:
                raise StopIteration
Ejemplo n.º 2
0
    def __init__(self, global_config, config, shuffle=True, augment=True, batch_size=10, limit=None):

        super(DataIterator, self).__init__(global_config, batch_size)

        self.limit = limit
        self.records = 0
        self.global_config = global_config
        self.config = config
        self.shuffle = shuffle
        self.augment = augment

        self.raw_data_iterator = RawDataIterator(self.global_config, self.config, shuffle=self.shuffle, augment=self.augment)
        self.generator = None
Ejemplo n.º 3
0
class DataIterator(DataIteratorBase):
    # 继承了DataIteratorBase Class
    def __init__(self,
                 global_config,
                 config,
                 shuffle=True,
                 augment=True,
                 batch_size=10,
                 limit=None):

        super(DataIterator, self).__init__(global_config, batch_size)

        self.limit = limit
        self.records = 0
        self.global_config = global_config
        self.config = config
        self.shuffle = shuffle
        self.augment = augment

        self.raw_data_iterator = RawDataIterator(self.global_config,
                                                 self.config,
                                                 shuffle=self.shuffle,
                                                 augment=self.augment)
        self.generator = None

    def restart(self):

        self.records = 0
        self.generator = self.raw_data_iterator.gen()

    def num_samples(self):
        return self.raw_data_iterator.num_keys()

    def _recv_arrays(self):

        while True:  # 生成器需要是无限循环生成数据

            if self.limit is not None and self.records > self.limit:
                raise StopIteration("Limit Reached")

            tpl = next(
                self.generator,
                None)  # 因为raw_data_iterator.gen()具有关键字yield,所以自动支持next()方法
            if tpl is not None:
                self.records += 1
                return tpl  # 返回了多个对象image, mask, labels, meta['joints']

            raise StopIteration("Limited and reached cycle")
Ejemplo n.º 4
0
    def __init__(self,
                 file,
                 shuffle=True,
                 augment=True,
                 batch_size=10,
                 limit=None):

        super(DataIterator, self).__init__(batch_size)

        self.limit = limit
        self.records = 0

        self.raw_data_iterator = RawDataIterator(file,
                                                 shuffle=shuffle,
                                                 augment=augment)
        self.generator = self.raw_data_iterator.gen()
Ejemplo n.º 5
0
class DataIterator(DataIteratorBase):
    def __init__(self,
                 global_config,
                 config,
                 shuffle=True,
                 augment=True,
                 batch_size=10,
                 limit=None):

        super(DataIterator, self).__init__(global_config, batch_size)

        self.limit = limit
        self.records = 0
        self.global_config = global_config
        self.config = config
        self.shuffle = shuffle
        self.augment = augment

        self.raw_data_iterator = RawDataIterator(self.global_config,
                                                 self.config,
                                                 shuffle=self.shuffle,
                                                 augment=self.augment)
        self.generator = None

    def restart(self):

        self.records = 0
        self.generator = self.raw_data_iterator.gen()

    def num_samples(self):
        return self.raw_data_iterator.num_keys()

    def _recv_arrays(self):

        while True:

            if self.limit is not None and self.records > self.limit:
                raise StopIteration("Limit Reached")

            tpl = next(self.generator, None)
            if tpl is not None:
                self.records += 1
                return tpl

            raise StopIteration("Limited and reached cycle")