def METHOD_NAME(batch_size, pipe_type, label_type, num_gpus=1):
    pipes = [pipe_type(batch_size=batch_size, num_threads=2, device_id=device_id, num_gpus=num_gpus)
             for device_id in range(num_gpus)]
    daliop = dali_tf.DALIIterator()
    images = []
    labels = []
    for d in range(NUM_GPUS):
        with tf.device('/gpu:%i' % d):
            image, label = daliop(pipeline=pipes[d],
                                  shapes=[(batch_size, 3, 227, 227), ()],
                                  dtypes=[tf.int32, label_type],
                                  device_id=d)
            images.append(image)
            labels.append(label)
    return [images, labels]