def __init__(self, pipeline, tensor_layout=types.NCHW, reverse_channels=False, multiplier=[1.0, 1.0, 1.0], offset=[0.0, 0.0, 0.0], tensor_dtype=types.FLOAT): self.loader = pipeline self.tensor_format = tensor_layout self.multiplier = multiplier self.offset = offset self.reverse_channels = reverse_channels self.tensor_dtype = tensor_dtype self.w = b.getOutputWidth(self.loader._handle) self.h = b.getOutputHeight(self.loader._handle) self.n = b.getOutputImageCount(self.loader._handle) self.bs = pipeline._batch_size color_format = b.getOutputColorFormat(self.loader._handle) self.p = (1 if (color_format == int(types.GRAY)) else 3) if self.tensor_dtype == types.FLOAT: self.out = np.zeros(( self.bs * self.n, self.p, int(self.h / self.bs), self.w, ), dtype="float32") elif self.tensor_dtype == types.FLOAT16: self.out = np.zeros(( self.bs * self.n, self.p, int(self.h / self.bs), self.w, ), dtype="float16") # self.labels = np.zeros((self.bs),dtype = "int32") if (self.loader._oneHotEncoding == True): self.labels = np.zeros((self.bs) * (self.loader._numOfClasses), dtype="int32") else: self.labels = np.zeros((self.bs), dtype="int32") if self.bs != 0: self.len = b.getRemainingImages(self.loader._handle) // self.bs else: self.len = b.getRemainingImages(self.loader._handle)
def __next__(self): if b.getRemainingImages(self.loader._handle) < self.bs: raise StopIteration if self.loader.run() != 0: raise StopIteration self.loader.copyImage(self.out_image) return self.out_image, self.out_tensor
def __next__(self): if b.getRemainingImages(self.loader._handle) < self.bs: raise StopIteration if self.loader.run() != 0: raise StopIteration self.loader.copyImage(self.out_image) if ((self.loader._name == "Caffe2ReaderDetection") or (self.loader._name == "CaffeReaderDetection")): for i in range(self.bs): size = b.getImageNameLen(self.loader._handle, i) print(size) self.array = np.array([" "]) self.out = np.frombuffer(self.array, dtype=(self.array).dtype) b.getImageName(self.loader._handle, self.out, i) return self.out_image, self.out_bbox, self.out_tensor else: return self.out_image, self.out_tensor
def getRemainingImages(self): return b.getRemainingImages(self._handle)