tutorial update

This commit is contained in:
Roope Astala
2019-02-11 16:07:10 -05:00
parent 90aaeea113
commit 82bb9fcac3
4 changed files with 246 additions and 242 deletions

View File

@@ -27,7 +27,7 @@
"> * Deploy the model to ACI\n",
"> * Test the deployed model\n",
"\n",
"ACI is not ideal for production deployments, but it is great for testing and understanding the workflow. For scalable production deployments, consider using AKS.\n",
"ACI is a great solution for testing and understanding the workflow. For scalable production deployments, consider using Azure Kubernetes Service. For more information, see [how to deploy and where](https://docs.microsoft.com/azure/machine-learning/service/how-to-deploy-and-where).\n",
"\n",
"\n",
"## Prerequisites\n",
@@ -68,10 +68,12 @@
"import os\n",
"import urllib.request\n",
"\n",
"os.makedirs('./data', exist_ok=True)\n",
"data_folder = os.path.join(os.getcwd(), 'data')\n",
"os.makedirs(data_folder, exist_ok = True)\n",
"\n",
"urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz', filename='./data/test-images.gz')\n",
"urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz', filename='./data/test-labels.gz')"
"\n",
"urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz', filename=os.path.join(data_folder, 'test-images.gz'))\n",
"urllib.request.urlretrieve('http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz', filename=os.path.join(data_folder, 'test-labels.gz'))"
]
},
{
@@ -101,7 +103,7 @@
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
" \n",
"import azureml\n",
"import azureml.core\n",
"\n",
"# display the core SDK version number\n",
"print(\"Azure ML SDK Version: \", azureml.core.VERSION)"
@@ -127,11 +129,18 @@
},
"outputs": [],
"source": [
"from azureml.core import Workspace\n",
"from azureml.core.model import Model\n",
"import os \n",
"ws = Workspace.from_config()\n",
"model=Model(ws, 'sklearn_mnist')\n",
"model.download(target_dir='.', exist_ok=True)\n",
"\n",
"model.download(target_dir=os.getcwd(), exist_ok=True)\n",
"\n",
"# verify the downloaded model file\n",
"os.stat('./sklearn_mnist_model.pkl')"
"file_path = os.path.join(os.getcwd(), \"sklearn_mnist_model.pkl\")\n",
"\n",
"os.stat(file_path)"
]
},
{
@@ -157,10 +166,12 @@
"outputs": [],
"source": [
"from utils import load_data\n",
"import os\n",
"\n",
"data_folder = os.path.join(os.getcwd(), 'data')\n",
"# note we also shrink the intensity values (X) from 0-255 to 0-1. This helps the neural network converge faster\n",
"X_test = load_data('./data/test-images.gz', False) / 255.0\n",
"y_test = load_data('./data/test-labels.gz', True).reshape(-1)"
"X_test = load_data(os.path.join(data_folder, 'test-images.gz'), False) / 255.0\n",
"y_test = load_data(os.path.join(data_folder, 'test-labels.gz'), True).reshape(-1)"
]
},
{
@@ -181,7 +192,7 @@
"import pickle\n",
"from sklearn.externals import joblib\n",
"\n",
"clf = joblib.load('./sklearn_mnist_model.pkl')\n",
"clf = joblib.load( os.path.join(os.getcwd(), 'sklearn_mnist_model.pkl'))\n",
"y_hat = clf.predict(X_test)"
]
},
@@ -220,7 +231,7 @@
"metadata": {},
"outputs": [],
"source": [
"# normalize the diagnal cells so that they don't overpower the rest of the cells when visualized\n",
"# normalize the diagonal cells so that they don't overpower the rest of the cells when visualized\n",
"row_sums = conf_mx.sum(axis=1, keepdims=True)\n",
"norm_conf_mx = conf_mx / row_sums\n",
"np.fill_diagonal(norm_conf_mx, 0)\n",
@@ -282,7 +293,7 @@
"\n",
"def init():\n",
" global model\n",
" # retreive the path to the model file using the model name\n",
" # retrieve the path to the model file using the model name\n",
" model_path = Model.get_model_path('sklearn_mnist')\n",
" model = joblib.load(model_path)\n",
"\n",