예제 #1
0
import json
from datetime import datetime
from clipper_admin import ClipperConnection, DockerContainerManager
clipper_conn = ClipperConnection(DockerContainerManager())
from thermal_model import get_model_per_zone, normal_schedule, dr_schedule, execute_schedule

try:
    clipper_conn.start_clipper()
    default_output = json.dumps([-1] * 24)
    clipper_conn.register_application(name="ciee_thermal",
                                      input_type="string",
                                      default_output=default_output,
                                      slo_micros=1000000000)
    print 'apps', clipper_conn.get_all_apps()
    models = get_model_per_zone("2018-01-30 00:00:00 PST")

    # model parameters:
    #   zone: string
    #   date: string
    #   schedule: [(hsp, csp), ... x 24 ...]
    def execute_thermal_model(params):
        """
        Accepts list of JSON string as argument
        """
        ret = []
        for param in params:
            args = json.loads(param)
            zone = args['zone']
            date = str(args['date'])
            schedule = args['schedule']
            temps, actions = execute_schedule(date, schedule, models[zone], 65)
예제 #2
0
# clipper_start
from clipper_admin import ClipperConnection, DockerContainerManager
clipper_conn = ClipperConnection(DockerContainerManager())

clipper_conn.start_clipper()
clipper_conn.connect()

clipper_conn.register_application(
    name="digit",
    input_type="doubles",
    default_output="-1.0",
    slo_micros=10000000)  # 10,000,000 micros == 10 sec

clipper_conn.get_all_apps()

#################################################
######### Define Own Prediction Function ########
#################################################

import sklearn
import numpy as np
from sklearn.neural_network import MLPClassifier
from sklearn.externals import joblib
from clipper_admin.deployers import python as python_deployer

for version_postfix in ["10x1k", "10x2k", "20x1k", "15x2k"]:

    model_path = "../../models/sklearn/"
    model_name = "dig_nn_model_" + version_postfix + ".sav"
    clf = joblib.load(model_path + model_name)
try:
    clipper_conn.start_clipper()
    clipper_conn.register_application(name=APP_NAME,
                                      input_type="doubles",
                                      default_output="-1.0",
                                      slo_micros=1000000)
    deploy_pytorch_model(clipper_conn,
                         name=MODEL_NAME,
                         version="1",
                         input_type="doubles",
                         func=predict,
                         pytorch_model=model,
                         pkgs_to_install=pip_deps)
    clipper_conn.link_model_to_app(app_name=APP_NAME, model_name=MODEL_NAME)
except:
    clipper_conn.connect()

# Check all apps
print(clipper_conn.get_all_apps())

# Test inference
# inputs = np.array([[1., 2., 3.], [2., 3., 4.], [3., 4., 5.]])
# print(predict(model, inputs))
inputs = np.array([1., 2., 3.]).tolist(
)  # Inputs can only be one-dimensional or there will be json serialization error
headers = {"Content-type": "aplication/json"}
result = requests.post("http://localhost:1337/" + APP_NAME + "/predict",
                       headers=headers,
                       data=json.dumps({"input": inputs})).json()
print(result)