def flips_fn(self, img, lbl): kwargs = { "horizontal": fn.coin_flip(probability=0.33), "vertical": fn.coin_flip(probability=0.33) } if self.dim == 3: kwargs.update({"depthwise": fn.coin_flip(probability=0.33)}) return fn.flip(img, **kwargs), fn.flip(lbl, **kwargs)
def dali_pipeline(source, image_size, training, cpu=False): images, labels = fn.external_source(source=source, num_outputs=2) if cpu: device = "cpu" images = fn.decoders.image(images, device=device) else: device = "gpu" images = fn.decoders.image( images, device="mixed", device_memory_padding=211025920, host_memory_padding=140544512, ) if training: images = fn.random_resized_crop( images, device=device, size=image_size, interp_type=types.DALIInterpType.INTERP_CUBIC, ) coin = fn.random.coin_flip(0.5) images = fn.flip(images, horizontal=coin) else: pass return images, labels
def reference_pipeline(flip_vertical, flip_horizontal, ref_batch_size=max_batch_size): pipeline = Pipeline(ref_batch_size, num_threads, device_id) with pipeline: data, _ = fn.readers.file(file_root=images_dir) img = fn.decoders.image(data) flipped = fn.flip(img, horizontal=flip_horizontal, vertical=flip_vertical) pipeline.set_outputs(flipped, img) return pipeline
def pipe(max_batch_size, input_data, device): pipe = Pipeline(batch_size=max_batch_size, num_threads=4, device_id=0) depthwise = fn.random.coin_flip() horizontal = fn.random.coin_flip() vertical = fn.random.coin_flip() data = fn.external_source(source=input_data, cycle=False, device=device) processed = fn.flip(data, depthwise=depthwise, horizontal=horizontal, vertical=vertical) pipe.set_outputs(processed) return pipe
def pipeline_runtime(flip_vertical, flip_horizontal): data, _ = fn.file_reader(file_root=images_dir) img = fn.image_decoder(data) flipped = fn.flip(img, horizontal=flip_horizontal, vertical=flip_vertical) return flipped, img
def flip_1d(x): # TODO(janton): remove the layout trick when Flip supports arbitrary data layouts x = fn.reshape(x, shape=(-1, 1, 1), layout="HWC") x = fn.flip(x, vertical=1) x = fn.reshape(x, shape=(-1, ), layout="t") return x
def pipeline_static(flip_vertical, flip_horizontal): data, _ = fn.readers.file(file_root=images_dir) img = fn.decoders.image(data) flipped = fn.flip(img, horizontal=flip_horizontal, vertical=flip_vertical) return flipped, img