Пример #1
0
def test_create_update_and_delete_service():
    override_token_funcs()
    test_config = get_test_config()

    deployment_client = DeploymentClient(
        test_config['test_subscription_id'],
        test_config['test_resource_group'],
        test_config['test_model_management_account'])
    cleanup_old_test_services(deployment_client)

    id = uuid.uuid4().hex[:5]
    model_name = "int-test-model-" + id
    service_name = "int-test-service-" + id

    service_def_path = "/tmp/model"

    in_images = tf.placeholder(tf.string)
    image_tensors = preprocess_array(in_images)

    model = LocalQuantizedResNet50(os.path.expanduser("~/models"))
    model.import_graph_def(include_featurizer=False)

    service_def = ServiceDefinition()
    service_def.pipeline.append(
        TensorflowStage(tf.Session(), in_images, image_tensors))
    service_def.pipeline.append(BrainWaveStage(model))
    service_def.pipeline.append(
        TensorflowStage(tf.Session(), model.classifier_input,
                        model.classifier_output))
    service_def.save(service_def_path)

    # create service
    first_model_id = deployment_client.register_model(model_name,
                                                      service_def_path)
    service = deployment_client.create_service(service_name, first_model_id)

    service_list = deployment_client.list_services()
    assert any(x.name == service_name for x in service_list)

    prediction_client = PredictionClient(service.ipAddress, service.port)
    top_result = sorted(enumerate(
        prediction_client.score_image("/tmp/share1/shark.jpg")),
                        key=lambda x: x[1],
                        reverse=True)[:1]
    # 'tiger shark' is class 3
    assert top_result[0][0] == 3

    # update service, remove classifier
    service_def = ServiceDefinition()
    service_def.pipeline.append(
        TensorflowStage(tf.Session(), in_images, image_tensors))
    service_def.pipeline.append(BrainWaveStage(model))
    service_def.save(service_def_path)

    second_model_id = deployment_client.register_model(model_name,
                                                       service_def_path)
    deployment_client.update_service(service.id, second_model_id)

    result = prediction_client.score_image("/tmp/share1/shark.jpg")
    assert all([x == y for x, y in zip(np.array(result).shape, [1, 1, 2048])])

    # wait for timeout of Azure LB
    time.sleep(4 * 60 + 10)

    result = prediction_client.score_image("/tmp/share1/shark.jpg")
    assert all([x == y for x, y in zip(np.array(result).shape, [1, 1, 2048])])

    deployment_client.delete_service(service.id)
    deployment_client.delete_model(first_model_id)
    deployment_client.delete_model(second_model_id)
Пример #2
0
def test_create_client_raises_if_port_is_none():
    with pytest.raises(ValueError):
        PredictionClient("localhost", None)
Пример #3
0
def test_create_client_raises_if_host_is_none():
    with pytest.raises(ValueError):
        PredictionClient(None, 50051)
Пример #4
0
def test_create_client_with_auth():
    client = PredictionClient("localhost", 50051, True, "key1")
    assert client is not None
Пример #5
0
def test_create_client():
    client = PredictionClient("localhost", 50051)
    assert client is not None
Пример #6
0
import requests
from amlrealtimeai.client import PredictionClient
import argparse

parse = argparse.ArgumentParser(description='AML inferencing client')
parse.add_argument('IP', type=str, help='IP of the FPGA runtime node')
parse.add_argument('path',
                   type=str,
                   help='Path to image that need to inferenced')
arg = parse.parse_args()
IP = arg.IP
path = arg.path

client = PredictionClient(IP, 80, False, '')
results = client.score_image(path)
#print(results)
trained_ds = requests.get(
    "https://raw.githubusercontent.com/Lasagne/Recipes/master/examples/resnet50/imagenet_classes.txt"
).text.splitlines()
#for line in trained_ds:
#  print(line)

# map results [class_id] => [confidence]
results = enumerate(results)
#for line in results:
#  print(line)

# sort results by confidence
sorted_results = sorted(results, key=lambda x: x[1], reverse=True)
#for line in sorted_results:
#  print(line)