This page was generated from examples/models/azure_aks_deep_mnist/azure_aks_deep_mnist.ipynb.
Azure Kubernetes Service (AKS) Deep MNIST¶
In this example we will deploy a tensorflow MNIST model in the Azure Kubernetes Service (AKS).
This tutorial will break down in the following sections:
Train a tensorflow model to predict mnist locally
Containerise the tensorflow model with our docker utility
Send some data to the docker model to test it
Install and configure Azure tools to interact with your cluster
Use the Azure tools to create and setup AKS cluster with Seldon
Push and run docker image through the Azure Container Registry
Test our Elastic Kubernetes deployment by sending some data
Letâs get started! đđ„
Dependencies:¶
Helm v3.0.0+
A Kubernetes cluster running v1.13 or above (minkube / docker-for-windows work well if enough RAM)
kubectl v1.14+
az CLI v2.0.66+
Python 3.6+
Python DEV requirements
1) Train a tensorflow model to predict mnist locally¶
We will load the mnist images, together with their labels, and then train a tensorflow model to predict the right labels
[1]:
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
import tensorflow as tf
if __name__ == "__main__":
x = tf.placeholder(tf.float32, [None, 784], name="x")
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b, name="y")
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(
-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1])
)
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for i in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))
saver = tf.train.Saver()
saver.save(sess, "model/deep_mnist_model")
WARNING:tensorflow:From <ipython-input-1-559b63ab8b48>:2: read_data_sets (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use alternatives such as official/mnist/dataset.py from tensorflow/models.
WARNING:tensorflow:From /home/alejandro/miniconda3/envs/reddit-classification/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:260: maybe_download (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.
Instructions for updating:
Please write your own downloading logic.
WARNING:tensorflow:From /home/alejandro/miniconda3/envs/reddit-classification/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/base.py:252: _internal_retry.<locals>.wrap.<locals>.wrapped_fn (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.
Instructions for updating:
Please use urllib or similar directly.
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
WARNING:tensorflow:From /home/alejandro/miniconda3/envs/reddit-classification/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:262: extract_images (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use tf.data to implement this functionality.
Extracting MNIST_data/train-images-idx3-ubyte.gz
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
WARNING:tensorflow:From /home/alejandro/miniconda3/envs/reddit-classification/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:267: extract_labels (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use tf.data to implement this functionality.
Extracting MNIST_data/train-labels-idx1-ubyte.gz
WARNING:tensorflow:From /home/alejandro/miniconda3/envs/reddit-classification/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:110: dense_to_one_hot (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use tf.one_hot on tensors.
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Extracting MNIST_data/t10k-images-idx3-ubyte.gz
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
WARNING:tensorflow:From /home/alejandro/miniconda3/envs/reddit-classification/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:290: DataSet.__init__ (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use alternatives such as official/mnist/dataset.py from tensorflow/models.
WARNING:tensorflow:From /home/alejandro/miniconda3/envs/reddit-classification/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
WARNING:tensorflow:From /home/alejandro/miniconda3/envs/reddit-classification/lib/python3.7/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
WARNING:tensorflow:From /home/alejandro/miniconda3/envs/reddit-classification/lib/python3.7/site-packages/tensorflow/python/util/tf_should_use.py:193: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use `tf.global_variables_initializer` instead.
0.915
2) Containerise the tensorflow model with our docker utility¶
First you need to make sure that you have added the .s2i/environment configuration file in this folder with the following content:
[2]:
!cat .s2i/environment
MODEL_NAME=DeepMnist
API_TYPE=REST
SERVICE_TYPE=MODEL
PERSISTENCE=0
Now we can build a docker image named âdeep-mnistâ with the tag 0.1
[2]:
!s2i build . seldonio/seldon-core-s2i-python37:1.18.0-dev deep-mnist:0.1
---> Installing application source...
---> Installing dependencies ...
Looking in links: /whl
Requirement already satisfied: tensorflow>=1.12.0 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 1)) (1.13.1)
Requirement already satisfied: keras-preprocessing>=1.0.5 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (1.0.9)
Requirement already satisfied: gast>=0.2.0 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (0.2.2)
Requirement already satisfied: absl-py>=0.1.6 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (0.7.1)
Requirement already satisfied: astor>=0.6.0 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (0.7.1)
Requirement already satisfied: keras-applications>=1.0.6 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (1.0.7)
Requirement already satisfied: six>=1.10.0 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (1.12.0)
Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (1.1.0)
Requirement already satisfied: grpcio>=1.8.6 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (1.19.0)
Requirement already satisfied: wheel>=0.26 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (0.33.1)
Requirement already satisfied: tensorboard<1.14.0,>=1.13.0 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (1.13.1)
Requirement already satisfied: numpy>=1.13.3 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (1.16.2)
Requirement already satisfied: protobuf>=3.6.1 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (3.7.0)
Requirement already satisfied: tensorflow-estimator<1.14.0rc0,>=1.13.0 in /usr/local/lib/python3.6/site-packages (from tensorflow>=1.12.0->-r requirements.txt (line 1)) (1.13.0)
Requirement already satisfied: h5py in /usr/local/lib/python3.6/site-packages (from keras-applications>=1.0.6->tensorflow>=1.12.0->-r requirements.txt (line 1)) (2.9.0)
Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.6/site-packages (from tensorboard<1.14.0,>=1.13.0->tensorflow>=1.12.0->-r requirements.txt (line 1)) (3.0.1)
Requirement already satisfied: werkzeug>=0.11.15 in /usr/local/lib/python3.6/site-packages (from tensorboard<1.14.0,>=1.13.0->tensorflow>=1.12.0->-r requirements.txt (line 1)) (0.15.0)
Requirement already satisfied: setuptools in /usr/local/lib/python3.6/site-packages (from protobuf>=3.6.1->tensorflow>=1.12.0->-r requirements.txt (line 1)) (40.8.0)
Requirement already satisfied: mock>=2.0.0 in /usr/local/lib/python3.6/site-packages (from tensorflow-estimator<1.14.0rc0,>=1.13.0->tensorflow>=1.12.0->-r requirements.txt (line 1)) (2.0.0)
Requirement already satisfied: pbr>=0.11 in /usr/local/lib/python3.6/site-packages (from mock>=2.0.0->tensorflow-estimator<1.14.0rc0,>=1.13.0->tensorflow>=1.12.0->-r requirements.txt (line 1)) (5.1.3)
Url '/whl' is ignored. It is either a non-existing path or lacks a specific scheme.
You are using pip version 19.0.3, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Build completed successfully
3) Send some data to the docker model to test it¶
We first run the docker image we just created as a container called âmnist_predictorâ
[3]:
!docker run --name "mnist_predictor" -d --rm -p 5000:5000 deep-mnist:0.1
9087047e368ac8f285e1f742704b4c0c7bceac7d29ee90b3b0a6ef2d61ebd15c
Send some random features that conform to the contract
[6]:
import matplotlib.pyplot as plt
import numpy as np
# This is the variable that was initialised at the beginning of the file
i = [0]
x = mnist.test.images[i]
y = mnist.test.labels[i]
plt.imshow(x.reshape((28, 28)), cmap="gray")
plt.show()
print("Expected label: ", np.sum(range(0, 10) * y), ". One hot encoding: ", y)

Expected label: 7.0 . One hot encoding: [[0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]]
[7]:
import math
import numpy as np
from seldon_core.seldon_client import SeldonClient
# We now test the REST endpoint expecting the same result
endpoint = "0.0.0.0:5000"
batch = x
payload_type = "ndarray"
sc = SeldonClient(microservice_endpoint=endpoint)
# We use the microservice, instead of the "predict" function
client_prediction = sc.microservice(
data=batch, method="predict", payload_type=payload_type, names=["tfidf"]
)
for proba, label in zip(
client_prediction.response.data.ndarray.values[0].list_value.ListFields()[0][1],
range(0, 10),
):
print(f"LABEL {label}:\t {proba.number_value*100:6.4f} %")
LABEL 0: 0.0064 %
LABEL 1: 0.0000 %
LABEL 2: 0.0155 %
LABEL 3: 0.2862 %
LABEL 4: 0.0003 %
LABEL 5: 0.0027 %
LABEL 6: 0.0000 %
LABEL 7: 99.6643 %
LABEL 8: 0.0020 %
LABEL 9: 0.0227 %
[8]:
!docker rm mnist_predictor --force
mnist_predictor
4) Install and configure Azure tools¶
First we install the azure cli - follow specific instructions at https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest
[ ]:
!curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
Configure the azure CLI so it can talk to your server¶
(if you are getting issues, make sure you have the permmissions to create clusters)
You must run this through a terminal and follow the instructions:
az login
Once you are logged in, we can create our cluster. Run the following command, it may take a while so feel free to get a â.
[ ]:
%%bash
# We'll create a resource group
az group create --name SeldonResourceGroup --location westus
# Now we create the cluster
az aks create \
--resource-group SeldonResourceGroup \
--name SeldonCluster \
--node-count 1 \
--enable-addons monitoring \
--generate-ssh-keys
--kubernetes-version 1.13.5
Once itâs created we can authenticate our local kubectl
to make sure we can talk to the azure cluster:
[ ]:
!az aks get-credentials --resource-group SeldonResourceGroup --name SeldonCluster
And now we can check that this has been successful by making sure that our kubectl
context is pointing to the cluster:
[ ]:
!kubectl config get-contexts
Setup Seldon Core¶
Use the setup notebook to Setup Cluster with Ambassador Ingress and Install Seldon Core. Instructions also online.
Push docker image¶
In order for the EKS seldon deployment to access the image we just built, we need to push it to the Azure Container Registry (ACR) - you can check if itâs been successfully created in the dashboard https://portal.azure.com/#blade/HubsExtension/BrowseResourceBlade/resourceType/Microsoft.ContainerRegistry%2Fregistries
If you have any issues please follow the official Azure documentation: https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-azure-cli
First we create a registry¶
Make sure you keep the loginServer
value in the output dictionary as weâll use it below.
[14]:
!az acr create --resource-group SeldonResourceGroup --name SeldonContainerRegistry --sku Basic
{- Finished ..
"adminUserEnabled": false,
"creationDate": "2019-06-06T10:51:55.288108+00:00",
"id": "/subscriptions/df7969cc-8033-4c83-b027-14c0424f039d/resourceGroups/KlawClusterResourceGroup/providers/Microsoft.ContainerRegistry/registries/SeldonContainerRegistry",
"location": "westus",
"loginServer": "seldoncontainerregistry.azurecr.io",
"name": "SeldonContainerRegistry",
"networkRuleSet": null,
"provisioningState": "Succeeded",
"resourceGroup": "KlawClusterResourceGroup",
"sku": {
"name": "Basic",
"tier": "Basic"
},
"status": null,
"storageAccount": null,
"tags": {},
"type": "Microsoft.ContainerRegistry/registries"
}
Make sure your local docker instance has access to the registry¶
[15]:
!az acr login --name SeldonContainerRegistry
Login Succeeded
WARNING! Your password will be stored unencrypted in /home/alejandro/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Now prepare docker image¶
We need to first tag the docker image before we can push it.
NOTE: if you named your registry different make sure you change the value of seldoncontainerregistry.azurecr.io
[18]:
!docker tag deep-mnist:0.1 seldoncontainerregistry.azurecr.io/deep-mnist:0.1
And push the image¶
NOTE: if you named your registry different make sure you change the value of seldoncontainerregistry.azurecr.io
[19]:
!docker push seldoncontainerregistry.azurecr.io/deep-mnist:0.1
The push refers to repository [seldoncontainerregistry.azurecr.io/deep-mnist]
b4fe3076: Preparing
e4a983d1: Preparing
74b2c556: Preparing
9472b523: Preparing
a2a7ea60: Preparing
eddb328a: Preparing
1393f8e7: Preparing
67d6e30e: Preparing
f19da2c9: Preparing
9ec591c4: Preparing
32b1ff99: Preparing
64f96dbc: Preparing
e6d76fd9: Preparing
11a84ad4: Preparing
4b2c556: Pushing 187.1MB/648.8MBPushing 28.9MB/648.8MBPushing 60.12MB/141.8MBPushing 60.64MB/141.8MBPushing 141.9MBPushing 185.5MB/648.8MB32b1ff99: Pushed 570.6MB/556.5MBPushing 254.7MB/556.5MBPushing 268.7MB/648.8MBPushing 6.456MB/100.6MBPushing 345.2MB/648.8MBPushing 398.1MB/648.8MBPushing 55.64MB/100.6MBPushing 481.1MB/648.8MBPushing 473.8MB/556.5MB0.1: digest: sha256:b6110da62719e103bfd8c4b187f868b4341c35be16d288018d529da1cfa2585c size: 3482
Running the Model¶
We will now run the model. As you can see we have a placeholder "REPLACE_FOR_IMAGE_AND_TAG"
, which weâll replace to point to our registry.
Letâs first have a look at the file weâll be using to trigger the model:
[20]:
!cat deep_mnist.json
{
"apiVersion": "machinelearning.seldon.io/v1alpha2",
"kind": "SeldonDeployment",
"metadata": {
"labels": {
"app": "seldon"
},
"name": "deep-mnist"
},
"spec": {
"annotations": {
"project_name": "Tensorflow MNIST",
"deployment_version": "v1"
},
"name": "deep-mnist",
"predictors": [
{
"componentSpecs": [{
"spec": {
"containers": [
{
"image": "REPLACE_FOR_IMAGE_AND_TAG",
"imagePullPolicy": "IfNotPresent",
"name": "classifier",
"resources": {
"requests": {
"memory": "1Mi"
}
}
}
],
"terminationGracePeriodSeconds": 20
}
}],
"graph": {
"children": [],
"name": "classifier",
"endpoint": {
"type" : "REST"
},
"type": "MODEL"
},
"name": "single-model",
"replicas": 1,
"annotations": {
"predictor_version" : "v1"
}
}
]
}
}
Now letâs trigger seldon to run the model.
Run the deployment in your cluster¶
NOTE: In order for this to work you need to make sure that your cluster has the permissions to pull the images. You can do this by:
Go into the Azure Container Registry
Select the SeldonContainerRegistry you created
Click on âAdd a role assignmentâ
Select the AcrPull role
Select service principle
Find the SeldonCluster
Wait until the role has been added
We basically have a yaml file, where we want to replace the value âREPLACE_FOR_IMAGE_AND_TAGâ for the image you pushed
[33]:
%%bash
# Change accordingly if your registry is called differently
sed 's|REPLACE_FOR_IMAGE_AND_TAG|seldoncontainerregistry.azurecr.io/deep-mnist:0.1|g' deep_mnist.json | kubectl apply -f -
seldondeployment.machinelearning.seldon.io/deep-mnist created
And letâs check that itâs been created.
You should see an image called âdeep-mnist-single-modelâŠâ.
Weâll wait until STATUS changes from âContainerCreatingâ to âRunningâ
[ ]:
!kubectl get pods
Test the model¶
Now we can test the model, letâs first find out what is the URL that weâll have to use:
[43]:
!kubectl get svc ambassador -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
52.160.64.65
Weâll use a random example from our dataset
[35]:
import matplotlib.pyplot as plt
# This is the variable that was initialised at the beginning of the file
i = [0]
x = mnist.test.images[i]
y = mnist.test.labels[i]
plt.imshow(x.reshape((28, 28)), cmap="gray")
plt.show()
print("Expected label: ", np.sum(range(0, 10) * y), ". One hot encoding: ", y)

Expected label: 7.0 . One hot encoding: [[0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]]
We can now add the URL above to send our request:
[44]:
import math
import numpy as np
from seldon_core.seldon_client import SeldonClient
host = "52.160.64.65"
port = "80" # Make sure you use the port above
batch = x
payload_type = "ndarray"
sc = SeldonClient(
gateway="ambassador", ambassador_endpoint=host + ":" + port, namespace="default"
)
client_prediction = sc.predict(
data=batch, deployment_name="deep-mnist", names=["text"], payload_type=payload_type
)
print(client_prediction)
Success:True message:
Request:
data {
names: "text"
ndarray {
values {
list_value {
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.3294117748737335
}
values {
number_value: 0.7254902124404907
}
values {
number_value: 0.6235294342041016
}
values {
number_value: 0.5921568870544434
}
values {
number_value: 0.2352941334247589
}
values {
number_value: 0.1411764770746231
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.8705883026123047
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9450981020927429
}
values {
number_value: 0.7764706611633301
}
values {
number_value: 0.7764706611633301
}
values {
number_value: 0.7764706611633301
}
values {
number_value: 0.7764706611633301
}
values {
number_value: 0.7764706611633301
}
values {
number_value: 0.7764706611633301
}
values {
number_value: 0.7764706611633301
}
values {
number_value: 0.7764706611633301
}
values {
number_value: 0.6666666865348816
}
values {
number_value: 0.2039215862751007
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.26274511218070984
}
values {
number_value: 0.44705885648727417
}
values {
number_value: 0.2823529541492462
}
values {
number_value: 0.44705885648727417
}
values {
number_value: 0.6392157077789307
}
values {
number_value: 0.8901961445808411
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.8823530077934265
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9803922176361084
}
values {
number_value: 0.8980392813682556
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.5490196347236633
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.06666667014360428
}
values {
number_value: 0.25882354378700256
}
values {
number_value: 0.05490196496248245
}
values {
number_value: 0.26274511218070984
}
values {
number_value: 0.26274511218070984
}
values {
number_value: 0.26274511218070984
}
values {
number_value: 0.23137256503105164
}
values {
number_value: 0.08235294371843338
}
values {
number_value: 0.9254902601242065
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.41568630933761597
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.32549020648002625
}
values {
number_value: 0.9921569228172302
}
values {
number_value: 0.8196079134941101
}
values {
number_value: 0.07058823853731155
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.08627451211214066
}
values {
number_value: 0.9137255549430847
}
values {
number_value: 1.0
}
values {
number_value: 0.32549020648002625
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.5058823823928833
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9333333969116211
}
values {
number_value: 0.1725490242242813
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.23137256503105164
}
values {
number_value: 0.9764706492424011
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.24313727021217346
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.5215686559677124
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.7333333492279053
}
values {
number_value: 0.019607843831181526
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.03529411926865578
}
values {
number_value: 0.803921639919281
}
values {
number_value: 0.9725490808486938
}
values {
number_value: 0.22745099663734436
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.4941176772117615
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.7137255072593689
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.29411765933036804
}
values {
number_value: 0.9843137860298157
}
values {
number_value: 0.9411765336990356
}
values {
number_value: 0.22352942824363708
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.07450980693101883
}
values {
number_value: 0.8666667342185974
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.6509804129600525
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.011764707043766975
}
values {
number_value: 0.7960785031318665
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.8588235974311829
}
values {
number_value: 0.13725490868091583
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.14901961386203766
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.3019607961177826
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.12156863510608673
}
values {
number_value: 0.8784314393997192
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.45098042488098145
}
values {
number_value: 0.003921568859368563
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.5215686559677124
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.2039215862751007
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.2392157018184662
}
values {
number_value: 0.9490196704864502
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.2039215862751007
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.4745098352432251
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.8588235974311829
}
values {
number_value: 0.1568627506494522
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.4745098352432251
}
values {
number_value: 0.9960784912109375
}
values {
number_value: 0.8117647767066956
}
values {
number_value: 0.07058823853731155
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
values {
number_value: 0.0
}
}
}
}
}
Response:
meta {
puid: "hndttmvl5qua3beavsre2n8hrj"
requestPath {
key: "classifier"
value: "seldoncontainerregistry.azurecr.io/deep-mnist:0.1"
}
}
data {
names: "class:0"
names: "class:1"
names: "class:2"
names: "class:3"
names: "class:4"
names: "class:5"
names: "class:6"
names: "class:7"
names: "class:8"
names: "class:9"
ndarray {
values {
list_value {
values {
number_value: 6.386729364749044e-05
}
values {
number_value: 7.228476039955467e-09
}
values {
number_value: 0.00015463074669241905
}
values {
number_value: 0.00286240060813725
}
values {
number_value: 2.6505524601816433e-06
}
values {
number_value: 2.7261585273663513e-05
}
values {
number_value: 2.7168187699544433e-08
}
values {
number_value: 0.9966427087783813
}
values {
number_value: 1.9810671801678836e-05
}
values {
number_value: 0.00022661285765934736
}
}
}
}
}
Letâs visualise the probability for each label¶
It seems that it correctly predicted the number 7
[45]:
for proba, label in zip(
client_prediction.response.data.ndarray.values[0].list_value.ListFields()[0][1],
range(0, 10),
):
print(f"LABEL {label}:\t {proba.number_value*100:6.4f} %")
LABEL 0: 0.0064 %
LABEL 1: 0.0000 %
LABEL 2: 0.0155 %
LABEL 3: 0.2862 %
LABEL 4: 0.0003 %
LABEL 5: 0.0027 %
LABEL 6: 0.0000 %
LABEL 7: 99.6643 %
LABEL 8: 0.0020 %
LABEL 9: 0.0227 %
[ ]: