Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- eii = ExternalInputIterator(batch_size=16,
- data_file=processed_data_file,
- image_dir=images_directory)
- iterator = iter(eii)
- class ExternalSourcePipeline(Pipeline):
- def __init__(self, data_iterator, batch_size, num_threads, device_id):
- super(ExternalSourcePipeline, self).__init__(batch_size,
- num_threads,
- device_id,
- seed=12)
- self.data_iterator = data_iterator
- self.input = ops.ExternalSource()
- self.input_label = ops.ExternalSource()
- self.decode = ops.nvJPEGDecoder(device = "mixed", output_type = types.RGB)
- # resizing is *must* because loaded images maybe of different sizes
- # and to create GPU tensors we need image arrays to be of same size
- self.res = ops.Resize(device="gpu", resize_x=224, resize_y=224, interp_type=types.INTERP_TRIANGULAR)
- def define_graph(self):
- self.jpegs = self.input()
- self.labels = self.input_label()
- images = self.decode(self.jpegs)
- output = self.res(images)
- return (output, self.labels)
- def iter_setup(self):
- # the external data iterator is consumed here and fed as input to Pipeline
- images, labels = self.data_iterator.next()
- self.feed_input(self.jpegs, images)
- self.feed_input(self.labels, labels)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement