def deploy_(clipper_conn):
    python_deployer.create_endpoint(
        clipper_conn,
        "testapp0-model",
        "doubles",
        feature_sum,
        registry=CLIPPER_CONTAINER_REGISTRY)
示例#2
0
def deploy_(clipper_conn, use_kubernetes=False):
    if use_kubernetes:
        python_deployer.create_endpoint(clipper_conn,
                                        "testapp0-model",
                                        "doubles",
                                        feature_sum,
                                        registry=CLIPPER_CONTAINER_REGISTRY)
    else:
        python_deployer.create_endpoint(clipper_conn, "testapp0-model",
                                        "doubles", feature_sum)
示例#3
0
    def test_deployed_models_are_logged(self):
        # Deploy models
        python_deployer.create_endpoint(self.clipper_conn,
                                        "simple-example",
                                        "doubles",
                                        feature_sum,
                                        num_replicas=2)
        time.sleep(2)

        self.logger.info(
            "Making 100 predictions using two model container; Should takes 25 seconds."
        )
        for _ in range(100):
            predict(self.clipper_conn.get_query_addr(), np.random.random(200))
            time.sleep(0.2)

        self.check_fluentd_has_correct_model_logs(self.clipper_conn,
                                                  'simple-example')
示例#4
0
from clipper_admin import ClipperConnection, DockerContainerManager
from clipper_admin.deployers import python as py_deployer
import random

cl = ClipperConnection(DockerContainerManager())
cl.stop_all()
cl.start_clipper()

# cl.register_application(name="pong", input_type="doubles", slo_micros=1000000, default_output="1")


def random_predict(xs):
    action = random.randint(0, 2)
    return [str(action) for _ in xs]


# cl.register_application(name="pong", input_type="doubles", default_output="-1.0", slo_micros=100000)

# py_deployer.deploy_python_closure(cl, name="rand-model", version=1, input_type="doubles", func=random_predict, registry="hsubbaraj")

# cl.link_model_to_app(app_name="pong", model_name="rand-model")

py_deployer.create_endpoint(cl,
                            name="pong",
                            input_type="doubles",
                            func=random_predict,
                            default_output="0",
                            slo_micros=100000)

print("CLIPPER ADDRESS: " + cl.get_query_addr())
示例#5
0
    return [size]


# Stop Clipper on Ctrl-C
def signal_handler(signal, frame):
    print("Stopping Clipper...")
    clipper_conn = ClipperConnection(DockerContainerManager())
    clipper_conn.stop_all()
    sys.exit(0)


if __name__ == '__main__':
    signal.signal(signal.SIGINT, signal_handler)

    parser = argparse.ArgumentParser(
        description='Use Clipper to Query Images.')
    parser.add_argument('image', nargs='+', help='Path to an image')
    imgs = parser.parse_args().image

    clipper_conn = ClipperConnection(DockerContainerManager())
    clipper_conn.start_clipper()
    python_deployer.create_endpoint(clipper_conn, "image-example", "bytes",
                                    image_size)
    time.sleep(2)
    try:
        for f in imgs:
            if f.endswith('.jpg') or f.endswith('.png'):
                predict(clipper_conn.get_query_addr(), f)
    except Exception as e:
        clipper_conn.stop_all()
示例#6
0
    elif i % 5 == 0:
        return produce_query_arr_for_ms(100)
    elif i % 3 == 0:
        return produce_query_arr_for_ms(50)
    else:
        return produce_query_arr_for_ms(10)


if __name__ == '__main__':
    signal.signal(signal.SIGINT, signal_handler)
    clipper_conn = ClipperConnection(DockerContainerManager())
    clipper_conn.start_clipper()
    print("Starting Clipper")
    python_deployer.create_endpoint(clipper_conn,
                                    "simple-example",
                                    "doubles",
                                    feature_sum,
                                    num_replicas=2)
    time.sleep(2)
    print("Starting Prediction")

    try:
        counter = 0
        while True:
            print(counter)
            predict(clipper_conn.get_query_addr(), fizz_buzz(counter))
            counter += 1
            time.sleep(0.2)
    except Exception as e:
        clipper_conn.stop_all()
示例#7
0
    print("'%s', %f ms" % (r.text, latency))


# Stop Clipper on Ctrl-C
def signal_handler(signal, frame):
    print("Stopping Clipper...")
    clipper_conn = ClipperConnection(DockerContainerManager())
    clipper_conn.stop_all()
    sys.exit(0)


if __name__ == '__main__':
    signal.signal(signal.SIGINT, signal_handler)
    clipper_conn = ClipperConnection(DockerContainerManager())
    clipper_conn.start_clipper()
    python_deployer.create_endpoint(clipper_conn, "ham-spam-classifier",
                                    "strings", predict_spam)
    sleep(2)

    try:
        queue = deque(queries)
        while True:
            query = queue.pop()
            print("Length {} query sent!".format(len(query)))
            predict(clipper_conn.get_query_addr(), query)
            queue.append(query)
            shuffle(queue)
            sleep(0.2)
    except Exception as e:
        print(e)
        clipper_conn.stop_all()
示例#8
0
        tmp = tempfile.NamedTemporaryFile('wb', delete=False, suffix='.png')
        tmp.write(io.BytesIO(imgs[i]).getvalue())
        tmp.close()

        # Use PIL to read in the file and compute size
        size = PIL.Image.open(tmp.name, 'r').size

        # Remove the temp file
        os.unlink(tmp.name)

        sizes.append(size)
    return sizes


from clipper_admin import ClipperConnection, DockerContainerManager
from clipper_admin.deployers import python as python_deployer

clipper_conn = ClipperConnection(DockerContainerManager())
clipper_conn.start_clipper()

python_deployer.create_endpoint(clipper_conn=clipper_conn,
                                name="image-size",
                                input_type="bytes",
                                func=image_size,
                                pkgs_to_install=['pillow'])

print('clipper_conn.get_query_addr()' + clipper_conn.get_query_addr())

# To test
# query(clipper_conn.get_query_addr(), 'imgs/clipper-logo.png')