diff --git a/configuration.ipynb b/configuration.ipynb index 3a92e33f..fcef9920 100644 --- a/configuration.ipynb +++ b/configuration.ipynb @@ -103,7 +103,7 @@ "source": [ "import azureml.core\n", "\n", - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/classification-bank-marketing-all-features/auto-ml-classification-bank-marketing-all-features.ipynb b/how-to-use-azureml/automated-machine-learning/classification-bank-marketing-all-features/auto-ml-classification-bank-marketing-all-features.ipynb index d085be60..5b609cf8 100644 --- a/how-to-use-azureml/automated-machine-learning/classification-bank-marketing-all-features/auto-ml-classification-bank-marketing-all-features.ipynb +++ b/how-to-use-azureml/automated-machine-learning/classification-bank-marketing-all-features/auto-ml-classification-bank-marketing-all-features.ipynb @@ -105,7 +105,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, @@ -675,10 +675,8 @@ "model_name = best_run.properties['model_name']\n", "\n", "script_file_name = 'inference/score.py'\n", - "conda_env_file_name = 'inference/env.yml'\n", "\n", - "best_run.download_file('outputs/scoring_file_v_1_0_0.py', 'inference/score.py')\n", - "best_run.download_file('outputs/conda_env_v_1_0_0.yml', 'inference/env.yml')" + "best_run.download_file('outputs/scoring_file_v_1_0_0.py', 'inference/score.py')" ] }, { @@ -721,8 +719,7 @@ "from azureml.core.model import Model\n", "from azureml.core.environment import Environment\n", "\n", - "myenv = Environment.from_conda_specification(name=\"myenv\", file_path=conda_env_file_name)\n", - "inference_config = InferenceConfig(entry_script=script_file_name, environment=myenv)\n", + "inference_config = InferenceConfig(entry_script=script_file_name)\n", "\n", "aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1, \n", " memory_gb = 1, \n", diff --git a/how-to-use-azureml/automated-machine-learning/classification-bank-marketing-all-features/auto-ml-classification-bank-marketing-all-features.yml b/how-to-use-azureml/automated-machine-learning/classification-bank-marketing-all-features/auto-ml-classification-bank-marketing-all-features.yml index a0d7ad03..0f30214b 100644 --- a/how-to-use-azureml/automated-machine-learning/classification-bank-marketing-all-features/auto-ml-classification-bank-marketing-all-features.yml +++ b/how-to-use-azureml/automated-machine-learning/classification-bank-marketing-all-features/auto-ml-classification-bank-marketing-all-features.yml @@ -2,7 +2,3 @@ name: auto-ml-classification-bank-marketing-all-features dependencies: - pip: - azureml-sdk - - azureml-train-automl - - azureml-widgets - - matplotlib - - onnxruntime==1.0.0 diff --git a/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.ipynb b/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.ipynb index 2c42ea18..80e51c79 100644 --- a/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.ipynb +++ b/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.ipynb @@ -93,7 +93,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.yml b/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.yml index 5edf8b84..148f33d5 100644 --- a/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.yml +++ b/how-to-use-azureml/automated-machine-learning/classification-credit-card-fraud/auto-ml-classification-credit-card-fraud.yml @@ -2,6 +2,3 @@ name: auto-ml-classification-credit-card-fraud dependencies: - pip: - azureml-sdk - - azureml-train-automl - - azureml-widgets - - matplotlib diff --git a/how-to-use-azureml/automated-machine-learning/classification-text-dnn/auto-ml-classification-text-dnn.ipynb b/how-to-use-azureml/automated-machine-learning/classification-text-dnn/auto-ml-classification-text-dnn.ipynb index 256d12a8..e5ce6556 100644 --- a/how-to-use-azureml/automated-machine-learning/classification-text-dnn/auto-ml-classification-text-dnn.ipynb +++ b/how-to-use-azureml/automated-machine-learning/classification-text-dnn/auto-ml-classification-text-dnn.ipynb @@ -97,7 +97,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/classification-text-dnn/auto-ml-classification-text-dnn.yml b/how-to-use-azureml/automated-machine-learning/classification-text-dnn/auto-ml-classification-text-dnn.yml index beb81945..4c952264 100644 --- a/how-to-use-azureml/automated-machine-learning/classification-text-dnn/auto-ml-classification-text-dnn.yml +++ b/how-to-use-azureml/automated-machine-learning/classification-text-dnn/auto-ml-classification-text-dnn.yml @@ -2,11 +2,3 @@ name: auto-ml-classification-text-dnn dependencies: - pip: - azureml-sdk - - azureml-train-automl - - azureml-widgets - - matplotlib - - https://download.pytorch.org/whl/cpu/torch-1.1.0-cp35-cp35m-win_amd64.whl - - sentencepiece==0.1.82 - - pytorch-transformers==1.0 - - spacy==2.1.8 - - https://aka.ms/automl-resources/packages/en_core_web_sm-2.1.0.tar.gz diff --git a/how-to-use-azureml/automated-machine-learning/continuous-retraining/auto-ml-continuous-retraining.ipynb b/how-to-use-azureml/automated-machine-learning/continuous-retraining/auto-ml-continuous-retraining.ipynb index dda283d4..92e893a0 100644 --- a/how-to-use-azureml/automated-machine-learning/continuous-retraining/auto-ml-continuous-retraining.ipynb +++ b/how-to-use-azureml/automated-machine-learning/continuous-retraining/auto-ml-continuous-retraining.ipynb @@ -88,7 +88,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, @@ -201,7 +201,7 @@ "conda_run_config.environment.docker.enabled = True\n", "conda_run_config.environment.docker.base_image = azureml.core.runconfig.DEFAULT_CPU_IMAGE\n", "\n", - "cd = CondaDependencies.create(pip_packages=['azureml-sdk[automl]', 'applicationinsights', 'azureml-opendatasets'], \n", + "cd = CondaDependencies.create(pip_packages=['azureml-sdk[automl]', 'applicationinsights', 'azureml-opendatasets', 'azureml-defaults'], \n", " conda_packages=['numpy==1.16.2'], \n", " pin_sdk_version=False)\n", "#cd.add_pip_package('azureml-explain-model')\n", diff --git a/how-to-use-azureml/automated-machine-learning/continuous-retraining/auto-ml-continuous-retraining.yml b/how-to-use-azureml/automated-machine-learning/continuous-retraining/auto-ml-continuous-retraining.yml index 229de3be..9b05ea1f 100644 --- a/how-to-use-azureml/automated-machine-learning/continuous-retraining/auto-ml-continuous-retraining.yml +++ b/how-to-use-azureml/automated-machine-learning/continuous-retraining/auto-ml-continuous-retraining.yml @@ -2,7 +2,3 @@ name: auto-ml-continuous-retraining dependencies: - pip: - azureml-sdk - - azureml-train-automl - - azureml-widgets - - matplotlib - - azureml-pipeline diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-beer-remote/auto-ml-forecasting-beer-remote.ipynb b/how-to-use-azureml/automated-machine-learning/forecasting-beer-remote/auto-ml-forecasting-beer-remote.ipynb index 58e5e373..8d24e995 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-beer-remote/auto-ml-forecasting-beer-remote.ipynb +++ b/how-to-use-azureml/automated-machine-learning/forecasting-beer-remote/auto-ml-forecasting-beer-remote.ipynb @@ -114,7 +114,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-beer-remote/auto-ml-forecasting-beer-remote.yml b/how-to-use-azureml/automated-machine-learning/forecasting-beer-remote/auto-ml-forecasting-beer-remote.yml index a70c7033..103560d8 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-beer-remote/auto-ml-forecasting-beer-remote.yml +++ b/how-to-use-azureml/automated-machine-learning/forecasting-beer-remote/auto-ml-forecasting-beer-remote.yml @@ -1,11 +1,4 @@ name: auto-ml-forecasting-beer-remote dependencies: -- py-xgboost<=0.90 - pip: - azureml-sdk - - numpy==1.16.2 - - pandas==0.23.4 - - azureml-train-automl - - azureml-widgets - - matplotlib - - azureml-train diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.ipynb b/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.ipynb index 80212f26..497f495b 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.ipynb +++ b/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.ipynb @@ -87,7 +87,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.yml b/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.yml index c488ffc3..70a3271c 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.yml +++ b/how-to-use-azureml/automated-machine-learning/forecasting-bike-share/auto-ml-forecasting-bike-share.yml @@ -1,10 +1,4 @@ name: auto-ml-forecasting-bike-share dependencies: -- py-xgboost<=0.90 - pip: - azureml-sdk - - numpy==1.16.2 - - pandas==0.23.4 - - azureml-train-automl - - azureml-widgets - - matplotlib diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.ipynb b/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.ipynb index dead6f3c..f4cd5e78 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.ipynb +++ b/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.ipynb @@ -97,7 +97,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.yml b/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.yml index 30672301..13bd78f8 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.yml +++ b/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand/auto-ml-forecasting-energy-demand.yml @@ -2,8 +2,3 @@ name: auto-ml-forecasting-energy-demand dependencies: - pip: - azureml-sdk - - numpy==1.16.2 - - pandas==0.23.4 - - azureml-train-automl - - azureml-widgets - - matplotlib diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-forecast-function/auto-ml-forecasting-function.ipynb b/how-to-use-azureml/automated-machine-learning/forecasting-forecast-function/auto-ml-forecasting-function.ipynb index d04818ad..030bee04 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-forecast-function/auto-ml-forecasting-function.ipynb +++ b/how-to-use-azureml/automated-machine-learning/forecasting-forecast-function/auto-ml-forecasting-function.ipynb @@ -94,7 +94,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-forecast-function/auto-ml-forecasting-function.yml b/how-to-use-azureml/automated-machine-learning/forecasting-forecast-function/auto-ml-forecasting-function.yml index b91ef178..144797d6 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-forecast-function/auto-ml-forecasting-function.yml +++ b/how-to-use-azureml/automated-machine-learning/forecasting-forecast-function/auto-ml-forecasting-function.yml @@ -1,10 +1,4 @@ name: auto-ml-forecasting-function dependencies: -- py-xgboost<=0.90 - pip: - azureml-sdk - - numpy==1.16.2 - - pandas==0.23.4 - - azureml-train-automl - - azureml-widgets - - matplotlib diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb b/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb index 90f67f78..19fa29cb 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb +++ b/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.ipynb @@ -82,7 +82,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.yml b/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.yml index 7d20e174..a6cc3e71 100644 --- a/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.yml +++ b/how-to-use-azureml/automated-machine-learning/forecasting-orange-juice-sales/auto-ml-forecasting-orange-juice-sales.yml @@ -1,10 +1,4 @@ name: auto-ml-forecasting-orange-juice-sales dependencies: -- py-xgboost<=0.90 - pip: - azureml-sdk - - numpy==1.16.2 - - pandas==0.23.4 - - azureml-train-automl - - azureml-widgets - - matplotlib diff --git a/how-to-use-azureml/automated-machine-learning/local-run-classification-credit-card-fraud/auto-ml-classification-credit-card-fraud-local.ipynb b/how-to-use-azureml/automated-machine-learning/local-run-classification-credit-card-fraud/auto-ml-classification-credit-card-fraud-local.ipynb index 47759fc4..1fee1fce 100644 --- a/how-to-use-azureml/automated-machine-learning/local-run-classification-credit-card-fraud/auto-ml-classification-credit-card-fraud-local.ipynb +++ b/how-to-use-azureml/automated-machine-learning/local-run-classification-credit-card-fraud/auto-ml-classification-credit-card-fraud-local.ipynb @@ -96,7 +96,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/local-run-classification-credit-card-fraud/auto-ml-classification-credit-card-fraud-local.yml b/how-to-use-azureml/automated-machine-learning/local-run-classification-credit-card-fraud/auto-ml-classification-credit-card-fraud-local.yml index ed7aa7e0..6c817042 100644 --- a/how-to-use-azureml/automated-machine-learning/local-run-classification-credit-card-fraud/auto-ml-classification-credit-card-fraud-local.yml +++ b/how-to-use-azureml/automated-machine-learning/local-run-classification-credit-card-fraud/auto-ml-classification-credit-card-fraud-local.yml @@ -2,6 +2,3 @@ name: auto-ml-classification-credit-card-fraud-local dependencies: - pip: - azureml-sdk - - azureml-train-automl - - azureml-widgets - - matplotlib diff --git a/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb b/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb index de34c7f7..c0b70f1e 100644 --- a/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb +++ b/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.ipynb @@ -98,7 +98,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.yml b/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.yml index 75fe1e52..9db24f2b 100644 --- a/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.yml +++ b/how-to-use-azureml/automated-machine-learning/regression-explanation-featurization/auto-ml-regression-explanation-featurization.yml @@ -2,6 +2,3 @@ name: auto-ml-regression-explanation-featurization dependencies: - pip: - azureml-sdk - - azureml-train-automl - - azureml-widgets - - matplotlib diff --git a/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.ipynb b/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.ipynb index 25e908fc..37b3075f 100644 --- a/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.ipynb +++ b/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.ipynb @@ -92,7 +92,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.yml b/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.yml index 01892fb3..4e84e13a 100644 --- a/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.yml +++ b/how-to-use-azureml/automated-machine-learning/regression/auto-ml-regression.yml @@ -2,7 +2,3 @@ name: auto-ml-regression dependencies: - pip: - azureml-sdk - - pandas==0.23.4 - - azureml-train-automl - - azureml-widgets - - matplotlib diff --git a/how-to-use-azureml/deployment/accelerated-models/README.md b/how-to-use-azureml/deployment/accelerated-models/README.md index f49b6b30..9ebf26b1 100644 --- a/how-to-use-azureml/deployment/accelerated-models/README.md +++ b/how-to-use-azureml/deployment/accelerated-models/README.md @@ -50,10 +50,12 @@ pip install azureml-accel-models[gpu] ### Step 4: Follow our notebooks -The notebooks in this repo walk through the following scenarios: -* [Quickstart](accelerated-models-quickstart.ipynb), deploy and inference a ResNet50 model trained on ImageNet -* [Object Detection](accelerated-models-object-detection.ipynb), deploy and inference an SSD-VGG model that can do object detection -* [Training models](accelerated-models-training.ipynb), train one of our accelerated models on the Kaggle Cats and Dogs dataset to see how to improve accuracy on custom datasets +We provide notebooks to walk through the following scenarios, linked below: +* [Quickstart](https://github.com/Azure/MachineLearningNotebooks/blob/33d6def8c30d3dd3a5bfbea50b9c727788185faf/how-to-use-azureml/deployment/accelerated-models/accelerated-models-quickstart.ipynb), deploy and inference a ResNet50 model trained on ImageNet +* [Object Detection](https://github.com/Azure/MachineLearningNotebooks/blob/33d6def8c30d3dd3a5bfbea50b9c727788185faf/how-to-use-azureml/deployment/accelerated-models/accelerated-models-object-detection.ipynb), deploy and inference an SSD-VGG model that can do object detection +* [Training models](https://github.com/Azure/MachineLearningNotebooks/blob/33d6def8c30d3dd3a5bfbea50b9c727788185faf/how-to-use-azureml/deployment/accelerated-models/accelerated-models-training.ipynb), train one of our accelerated models on the Kaggle Cats and Dogs dataset to see how to improve accuracy on custom datasets + +**Note**: the above notebooks work only for tensorflow >= 1.6,<2.0. ## Model Classes diff --git a/how-to-use-azureml/deployment/deploy-multi-model/first_model.pkl b/how-to-use-azureml/deployment/deploy-multi-model/first_model.pkl deleted file mode 100644 index 095bbeab..00000000 Binary files a/how-to-use-azureml/deployment/deploy-multi-model/first_model.pkl and /dev/null differ diff --git a/how-to-use-azureml/deployment/deploy-multi-model/multi-model-register-and-deploy.ipynb b/how-to-use-azureml/deployment/deploy-multi-model/multi-model-register-and-deploy.ipynb index 1fbc5511..6a8b1514 100644 --- a/how-to-use-azureml/deployment/deploy-multi-model/multi-model-register-and-deploy.ipynb +++ b/how-to-use-azureml/deployment/deploy-multi-model/multi-model-register-and-deploy.ipynb @@ -86,7 +86,37 @@ "source": [ "In this example, we will be using and registering two models. \n", "\n", - "You wil need to have a `first_model.pkl` file and `second_model.pkl` file in the current directory. The below call registers the files as Models with the names `my_first_model` and `my_second_model` in the workspace." + "First we will train two simple models on the [diabetes dataset](https://scikit-learn.org/stable/datasets/index.html#diabetes-dataset) included with scikit-learn, serializing them to files in the current directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import joblib\n", + "import sklearn\n", + "\n", + "from sklearn.datasets import load_diabetes\n", + "from sklearn.linear_model import BayesianRidge, Ridge\n", + "\n", + "x, y = load_diabetes(return_X_y=True)\n", + "\n", + "first_model = Ridge().fit(x, y)\n", + "second_model = BayesianRidge().fit(x, y)\n", + "\n", + "joblib.dump(first_model, \"first_model.pkl\")\n", + "joblib.dump(second_model, \"second_model.pkl\")\n", + "\n", + "print(\"Trained models using scikit-learn {}.\".format(sklearn.__version__))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have our trained models locally, we will register them as Models with the names `my_first_model` and `my_second_model` in the workspace." ] }, { @@ -102,12 +132,12 @@ "from azureml.core.model import Model\n", "\n", "my_model_1 = Model.register(model_path=\"first_model.pkl\",\n", - " model_name=\"my_first_model\",\n", - " workspace=ws)\n", + " model_name=\"my_first_model\",\n", + " workspace=ws)\n", "\n", "my_model_2 = Model.register(model_path=\"second_model.pkl\",\n", - " model_name=\"my_second_model\",\n", - " workspace=ws)" + " model_name=\"my_second_model\",\n", + " workspace=ws)" ] }, { @@ -149,25 +179,24 @@ "outputs": [], "source": [ "%%writefile score.py\n", - "import pickle\n", + "import joblib\n", "import json\n", "import numpy as np\n", - "from sklearn.externals import joblib\n", - "from sklearn.linear_model import Ridge\n", + "\n", "from azureml.core.model import Model\n", "\n", "def init():\n", " global model_1, model_2\n", - " # note here \"my_first_model\" is the name of the model registered under the workspace\n", - " # this call should return the path to the model.pkl file on the local disk.\n", + " # Here \"my_first_model\" is the name of the model registered under the workspace.\n", + " # This call will return the path to the .pkl file on the local disk.\n", " model_1_path = Model.get_model_path(model_name='my_first_model')\n", " model_2_path = Model.get_model_path(model_name='my_second_model')\n", " \n", - " # deserialize the model files back into a sklearn model\n", + " # Deserialize the model files back into scikit-learn models.\n", " model_1 = joblib.load(model_1_path)\n", " model_2 = joblib.load(model_2_path)\n", "\n", - "# note you can pass in multiple rows for scoring\n", + "# Note you can pass in multiple rows for scoring.\n", "def run(raw_data):\n", " try:\n", " data = json.loads(raw_data)['data']\n", @@ -177,7 +206,7 @@ " result_1 = model_1.predict(data)\n", " result_2 = model_2.predict(data)\n", "\n", - " # you can return any data type as long as it is JSON-serializable\n", + " # You can return any JSON-serializable value.\n", " return {\"prediction1\": result_1.tolist(), \"prediction2\": result_2.tolist()}\n", " except Exception as e:\n", " result = str(e)\n", @@ -208,10 +237,10 @@ "source": [ "from azureml.core import Environment\n", "\n", - "env = Environment.from_conda_specification(name='deploytocloudenv', file_path='myenv.yml')\n", - "\n", - "# This is optional at this point\n", - "# env.register(workspace=ws)" + "env = Environment(\"deploytocloudenv\")\n", + "env.python.conda_dependencies.add_pip_package(\"joblib\")\n", + "env.python.conda_dependencies.add_pip_package(\"numpy\")\n", + "env.python.conda_dependencies.add_pip_package(\"scikit-learn=={}\".format(sklearn.__version__))" ] }, { @@ -281,25 +310,15 @@ }, "outputs": [], "source": [ - "from azureml.core.webservice import AciWebservice, Webservice\n", - "from azureml.exceptions import WebserviceException\n", + "from azureml.core.webservice import AciWebservice\n", + "\n", + "aci_service_name = \"aciservice-multimodel\"\n", "\n", "deployment_config = AciWebservice.deploy_configuration(cpu_cores=1, memory_gb=1)\n", - "aci_service_name = 'aciservice-multimodel'\n", - "\n", - "try:\n", - " # if you want to get existing service below is the command\n", - " # since aci name needs to be unique in subscription deleting existing aci if any\n", - " # we use aci_service_name to create azure aci\n", - " service = Webservice(ws, name=aci_service_name)\n", - " if service:\n", - " service.delete()\n", - "except WebserviceException as e:\n", - " print()\n", - "\n", - "service = Model.deploy(ws, aci_service_name, [my_model_1, my_model_2], inference_config, deployment_config)\n", "\n", + "service = Model.deploy(ws, aci_service_name, [my_model_1, my_model_2], inference_config, deployment_config, overwrite=True)\n", "service.wait_for_deployment(True)\n", + "\n", "print(service.state)" ] }, @@ -317,13 +336,11 @@ "outputs": [], "source": [ "import json\n", - "test_sample = json.dumps({'data': [\n", - " [1,2,3,4,5,6,7,8,9,10], \n", - " [10,9,8,7,6,5,4,3,2,1]\n", - "]})\n", "\n", - "test_sample_encoded = bytes(test_sample, encoding='utf8')\n", - "prediction = service.run(input_data=test_sample_encoded)\n", + "test_sample = json.dumps({'data': x[0:2].tolist()})\n", + "\n", + "prediction = service.run(test_sample)\n", + "\n", "print(prediction)" ] }, diff --git a/how-to-use-azureml/deployment/deploy-multi-model/multi-model-register-and-deploy.yml b/how-to-use-azureml/deployment/deploy-multi-model/multi-model-register-and-deploy.yml index c537902a..497c43b4 100644 --- a/how-to-use-azureml/deployment/deploy-multi-model/multi-model-register-and-deploy.yml +++ b/how-to-use-azureml/deployment/deploy-multi-model/multi-model-register-and-deploy.yml @@ -2,3 +2,5 @@ name: multi-model-register-and-deploy dependencies: - pip: - azureml-sdk + - numpy + - scikit-learn diff --git a/how-to-use-azureml/deployment/deploy-multi-model/myenv.yml b/how-to-use-azureml/deployment/deploy-multi-model/myenv.yml deleted file mode 100644 index 36ee6703..00000000 --- a/how-to-use-azureml/deployment/deploy-multi-model/myenv.yml +++ /dev/null @@ -1,8 +0,0 @@ -name: project_environment -dependencies: - - python=3.6.2 - - pip: - - azureml-defaults - - scikit-learn - - numpy - - inference-schema[numpy-support] diff --git a/how-to-use-azureml/deployment/deploy-multi-model/second_model.pkl b/how-to-use-azureml/deployment/deploy-multi-model/second_model.pkl deleted file mode 100644 index 50cad6a7..00000000 Binary files a/how-to-use-azureml/deployment/deploy-multi-model/second_model.pkl and /dev/null differ diff --git a/how-to-use-azureml/deployment/deploy-to-cloud/features.csv b/how-to-use-azureml/deployment/deploy-to-cloud/features.csv deleted file mode 100644 index 3ce3d5fb..00000000 --- a/how-to-use-azureml/deployment/deploy-to-cloud/features.csv +++ /dev/null @@ -1,442 +0,0 @@ -3.807590643342410180e-02,5.068011873981870252e-02,6.169620651868849837e-02,2.187235499495579841e-02,-4.422349842444640161e-02,-3.482076283769860309e-02,-4.340084565202689815e-02,-2.592261998182820038e-03,1.990842087631829876e-02,-1.764612515980519894e-02 --1.882016527791040067e-03,-4.464163650698899782e-02,-5.147406123880610140e-02,-2.632783471735180084e-02,-8.448724111216979540e-03,-1.916333974822199970e-02,7.441156407875940126e-02,-3.949338287409189657e-02,-6.832974362442149896e-02,-9.220404962683000083e-02 -8.529890629667830071e-02,5.068011873981870252e-02,4.445121333659410312e-02,-5.670610554934250001e-03,-4.559945128264750180e-02,-3.419446591411950259e-02,-3.235593223976569732e-02,-2.592261998182820038e-03,2.863770518940129874e-03,-2.593033898947460017e-02 --8.906293935226029801e-02,-4.464163650698899782e-02,-1.159501450521270051e-02,-3.665644679856060184e-02,1.219056876180000040e-02,2.499059336410210108e-02,-3.603757004385269719e-02,3.430885887772629900e-02,2.269202256674450122e-02,-9.361911330135799444e-03 -5.383060374248070309e-03,-4.464163650698899782e-02,-3.638469220447349689e-02,2.187235499495579841e-02,3.934851612593179802e-03,1.559613951041610019e-02,8.142083605192099172e-03,-2.592261998182820038e-03,-3.199144494135589684e-02,-4.664087356364819692e-02 --9.269547780327989928e-02,-4.464163650698899782e-02,-4.069594049999709917e-02,-1.944209332987930153e-02,-6.899064987206669775e-02,-7.928784441181220555e-02,4.127682384197570165e-02,-7.639450375000099436e-02,-4.118038518800790082e-02,-9.634615654166470144e-02 --4.547247794002570037e-02,5.068011873981870252e-02,-4.716281294328249912e-02,-1.599922263614299983e-02,-4.009563984984299695e-02,-2.480001206043359885e-02,7.788079970179680352e-04,-3.949338287409189657e-02,-6.291294991625119570e-02,-3.835665973397880263e-02 -6.350367559056099842e-02,5.068011873981870252e-02,-1.894705840284650021e-03,6.662967401352719310e-02,9.061988167926439408e-02,1.089143811236970016e-01,2.286863482154040048e-02,1.770335448356720118e-02,-3.581672810154919867e-02,3.064409414368320182e-03 -4.170844488444359899e-02,5.068011873981870252e-02,6.169620651868849837e-02,-4.009931749229690007e-02,-1.395253554402150001e-02,6.201685656730160021e-03,-2.867429443567860031e-02,-2.592261998182820038e-03,-1.495647502491130078e-02,1.134862324403770016e-02 --7.090024709716259699e-02,-4.464163650698899782e-02,3.906215296718960200e-02,-3.321357610482440076e-02,-1.257658268582039982e-02,-3.450761437590899733e-02,-2.499265663159149983e-02,-2.592261998182820038e-03,6.773632611028609918e-02,-1.350401824497050006e-02 --9.632801625429950054e-02,-4.464163650698899782e-02,-8.380842345523309422e-02,8.100872220010799790e-03,-1.033894713270950005e-01,-9.056118903623530669e-02,-1.394774321933030074e-02,-7.639450375000099436e-02,-6.291294991625119570e-02,-3.421455281914410201e-02 -2.717829108036539862e-02,5.068011873981870252e-02,1.750591148957160101e-02,-3.321357610482440076e-02,-7.072771253015849857e-03,4.597154030400080194e-02,-6.549067247654929980e-02,7.120997975363539678e-02,-9.643322289178400675e-02,-5.906719430815229877e-02 -1.628067572730669890e-02,-4.464163650698899782e-02,-2.884000768730720157e-02,-9.113481248670509197e-03,-4.320865536613589623e-03,-9.768885894535990141e-03,4.495846164606279866e-02,-3.949338287409189657e-02,-3.075120986455629965e-02,-4.249876664881350324e-02 -5.383060374248070309e-03,5.068011873981870252e-02,-1.894705840284650021e-03,8.100872220010799790e-03,-4.320865536613589623e-03,-1.571870666853709964e-02,-2.902829807069099918e-03,-2.592261998182820038e-03,3.839324821169769891e-02,-1.350401824497050006e-02 -4.534098333546320025e-02,-4.464163650698899782e-02,-2.560657146566450160e-02,-1.255635194240680048e-02,1.769438019460449832e-02,-6.128357906048329537e-05,8.177483968693349814e-02,-3.949338287409189657e-02,-3.199144494135589684e-02,-7.563562196749110123e-02 --5.273755484206479882e-02,5.068011873981870252e-02,-1.806188694849819934e-02,8.040115678847230274e-02,8.924392882106320368e-02,1.076617872765389949e-01,-3.971920784793980114e-02,1.081111006295440019e-01,3.605579008983190309e-02,-4.249876664881350324e-02 --5.514554978810590376e-03,-4.464163650698899782e-02,4.229558918883229851e-02,4.941532054484590319e-02,2.457414448561009990e-02,-2.386056667506489953e-02,7.441156407875940126e-02,-3.949338287409189657e-02,5.227999979678119719e-02,2.791705090337660150e-02 -7.076875249260000666e-02,5.068011873981870252e-02,1.211685112016709989e-02,5.630106193231849965e-02,3.420581449301800248e-02,4.941617338368559792e-02,-3.971920784793980114e-02,3.430885887772629900e-02,2.736770754260900093e-02,-1.077697500466389974e-03 --3.820740103798660192e-02,-4.464163650698899782e-02,-1.051720243133190055e-02,-3.665644679856060184e-02,-3.734373413344069942e-02,-1.947648821001150138e-02,-2.867429443567860031e-02,-2.592261998182820038e-03,-1.811826730789670159e-02,-1.764612515980519894e-02 --2.730978568492789874e-02,-4.464163650698899782e-02,-1.806188694849819934e-02,-4.009931749229690007e-02,-2.944912678412469915e-03,-1.133462820348369975e-02,3.759518603788870178e-02,-3.949338287409189657e-02,-8.944018957797799166e-03,-5.492508739331759815e-02 --4.910501639104519755e-02,-4.464163650698899782e-02,-5.686312160821060252e-02,-4.354218818603310115e-02,-4.559945128264750180e-02,-4.327577130601600180e-02,7.788079970179680352e-04,-3.949338287409189657e-02,-1.190068480150809939e-02,1.549073015887240078e-02 --8.543040090124079389e-02,5.068011873981870252e-02,-2.237313524402180162e-02,1.215130832538269907e-03,-3.734373413344069942e-02,-2.636575436938120090e-02,1.550535921336619952e-02,-3.949338287409189657e-02,-7.212845460195599356e-02,-1.764612515980519894e-02 --8.543040090124079389e-02,-4.464163650698899782e-02,-4.050329988046450294e-03,-9.113481248670509197e-03,-2.944912678412469915e-03,7.767427965677820186e-03,2.286863482154040048e-02,-3.949338287409189657e-02,-6.117659509433449883e-02,-1.350401824497050006e-02 -4.534098333546320025e-02,5.068011873981870252e-02,6.061839444480759953e-02,3.105334362634819961e-02,2.870200306021350109e-02,-4.734670130927989828e-02,-5.444575906428809897e-02,7.120997975363539678e-02,1.335989800130079896e-01,1.356118306890790048e-01 --6.363517019512339445e-02,-4.464163650698899782e-02,3.582871674554689856e-02,-2.288496402361559975e-02,-3.046396984243510131e-02,-1.885019128643240088e-02,-6.584467611156170040e-03,-2.592261998182820038e-03,-2.595242443518940012e-02,-5.492508739331759815e-02 --6.726770864614299572e-02,5.068011873981870252e-02,-1.267282657909369996e-02,-4.009931749229690007e-02,-1.532848840222260020e-02,4.635943347782499856e-03,-5.812739686837520292e-02,3.430885887772629900e-02,1.919903307856710151e-02,-3.421455281914410201e-02 --1.072256316073579990e-01,-4.464163650698899782e-02,-7.734155101194770121e-02,-2.632783471735180084e-02,-8.962994274508359616e-02,-9.619786134844690584e-02,2.655027262562750096e-02,-7.639450375000099436e-02,-4.257210492279420166e-02,-5.219804415301099697e-03 --2.367724723390840155e-02,-4.464163650698899782e-02,5.954058237092670069e-02,-4.009931749229690007e-02,-4.284754556624519733e-02,-4.358891976780549654e-02,1.182372140927919965e-02,-3.949338287409189657e-02,-1.599826775813870117e-02,4.034337164788070335e-02 -5.260606023750229870e-02,-4.464163650698899782e-02,-2.129532317014089932e-02,-7.452802442965950069e-02,-4.009563984984299695e-02,-3.763909899380440266e-02,-6.584467611156170040e-03,-3.949338287409189657e-02,-6.092541861022970299e-04,-5.492508739331759815e-02 -6.713621404158050254e-02,5.068011873981870252e-02,-6.205954135808240159e-03,6.318680331979099896e-02,-4.284754556624519733e-02,-9.588471288665739722e-02,5.232173725423699961e-02,-7.639450375000099436e-02,5.942380044479410317e-02,5.276969239238479825e-02 --6.000263174410389727e-02,-4.464163650698899782e-02,4.445121333659410312e-02,-1.944209332987930153e-02,-9.824676969418109224e-03,-7.576846662009279788e-03,2.286863482154040048e-02,-3.949338287409189657e-02,-2.712864555432650121e-02,-9.361911330135799444e-03 --2.367724723390840155e-02,-4.464163650698899782e-02,-6.548561819925780014e-02,-8.141376581713200000e-02,-3.871968699164179961e-02,-5.360967054507050078e-02,5.968501286241110343e-02,-7.639450375000099436e-02,-3.712834601047360072e-02,-4.249876664881350324e-02 -3.444336798240450054e-02,5.068011873981870252e-02,1.252871188776620015e-01,2.875809638242839833e-02,-5.385516843185429725e-02,-1.290037051243130006e-02,-1.023070505174200062e-01,1.081111006295440019e-01,2.714857279071319972e-04,2.791705090337660150e-02 -3.081082953138499989e-02,-4.464163650698899782e-02,-5.039624916492520257e-02,-2.227739861197989939e-03,-4.422349842444640161e-02,-8.993489211265630334e-02,1.185912177278039964e-01,-7.639450375000099436e-02,-1.811826730789670159e-02,3.064409414368320182e-03 -1.628067572730669890e-02,-4.464163650698899782e-02,-6.332999405149600247e-02,-5.731367096097819691e-02,-5.798302700645770191e-02,-4.891244361822749687e-02,8.142083605192099172e-03,-3.949338287409189657e-02,-5.947269741072230137e-02,-6.735140813782170000e-02 -4.897352178648269744e-02,5.068011873981870252e-02,-3.099563183506899924e-02,-4.928030602040309877e-02,4.934129593323050011e-02,-4.132213582324419619e-03,1.333177689441520097e-01,-5.351580880693729975e-02,2.131084656824479978e-02,1.963283707370720027e-02 -1.264813727628719998e-02,-4.464163650698899782e-02,2.289497185897609866e-02,5.285819123858220142e-02,8.062710187196569719e-03,-2.855779360190789998e-02,3.759518603788870178e-02,-3.949338287409189657e-02,5.472400334817909689e-02,-2.593033898947460017e-02 --9.147093429830140468e-03,-4.464163650698899782e-02,1.103903904628619932e-02,-5.731367096097819691e-02,-2.496015840963049931e-02,-4.296262284422640298e-02,3.023191042971450082e-02,-3.949338287409189657e-02,1.703713241477999851e-02,-5.219804415301099697e-03 --1.882016527791040067e-03,5.068011873981870252e-02,7.139651518361660176e-02,9.761551025715360652e-02,8.786797596286209655e-02,7.540749571221680436e-02,-2.131101882750449997e-02,7.120997975363539678e-02,7.142403278057639360e-02,2.377494398854190089e-02 --1.882016527791040067e-03,5.068011873981870252e-02,1.427247526792889930e-02,-7.452802442965950069e-02,2.558898754392050119e-03,6.201685656730160021e-03,-1.394774321933030074e-02,-2.592261998182820038e-03,1.919903307856710151e-02,3.064409414368320182e-03 -5.383060374248070309e-03,5.068011873981870252e-02,-8.361578283570040432e-03,2.187235499495579841e-02,5.484510736603499803e-02,7.321545647968999426e-02,-2.499265663159149983e-02,3.430885887772629900e-02,1.255315281338930007e-02,9.419076154073199869e-02 --9.996055470531900466e-02,-4.464163650698899782e-02,-6.764124234701959781e-02,-1.089567313670219972e-01,-7.449446130487119566e-02,-7.271172671423199729e-02,1.550535921336619952e-02,-3.949338287409189657e-02,-4.986846773523059828e-02,-9.361911330135799444e-03 --6.000263174410389727e-02,5.068011873981870252e-02,-1.051720243133190055e-02,-1.485159908304049987e-02,-4.972730985725089953e-02,-2.354741821327540133e-02,-5.812739686837520292e-02,1.585829843977170153e-02,-9.918957363154769225e-03,-3.421455281914410201e-02 -1.991321417832630017e-02,-4.464163650698899782e-02,-2.345094731790270046e-02,-7.108515373592319553e-02,2.044628591100669870e-02,-1.008203435632550049e-02,1.185912177278039964e-01,-7.639450375000099436e-02,-4.257210492279420166e-02,7.348022696655839847e-02 -4.534098333546320025e-02,5.068011873981870252e-02,6.816307896197400240e-02,8.100872220010799790e-03,-1.670444126042380101e-02,4.635943347782499856e-03,-7.653558588881050062e-02,7.120997975363539678e-02,3.243322577960189995e-02,-1.764612515980519894e-02 -2.717829108036539862e-02,5.068011873981870252e-02,-3.530688013059259805e-02,3.220096707616459941e-02,-1.120062982761920074e-02,1.504458729887179960e-03,-1.026610541524320026e-02,-2.592261998182820038e-03,-1.495647502491130078e-02,-5.078298047848289754e-02 --5.637009329308430294e-02,-4.464163650698899782e-02,-1.159501450521270051e-02,-3.321357610482440076e-02,-4.697540414084860200e-02,-4.765984977106939996e-02,4.460445801105040325e-03,-3.949338287409189657e-02,-7.979397554541639223e-03,-8.806194271199530021e-02 --7.816532399920170238e-02,-4.464163650698899782e-02,-7.303030271642410587e-02,-5.731367096097819691e-02,-8.412613131227909824e-02,-7.427746902317970690e-02,-2.499265663159149983e-02,-3.949338287409189657e-02,-1.811826730789670159e-02,-8.391983579716059960e-02 -6.713621404158050254e-02,5.068011873981870252e-02,-4.177375257387799801e-02,1.154374291374709975e-02,2.558898754392050119e-03,5.888537194940629722e-03,4.127682384197570165e-02,-3.949338287409189657e-02,-5.947269741072230137e-02,-2.178823207463989955e-02 --4.183993948900609910e-02,5.068011873981870252e-02,1.427247526792889930e-02,-5.670610554934250001e-03,-1.257658268582039982e-02,6.201685656730160021e-03,-7.285394808472339667e-02,7.120997975363539678e-02,3.546193866076970125e-02,-1.350401824497050006e-02 -3.444336798240450054e-02,-4.464163650698899782e-02,-7.283766209689159811e-03,1.498661360748330083e-02,-4.422349842444640161e-02,-3.732595053201490098e-02,-2.902829807069099918e-03,-3.949338287409189657e-02,-2.139368094035999993e-02,7.206516329203029904e-03 -5.987113713954139715e-02,5.068011873981870252e-02,1.642809941569069870e-02,2.875809638242839833e-02,-4.147159270804409714e-02,-2.918409052548700047e-02,-2.867429443567860031e-02,-2.592261998182820038e-03,-2.396681493414269844e-03,-2.178823207463989955e-02 --5.273755484206479882e-02,-4.464163650698899782e-02,-9.439390357450949676e-03,-5.670610554934250001e-03,3.970962592582259754e-02,4.471894645684260094e-02,2.655027262562750096e-02,-2.592261998182820038e-03,-1.811826730789670159e-02,-1.350401824497050006e-02 --9.147093429830140468e-03,-4.464163650698899782e-02,-1.590626280073640167e-02,7.007254470726349826e-02,1.219056876180000040e-02,2.217225720799630151e-02,1.550535921336619952e-02,-2.592261998182820038e-03,-3.324878724762579674e-02,4.862758547755009764e-02 --4.910501639104519755e-02,-4.464163650698899782e-02,2.505059600673789980e-02,8.100872220010799790e-03,2.044628591100669870e-02,1.778817874294279927e-02,5.232173725423699961e-02,-3.949338287409189657e-02,-4.118038518800790082e-02,7.206516329203029904e-03 --4.183993948900609910e-02,-4.464163650698899782e-02,-4.931843709104429679e-02,-3.665644679856060184e-02,-7.072771253015849857e-03,-2.260797282790679916e-02,8.545647749102060209e-02,-3.949338287409189657e-02,-6.648814822283539983e-02,7.206516329203029904e-03 --4.183993948900609910e-02,-4.464163650698899782e-02,4.121777711495139968e-02,-2.632783471735180084e-02,-3.183992270063620150e-02,-3.043668437264510085e-02,-3.603757004385269719e-02,2.942906133203560069e-03,3.365681290238470291e-02,-1.764612515980519894e-02 --2.730978568492789874e-02,-4.464163650698899782e-02,-6.332999405149600247e-02,-5.042792957350569760e-02,-8.962994274508359616e-02,-1.043397213549750041e-01,5.232173725423699961e-02,-7.639450375000099436e-02,-5.615757309500619965e-02,-6.735140813782170000e-02 -4.170844488444359899e-02,-4.464163650698899782e-02,-6.440780612537699845e-02,3.564383776990089764e-02,1.219056876180000040e-02,-5.799374901012400302e-02,1.811790603972839864e-01,-7.639450375000099436e-02,-6.092541861022970299e-04,-5.078298047848289754e-02 -6.350367559056099842e-02,5.068011873981870252e-02,-2.560657146566450160e-02,1.154374291374709975e-02,6.447677737344290061e-02,4.847672799831700269e-02,3.023191042971450082e-02,-2.592261998182820038e-03,3.839324821169769891e-02,1.963283707370720027e-02 --7.090024709716259699e-02,-4.464163650698899782e-02,-4.050329988046450294e-03,-4.009931749229690007e-02,-6.623874415566440021e-02,-7.866154748823310505e-02,5.232173725423699961e-02,-7.639450375000099436e-02,-5.140053526058249722e-02,-3.421455281914410201e-02 --4.183993948900609910e-02,5.068011873981870252e-02,4.572166603000769880e-03,-5.387080026724189868e-02,-4.422349842444640161e-02,-2.730519975474979960e-02,-8.021722369289760457e-02,7.120997975363539678e-02,3.664579779339879884e-02,1.963283707370720027e-02 --2.730978568492789874e-02,5.068011873981870252e-02,-7.283766209689159811e-03,-4.009931749229690007e-02,-1.120062982761920074e-02,-1.383981589779990050e-02,5.968501286241110343e-02,-3.949338287409189657e-02,-8.238148325810279449e-02,-2.593033898947460017e-02 --3.457486258696700065e-02,-4.464163650698899782e-02,-3.746250427835440266e-02,-6.075654165471439799e-02,2.044628591100669870e-02,4.346635260968449710e-02,-1.394774321933030074e-02,-2.592261998182820038e-03,-3.075120986455629965e-02,-7.149351505265640061e-02 -6.713621404158050254e-02,5.068011873981870252e-02,-2.560657146566450160e-02,-4.009931749229690007e-02,-6.348683843926219983e-02,-5.987263978086120042e-02,-2.902829807069099918e-03,-3.949338287409189657e-02,-1.919704761394450121e-02,1.134862324403770016e-02 --4.547247794002570037e-02,5.068011873981870252e-02,-2.452875939178359929e-02,5.974393262605470073e-02,5.310804470794310353e-03,1.496984258683710031e-02,-5.444575906428809897e-02,7.120997975363539678e-02,4.234489544960749752e-02,1.549073015887240078e-02 --9.147093429830140468e-03,5.068011873981870252e-02,-1.806188694849819934e-02,-3.321357610482440076e-02,-2.083229983502719873e-02,1.215150643073130074e-02,-7.285394808472339667e-02,7.120997975363539678e-02,2.714857279071319972e-04,1.963283707370720027e-02 -4.170844488444359899e-02,5.068011873981870252e-02,-1.482845072685549936e-02,-1.714684618924559867e-02,-5.696818394814720174e-03,8.393724889256879915e-03,-1.394774321933030074e-02,-1.854239580664649974e-03,-1.190068480150809939e-02,3.064409414368320182e-03 -3.807590643342410180e-02,5.068011873981870252e-02,-2.991781976118810041e-02,-4.009931749229690007e-02,-3.321587555883730170e-02,-2.417371513685449835e-02,-1.026610541524320026e-02,-2.592261998182820038e-03,-1.290794225416879923e-02,3.064409414368320182e-03 -1.628067572730669890e-02,-4.464163650698899782e-02,-4.608500086940160029e-02,-5.670610554934250001e-03,-7.587041416307230279e-02,-6.143838208980879900e-02,-1.394774321933030074e-02,-3.949338287409189657e-02,-5.140053526058249722e-02,1.963283707370720027e-02 --1.882016527791040067e-03,-4.464163650698899782e-02,-6.979686649478139548e-02,-1.255635194240680048e-02,-1.930069620102049918e-04,-9.142588970956939953e-03,7.072992627467229731e-02,-3.949338287409189657e-02,-6.291294991625119570e-02,4.034337164788070335e-02 --1.882016527791040067e-03,-4.464163650698899782e-02,3.367309259778510089e-02,1.251584758070440062e-01,2.457414448561009990e-02,2.624318721126020146e-02,-1.026610541524320026e-02,-2.592261998182820038e-03,2.671425763351279944e-02,6.105390622205419948e-02 -6.350367559056099842e-02,5.068011873981870252e-02,-4.050329988046450294e-03,-1.255635194240680048e-02,1.030034574030749966e-01,4.878987646010649742e-02,5.600337505832399948e-02,-2.592261998182820038e-03,8.449528221240310000e-02,-1.764612515980519894e-02 -1.264813727628719998e-02,5.068011873981870252e-02,-2.021751109626000048e-02,-2.227739861197989939e-03,3.833367306762140020e-02,5.317395492515999966e-02,-6.584467611156170040e-03,3.430885887772629900e-02,-5.145307980263110273e-03,-9.361911330135799444e-03 -1.264813727628719998e-02,5.068011873981870252e-02,2.416542455238970041e-03,5.630106193231849965e-02,2.732605020201240090e-02,1.716188181936379939e-02,4.127682384197570165e-02,-3.949338287409189657e-02,3.711738233435969789e-03,7.348022696655839847e-02 --9.147093429830140468e-03,5.068011873981870252e-02,-3.099563183506899924e-02,-2.632783471735180084e-02,-1.120062982761920074e-02,-1.000728964429089965e-03,-2.131101882750449997e-02,-2.592261998182820038e-03,6.209315616505399656e-03,2.791705090337660150e-02 --3.094232413594750000e-02,5.068011873981870252e-02,2.828403222838059977e-02,7.007254470726349826e-02,-1.267806699165139883e-01,-1.068449090492910036e-01,-5.444575906428809897e-02,-4.798064067555100204e-02,-3.075120986455629965e-02,1.549073015887240078e-02 --9.632801625429950054e-02,-4.464163650698899782e-02,-3.638469220447349689e-02,-7.452802442965950069e-02,-3.871968699164179961e-02,-2.761834821653930128e-02,1.550535921336619952e-02,-3.949338287409189657e-02,-7.408887149153539631e-02,-1.077697500466389974e-03 -5.383060374248070309e-03,-4.464163650698899782e-02,-5.794093368209150136e-02,-2.288496402361559975e-02,-6.761469701386560449e-02,-6.832764824917850199e-02,-5.444575906428809897e-02,-2.592261998182820038e-03,4.289568789252869857e-02,-8.391983579716059960e-02 --1.035930931563389945e-01,-4.464163650698899782e-02,-3.746250427835440266e-02,-2.632783471735180084e-02,2.558898754392050119e-03,1.998021797546959896e-02,1.182372140927919965e-02,-2.592261998182820038e-03,-6.832974362442149896e-02,-2.593033898947460017e-02 -7.076875249260000666e-02,-4.464163650698899782e-02,1.211685112016709989e-02,4.252957915737339695e-02,7.135654166444850566e-02,5.348710338694950134e-02,5.232173725423699961e-02,-2.592261998182820038e-03,2.539313491544940155e-02,-5.219804415301099697e-03 -1.264813727628719998e-02,5.068011873981870252e-02,-2.237313524402180162e-02,-2.977070541108809906e-02,1.081461590359879960e-02,2.843522644378690054e-02,-2.131101882750449997e-02,3.430885887772629900e-02,-6.080248196314420352e-03,-1.077697500466389974e-03 --1.641217033186929963e-02,-4.464163650698899782e-02,-3.530688013059259805e-02,-2.632783471735180084e-02,3.282986163481690228e-02,1.716188181936379939e-02,1.001830287073690040e-01,-3.949338287409189657e-02,-7.020931272868760620e-02,-7.977772888232589898e-02 --3.820740103798660192e-02,-4.464163650698899782e-02,9.961226972405269262e-03,-4.698505887976939938e-02,-5.935897986465880211e-02,-5.298337362149149743e-02,-1.026610541524320026e-02,-3.949338287409189657e-02,-1.599826775813870117e-02,-4.249876664881350324e-02 -1.750521923228520000e-03,-4.464163650698899782e-02,-3.961812842611620034e-02,-1.009233664264470032e-01,-2.908801698423390050e-02,-3.012353591085559917e-02,4.495846164606279866e-02,-5.019470792810550031e-02,-6.832974362442149896e-02,-1.294830118603420011e-01 -4.534098333546320025e-02,-4.464163650698899782e-02,7.139651518361660176e-02,1.215130832538269907e-03,-9.824676969418109224e-03,-1.000728964429089965e-03,1.550535921336619952e-02,-3.949338287409189657e-02,-4.118038518800790082e-02,-7.149351505265640061e-02 --7.090024709716259699e-02,5.068011873981870252e-02,-7.518592686418590354e-02,-4.009931749229690007e-02,-5.110326271545199972e-02,-1.509240974495799914e-02,-3.971920784793980114e-02,-2.592261998182820038e-03,-9.643322289178400675e-02,-3.421455281914410201e-02 -4.534098333546320025e-02,-4.464163650698899782e-02,-6.205954135808240159e-03,1.154374291374709975e-02,6.310082451524179348e-02,1.622243643399520069e-02,9.650139090328180291e-02,-3.949338287409189657e-02,4.289568789252869857e-02,-3.835665973397880263e-02 --5.273755484206479882e-02,5.068011873981870252e-02,-4.069594049999709917e-02,-6.764228304218700139e-02,-3.183992270063620150e-02,-3.701280207022530216e-02,3.759518603788870178e-02,-3.949338287409189657e-02,-3.452371533034950118e-02,6.933812005172369786e-02 --4.547247794002570037e-02,-4.464163650698899782e-02,-4.824062501716339796e-02,-1.944209332987930153e-02,-1.930069620102049918e-04,-1.603185513032660131e-02,6.704828847058519337e-02,-3.949338287409189657e-02,-2.479118743246069845e-02,1.963283707370720027e-02 -1.264813727628719998e-02,-4.464163650698899782e-02,-2.560657146566450160e-02,-4.009931749229690007e-02,-3.046396984243510131e-02,-4.515466207675319921e-02,7.809320188284639419e-02,-7.639450375000099436e-02,-7.212845460195599356e-02,1.134862324403770016e-02 -4.534098333546320025e-02,-4.464163650698899782e-02,5.199589785376040191e-02,-5.387080026724189868e-02,6.310082451524179348e-02,6.476044801137270657e-02,-1.026610541524320026e-02,3.430885887772629900e-02,3.723201120896890010e-02,1.963283707370720027e-02 --2.004470878288880029e-02,-4.464163650698899782e-02,4.572166603000769880e-03,9.761551025715360652e-02,5.310804470794310353e-03,-2.072908205716959829e-02,6.336665066649820044e-02,-3.949338287409189657e-02,1.255315281338930007e-02,1.134862324403770016e-02 --4.910501639104519755e-02,-4.464163650698899782e-02,-6.440780612537699845e-02,-1.020709899795499975e-01,-2.944912678412469915e-03,-1.540555820674759969e-02,6.336665066649820044e-02,-4.724261825803279663e-02,-3.324878724762579674e-02,-5.492508739331759815e-02 --7.816532399920170238e-02,-4.464163650698899782e-02,-1.698407487461730050e-02,-1.255635194240680048e-02,-1.930069620102049918e-04,-1.352666743601040056e-02,7.072992627467229731e-02,-3.949338287409189657e-02,-4.118038518800790082e-02,-9.220404962683000083e-02 --7.090024709716259699e-02,-4.464163650698899782e-02,-5.794093368209150136e-02,-8.141376581713200000e-02,-4.559945128264750180e-02,-2.887094206369749880e-02,-4.340084565202689815e-02,-2.592261998182820038e-03,1.143797379512540100e-03,-5.219804415301099697e-03 -5.623859868852180283e-02,5.068011873981870252e-02,9.961226972405269262e-03,4.941532054484590319e-02,-4.320865536613589623e-03,-1.227407358885230018e-02,-4.340084565202689815e-02,3.430885887772629900e-02,6.078775415074400001e-02,3.205915781821130212e-02 --2.730978568492789874e-02,-4.464163650698899782e-02,8.864150836571099701e-02,-2.518021116424929914e-02,2.182223876920789951e-02,4.252690722431590187e-02,-3.235593223976569732e-02,3.430885887772629900e-02,2.863770518940129874e-03,7.762233388139309909e-02 -1.750521923228520000e-03,5.068011873981870252e-02,-5.128142061927360405e-03,-1.255635194240680048e-02,-1.532848840222260020e-02,-1.383981589779990050e-02,8.142083605192099172e-03,-3.949338287409189657e-02,-6.080248196314420352e-03,-6.735140813782170000e-02 --1.882016527791040067e-03,-4.464163650698899782e-02,-6.440780612537699845e-02,1.154374291374709975e-02,2.732605020201240090e-02,3.751653183568340322e-02,-1.394774321933030074e-02,3.430885887772629900e-02,1.178390038357590014e-02,-5.492508739331759815e-02 -1.628067572730669890e-02,-4.464163650698899782e-02,1.750591148957160101e-02,-2.288496402361559975e-02,6.034891879883950289e-02,4.440579799505309927e-02,3.023191042971450082e-02,-2.592261998182820038e-03,3.723201120896890010e-02,-1.077697500466389974e-03 -1.628067572730669890e-02,5.068011873981870252e-02,-4.500718879552070145e-02,6.318680331979099896e-02,1.081461590359879960e-02,-3.744320408500199904e-04,6.336665066649820044e-02,-3.949338287409189657e-02,-3.075120986455629965e-02,3.620126473304600273e-02 --9.269547780327989928e-02,-4.464163650698899782e-02,2.828403222838059977e-02,-1.599922263614299983e-02,3.695772020942030001e-02,2.499059336410210108e-02,5.600337505832399948e-02,-3.949338287409189657e-02,-5.145307980263110273e-03,-1.077697500466389974e-03 -5.987113713954139715e-02,5.068011873981870252e-02,4.121777711495139968e-02,1.154374291374709975e-02,4.108557878402369773e-02,7.071026878537380045e-02,-3.603757004385269719e-02,3.430885887772629900e-02,-1.090443584737709956e-02,-3.007244590430930078e-02 --2.730978568492789874e-02,-4.464163650698899782e-02,6.492964274033119487e-02,-2.227739861197989939e-03,-2.496015840963049931e-02,-1.728444897748479883e-02,2.286863482154040048e-02,-3.949338287409189657e-02,-6.117659509433449883e-02,-6.320930122298699938e-02 -2.354575262934580082e-02,5.068011873981870252e-02,-3.207344390894990155e-02,-4.009931749229690007e-02,-3.183992270063620150e-02,-2.166852744253820046e-02,-1.394774321933030074e-02,-2.592261998182820038e-03,-1.090443584737709956e-02,1.963283707370720027e-02 --9.632801625429950054e-02,-4.464163650698899782e-02,-7.626373893806680238e-02,-4.354218818603310115e-02,-4.559945128264750180e-02,-3.482076283769860309e-02,8.142083605192099172e-03,-3.949338287409189657e-02,-5.947269741072230137e-02,-8.391983579716059960e-02 -2.717829108036539862e-02,-4.464163650698899782e-02,4.984027370599859730e-02,-5.501842382034440038e-02,-2.944912678412469915e-03,4.064801645357869753e-02,-5.812739686837520292e-02,5.275941931568080279e-02,-5.295879323920039961e-02,-5.219804415301099697e-03 -1.991321417832630017e-02,5.068011873981870252e-02,4.552902541047500196e-02,2.990571983224480160e-02,-6.211088558106100249e-02,-5.580170977759729700e-02,-7.285394808472339667e-02,2.692863470254440103e-02,4.560080841412490066e-02,4.034337164788070335e-02 -3.807590643342410180e-02,5.068011873981870252e-02,-9.439390357450949676e-03,2.362754385640800005e-03,1.182945896190920002e-03,3.751653183568340322e-02,-5.444575906428809897e-02,5.017634085436720182e-02,-2.595242443518940012e-02,1.066170822852360034e-01 -4.170844488444359899e-02,5.068011873981870252e-02,-3.207344390894990155e-02,-2.288496402361559975e-02,-4.972730985725089953e-02,-4.014428668812060341e-02,3.023191042971450082e-02,-3.949338287409189657e-02,-1.260973855604090033e-01,1.549073015887240078e-02 -1.991321417832630017e-02,-4.464163650698899782e-02,4.572166603000769880e-03,-2.632783471735180084e-02,2.319819162740899970e-02,1.027261565999409987e-02,6.704828847058519337e-02,-3.949338287409189657e-02,-2.364455757213410059e-02,-4.664087356364819692e-02 --8.543040090124079389e-02,-4.464163650698899782e-02,2.073934771121430098e-02,-2.632783471735180084e-02,5.310804470794310353e-03,1.966706951368000014e-02,-2.902829807069099918e-03,-2.592261998182820038e-03,-2.364455757213410059e-02,3.064409414368320182e-03 -1.991321417832630017e-02,5.068011873981870252e-02,1.427247526792889930e-02,6.318680331979099896e-02,1.494247447820220079e-02,2.029336643725910064e-02,-4.708248345611389801e-02,3.430885887772629900e-02,4.666077235681449775e-02,9.004865462589720093e-02 -2.354575262934580082e-02,-4.464163650698899782e-02,1.101977498433290015e-01,6.318680331979099896e-02,1.356652162000110060e-02,-3.294187206696139875e-02,-2.499265663159149983e-02,2.065544415363990138e-02,9.924022573398999514e-02,2.377494398854190089e-02 --3.094232413594750000e-02,5.068011873981870252e-02,1.338730381358059929e-03,-5.670610554934250001e-03,6.447677737344290061e-02,4.941617338368559792e-02,-4.708248345611389801e-02,1.081111006295440019e-01,8.379676636552239877e-02,3.064409414368320182e-03 -4.897352178648269744e-02,5.068011873981870252e-02,5.846277029704580186e-02,7.007254470726349826e-02,1.356652162000110060e-02,2.060651489904859884e-02,-2.131101882750449997e-02,3.430885887772629900e-02,2.200405045615050001e-02,2.791705090337660150e-02 -5.987113713954139715e-02,-4.464163650698899782e-02,-2.129532317014089932e-02,8.728689817594480205e-02,4.521343735862710239e-02,3.156671106168230240e-02,-4.708248345611389801e-02,7.120997975363539678e-02,7.912108138965789905e-02,1.356118306890790048e-01 --5.637009329308430294e-02,5.068011873981870252e-02,-1.051720243133190055e-02,2.531522568869210010e-02,2.319819162740899970e-02,4.002171952999959703e-02,-3.971920784793980114e-02,3.430885887772629900e-02,2.061233072136409855e-02,5.691179930721949887e-02 -1.628067572730669890e-02,-4.464163650698899782e-02,-4.716281294328249912e-02,-2.227739861197989939e-03,-1.945634697682600139e-02,-4.296262284422640298e-02,3.391354823380159783e-02,-3.949338287409189657e-02,2.736770754260900093e-02,2.791705090337660150e-02 --4.910501639104519755e-02,-4.464163650698899782e-02,4.572166603000769880e-03,1.154374291374709975e-02,-3.734373413344069942e-02,-1.853704282464289921e-02,-1.762938102341739949e-02,-2.592261998182820038e-03,-3.980959436433750137e-02,-2.178823207463989955e-02 -6.350367559056099842e-02,-4.464163650698899782e-02,1.750591148957160101e-02,2.187235499495579841e-02,8.062710187196569719e-03,2.154596028441720101e-02,-3.603757004385269719e-02,3.430885887772629900e-02,1.990842087631829876e-02,1.134862324403770016e-02 -4.897352178648269744e-02,5.068011873981870252e-02,8.109682384854470516e-02,2.187235499495579841e-02,4.383748450042589812e-02,6.413415108779360607e-02,-5.444575906428809897e-02,7.120997975363539678e-02,3.243322577960189995e-02,4.862758547755009764e-02 -5.383060374248070309e-03,5.068011873981870252e-02,3.475090467166599972e-02,-1.080116308095460057e-03,1.525377602983150060e-01,1.987879896572929961e-01,-6.180903467246220279e-02,1.852344432601940039e-01,1.556684454070180086e-02,7.348022696655839847e-02 --5.514554978810590376e-03,-4.464163650698899782e-02,2.397278393285700096e-02,8.100872220010799790e-03,-3.459182841703849903e-02,-3.889169284096249957e-02,2.286863482154040048e-02,-3.949338287409189657e-02,-1.599826775813870117e-02,-1.350401824497050006e-02 --5.514554978810590376e-03,5.068011873981870252e-02,-8.361578283570040432e-03,-2.227739861197989939e-03,-3.321587555883730170e-02,-6.363042132233559522e-02,-3.603757004385269719e-02,-2.592261998182820038e-03,8.058546423866649877e-02,7.206516329203029904e-03 --8.906293935226029801e-02,-4.464163650698899782e-02,-6.117436990373419786e-02,-2.632783471735180084e-02,-5.523112129005539744e-02,-5.454911593043910295e-02,4.127682384197570165e-02,-7.639450375000099436e-02,-9.393564550871469354e-02,-5.492508739331759815e-02 -3.444336798240450054e-02,5.068011873981870252e-02,-1.894705840284650021e-03,-1.255635194240680048e-02,3.833367306762140020e-02,1.371724873967889932e-02,7.809320188284639419e-02,-3.949338287409189657e-02,4.551890466127779880e-03,-9.634615654166470144e-02 --5.273755484206479882e-02,-4.464163650698899782e-02,-6.225218197761509670e-02,-2.632783471735180084e-02,-5.696818394814720174e-03,-5.071658967693000106e-03,3.023191042971450082e-02,-3.949338287409189657e-02,-3.075120986455629965e-02,-7.149351505265640061e-02 -9.015598825267629943e-03,-4.464163650698899782e-02,1.642809941569069870e-02,4.658001526274530187e-03,9.438663045397699403e-03,1.058576412178359981e-02,-2.867429443567860031e-02,3.430885887772629900e-02,3.896836603088559697e-02,1.190434030297399942e-01 --6.363517019512339445e-02,5.068011873981870252e-02,9.618619288287730273e-02,1.045012516446259948e-01,-2.944912678412469915e-03,-4.758510505903469807e-03,-6.584467611156170040e-03,-2.592261998182820038e-03,2.269202256674450122e-02,7.348022696655839847e-02 --9.632801625429950054e-02,-4.464163650698899782e-02,-6.979686649478139548e-02,-6.764228304218700139e-02,-1.945634697682600139e-02,-1.070833127990459925e-02,1.550535921336619952e-02,-3.949338287409189657e-02,-4.687948284421659950e-02,-7.977772888232589898e-02 -1.628067572730669890e-02,5.068011873981870252e-02,-2.129532317014089932e-02,-9.113481248670509197e-03,3.420581449301800248e-02,4.785043107473799934e-02,7.788079970179680352e-04,-2.592261998182820038e-03,-1.290794225416879923e-02,2.377494398854190089e-02 --4.183993948900609910e-02,5.068011873981870252e-02,-5.362968538656789907e-02,-4.009931749229690007e-02,-8.412613131227909824e-02,-7.177228132886340206e-02,-2.902829807069099918e-03,-3.949338287409189657e-02,-7.212845460195599356e-02,-3.007244590430930078e-02 --7.453278554818210111e-02,-4.464163650698899782e-02,4.337340126271319735e-02,-3.321357610482440076e-02,1.219056876180000040e-02,2.518648827290310109e-04,6.336665066649820044e-02,-3.949338287409189657e-02,-2.712864555432650121e-02,-4.664087356364819692e-02 --5.514554978810590376e-03,-4.464163650698899782e-02,5.630714614928399725e-02,-3.665644679856060184e-02,-4.835135699904979933e-02,-4.296262284422640298e-02,-7.285394808472339667e-02,3.799897096531720114e-02,5.078151336297320045e-02,5.691179930721949887e-02 --9.269547780327989928e-02,-4.464163650698899782e-02,-8.165279930747129655e-02,-5.731367096097819691e-02,-6.073493272285990230e-02,-6.801449978738899338e-02,4.864009945014990260e-02,-7.639450375000099436e-02,-6.648814822283539983e-02,-2.178823207463989955e-02 -5.383060374248070309e-03,-4.464163650698899782e-02,4.984027370599859730e-02,9.761551025715360652e-02,-1.532848840222260020e-02,-1.634500359211620013e-02,-6.584467611156170040e-03,-2.592261998182820038e-03,1.703713241477999851e-02,-1.350401824497050006e-02 -3.444336798240450054e-02,5.068011873981870252e-02,1.112755619172099975e-01,7.695828609473599757e-02,-3.183992270063620150e-02,-3.388131745233000092e-02,-2.131101882750449997e-02,-2.592261998182820038e-03,2.801650652326400162e-02,7.348022696655839847e-02 -2.354575262934580082e-02,-4.464163650698899782e-02,6.169620651868849837e-02,5.285819123858220142e-02,-3.459182841703849903e-02,-4.891244361822749687e-02,-2.867429443567860031e-02,-2.592261998182820038e-03,5.472400334817909689e-02,-5.219804415301099697e-03 -4.170844488444359899e-02,5.068011873981870252e-02,1.427247526792889930e-02,4.252957915737339695e-02,-3.046396984243510131e-02,-1.313877426218630021e-03,-4.340084565202689815e-02,-2.592261998182820038e-03,-3.324878724762579674e-02,1.549073015887240078e-02 --2.730978568492789874e-02,-4.464163650698899782e-02,4.768464955823679963e-02,-4.698505887976939938e-02,3.420581449301800248e-02,5.724488492842390308e-02,-8.021722369289760457e-02,1.302517731550900115e-01,4.506616833626150148e-02,1.314697237742440128e-01 -4.170844488444359899e-02,5.068011873981870252e-02,1.211685112016709989e-02,3.908670846363720280e-02,5.484510736603499803e-02,4.440579799505309927e-02,4.460445801105040325e-03,-2.592261998182820038e-03,4.560080841412490066e-02,-1.077697500466389974e-03 --3.094232413594750000e-02,-4.464163650698899782e-02,5.649978676881649634e-03,-9.113481248670509197e-03,1.907033305280559851e-02,6.827982580309210209e-03,7.441156407875940126e-02,-3.949338287409189657e-02,-4.118038518800790082e-02,-4.249876664881350324e-02 -3.081082953138499989e-02,5.068011873981870252e-02,4.660683748435590079e-02,-1.599922263614299983e-02,2.044628591100669870e-02,5.066876723084379891e-02,-5.812739686837520292e-02,7.120997975363539678e-02,6.209315616505399656e-03,7.206516329203029904e-03 --4.183993948900609910e-02,-4.464163650698899782e-02,1.285205550993039902e-01,6.318680331979099896e-02,-3.321587555883730170e-02,-3.262872360517189707e-02,1.182372140927919965e-02,-3.949338287409189657e-02,-1.599826775813870117e-02,-5.078298047848289754e-02 --3.094232413594750000e-02,5.068011873981870252e-02,5.954058237092670069e-02,1.215130832538269907e-03,1.219056876180000040e-02,3.156671106168230240e-02,-4.340084565202689815e-02,3.430885887772629900e-02,1.482271084126630077e-02,7.206516329203029904e-03 --5.637009329308430294e-02,-4.464163650698899782e-02,9.295275666123460623e-02,-1.944209332987930153e-02,1.494247447820220079e-02,2.342485105515439842e-02,-2.867429443567860031e-02,2.545258986750810123e-02,2.605608963368469949e-02,4.034337164788070335e-02 --6.000263174410389727e-02,5.068011873981870252e-02,1.535028734180979987e-02,-1.944209332987930153e-02,3.695772020942030001e-02,4.816357953652750101e-02,1.918699701745330000e-02,-2.592261998182820038e-03,-3.075120986455629965e-02,-1.077697500466389974e-03 --4.910501639104519755e-02,5.068011873981870252e-02,-5.128142061927360405e-03,-4.698505887976939938e-02,-2.083229983502719873e-02,-2.041593359538010008e-02,-6.917231028063640375e-02,7.120997975363539678e-02,6.123790751970099866e-02,-3.835665973397880263e-02 -2.354575262934580082e-02,-4.464163650698899782e-02,7.031870310973570293e-02,2.531522568869210010e-02,-3.459182841703849903e-02,-1.446611282137899926e-02,-3.235593223976569732e-02,-2.592261998182820038e-03,-1.919704761394450121e-02,-9.361911330135799444e-03 -1.750521923228520000e-03,-4.464163650698899782e-02,-4.050329988046450294e-03,-5.670610554934250001e-03,-8.448724111216979540e-03,-2.386056667506489953e-02,5.232173725423699961e-02,-3.949338287409189657e-02,-8.944018957797799166e-03,-1.350401824497050006e-02 --3.457486258696700065e-02,5.068011873981870252e-02,-8.168937664037369826e-04,7.007254470726349826e-02,3.970962592582259754e-02,6.695248724389940564e-02,-6.549067247654929980e-02,1.081111006295440019e-01,2.671425763351279944e-02,7.348022696655839847e-02 -4.170844488444359899e-02,5.068011873981870252e-02,-4.392937672163980262e-02,6.318680331979099896e-02,-4.320865536613589623e-03,1.622243643399520069e-02,-1.394774321933030074e-02,-2.592261998182820038e-03,-3.452371533034950118e-02,1.134862324403770016e-02 -6.713621404158050254e-02,5.068011873981870252e-02,2.073934771121430098e-02,-5.670610554934250001e-03,2.044628591100669870e-02,2.624318721126020146e-02,-2.902829807069099918e-03,-2.592261998182820038e-03,8.640282933063080789e-03,3.064409414368320182e-03 --2.730978568492789874e-02,5.068011873981870252e-02,6.061839444480759953e-02,4.941532054484590319e-02,8.511607024645979902e-02,8.636769187485039689e-02,-2.902829807069099918e-03,3.430885887772629900e-02,3.781447882634390162e-02,4.862758547755009764e-02 --1.641217033186929963e-02,-4.464163650698899782e-02,-1.051720243133190055e-02,1.215130832538269907e-03,-3.734373413344069942e-02,-3.576020822306719832e-02,1.182372140927919965e-02,-3.949338287409189657e-02,-2.139368094035999993e-02,-3.421455281914410201e-02 --1.882016527791040067e-03,5.068011873981870252e-02,-3.315125598283080038e-02,-1.829446977677679984e-02,3.145390877661580209e-02,4.284005568610550069e-02,-1.394774321933030074e-02,1.991742173612169944e-02,1.022564240495780000e-02,2.791705090337660150e-02 --1.277963188084970010e-02,-4.464163650698899782e-02,-6.548561819925780014e-02,-6.993753018282070077e-02,1.182945896190920002e-03,1.684873335757430118e-02,-2.902829807069099918e-03,-7.020396503291909812e-03,-3.075120986455629965e-02,-5.078298047848289754e-02 --5.514554978810590376e-03,-4.464163650698899782e-02,4.337340126271319735e-02,8.728689817594480205e-02,1.356652162000110060e-02,7.141131042098750048e-03,-1.394774321933030074e-02,-2.592261998182820038e-03,4.234489544960749752e-02,-1.764612515980519894e-02 --9.147093429830140468e-03,-4.464163650698899782e-02,-6.225218197761509670e-02,-7.452802442965950069e-02,-2.358420555142939912e-02,-1.321351897422090062e-02,4.460445801105040325e-03,-3.949338287409189657e-02,-3.581672810154919867e-02,-4.664087356364819692e-02 --4.547247794002570037e-02,5.068011873981870252e-02,6.385183066645029604e-02,7.007254470726349826e-02,1.332744202834990066e-01,1.314610703725430096e-01,-3.971920784793980114e-02,1.081111006295440019e-01,7.573758845754760549e-02,8.590654771106250032e-02 --5.273755484206479882e-02,-4.464163650698899782e-02,3.043965637614240091e-02,-7.452802442965950069e-02,-2.358420555142939912e-02,-1.133462820348369975e-02,-2.902829807069099918e-03,-2.592261998182820038e-03,-3.075120986455629965e-02,-1.077697500466389974e-03 -1.628067572730669890e-02,5.068011873981870252e-02,7.247432725749750060e-02,7.695828609473599757e-02,-8.448724111216979540e-03,5.575388733151089883e-03,-6.584467611156170040e-03,-2.592261998182820038e-03,-2.364455757213410059e-02,6.105390622205419948e-02 -4.534098333546320025e-02,-4.464163650698899782e-02,-1.913969902237900103e-02,2.187235499495579841e-02,2.732605020201240090e-02,-1.352666743601040056e-02,1.001830287073690040e-01,-3.949338287409189657e-02,1.776347786711730131e-02,-1.350401824497050006e-02 --4.183993948900609910e-02,-4.464163650698899782e-02,-6.656343027313869898e-02,-4.698505887976939938e-02,-3.734373413344069942e-02,-4.327577130601600180e-02,4.864009945014990260e-02,-3.949338287409189657e-02,-5.615757309500619965e-02,-1.350401824497050006e-02 --5.637009329308430294e-02,5.068011873981870252e-02,-6.009655782985329903e-02,-3.665644679856060184e-02,-8.825398988688250290e-02,-7.083283594349480683e-02,-1.394774321933030074e-02,-3.949338287409189657e-02,-7.814091066906959926e-02,-1.046303703713340055e-01 -7.076875249260000666e-02,-4.464163650698899782e-02,6.924089103585480409e-02,3.793908501382069892e-02,2.182223876920789951e-02,1.504458729887179960e-03,-3.603757004385269719e-02,3.910600459159439823e-02,7.763278919555950675e-02,1.066170822852360034e-01 -1.750521923228520000e-03,5.068011873981870252e-02,5.954058237092670069e-02,-2.227739861197989939e-03,6.172487165704060308e-02,6.319470570242499696e-02,-5.812739686837520292e-02,1.081111006295440019e-01,6.898221163630259556e-02,1.273276168594099922e-01 --1.882016527791040067e-03,-4.464163650698899782e-02,-2.668438353954540043e-02,4.941532054484590319e-02,5.897296594063840269e-02,-1.603185513032660131e-02,-4.708248345611389801e-02,7.120997975363539678e-02,1.335989800130079896e-01,1.963283707370720027e-02 -2.354575262934580082e-02,5.068011873981870252e-02,-2.021751109626000048e-02,-3.665644679856060184e-02,-1.395253554402150001e-02,-1.509240974495799914e-02,5.968501286241110343e-02,-3.949338287409189657e-02,-9.643322289178400675e-02,-1.764612515980519894e-02 --2.004470878288880029e-02,-4.464163650698899782e-02,-4.608500086940160029e-02,-9.862811928581330378e-02,-7.587041416307230279e-02,-5.987263978086120042e-02,-1.762938102341739949e-02,-3.949338287409189657e-02,-5.140053526058249722e-02,-4.664087356364819692e-02 -4.170844488444359899e-02,5.068011873981870252e-02,7.139651518361660176e-02,8.100872220010799790e-03,3.833367306762140020e-02,1.590928797220559840e-02,-1.762938102341739949e-02,3.430885887772629900e-02,7.341007804911610368e-02,8.590654771106250032e-02 --6.363517019512339445e-02,5.068011873981870252e-02,-7.949717515970949888e-02,-5.670610554934250001e-03,-7.174255558846899528e-02,-6.644875747844139480e-02,-1.026610541524320026e-02,-3.949338287409189657e-02,-1.811826730789670159e-02,-5.492508739331759815e-02 -1.628067572730669890e-02,5.068011873981870252e-02,9.961226972405269262e-03,-4.354218818603310115e-02,-9.650970703608929835e-02,-9.463211903949929338e-02,-3.971920784793980114e-02,-3.949338287409189657e-02,1.703713241477999851e-02,7.206516329203029904e-03 -6.713621404158050254e-02,-4.464163650698899782e-02,-3.854031635223530150e-02,-2.632783471735180084e-02,-3.183992270063620150e-02,-2.636575436938120090e-02,8.142083605192099172e-03,-3.949338287409189657e-02,-2.712864555432650121e-02,3.064409414368320182e-03 -4.534098333546320025e-02,5.068011873981870252e-02,1.966153563733339868e-02,3.908670846363720280e-02,2.044628591100669870e-02,2.593003874947069978e-02,8.142083605192099172e-03,-2.592261998182820038e-03,-3.303712578676999863e-03,1.963283707370720027e-02 -4.897352178648269744e-02,-4.464163650698899782e-02,2.720622015449970094e-02,-2.518021116424929914e-02,2.319819162740899970e-02,1.841447566652189977e-02,-6.180903467246220279e-02,8.006624876385350087e-02,7.222365081991240221e-02,3.205915781821130212e-02 -4.170844488444359899e-02,-4.464163650698899782e-02,-8.361578283570040432e-03,-2.632783471735180084e-02,2.457414448561009990e-02,1.622243643399520069e-02,7.072992627467229731e-02,-3.949338287409189657e-02,-4.836172480289190057e-02,-3.007244590430930078e-02 --2.367724723390840155e-02,-4.464163650698899782e-02,-1.590626280073640167e-02,-1.255635194240680048e-02,2.044628591100669870e-02,4.127431337715779802e-02,-4.340084565202689815e-02,3.430885887772629900e-02,1.407245251576850001e-02,-9.361911330135799444e-03 --3.820740103798660192e-02,5.068011873981870252e-02,4.572166603000769880e-03,3.564383776990089764e-02,-1.120062982761920074e-02,5.888537194940629722e-03,-4.708248345611389801e-02,3.430885887772629900e-02,1.630495279994180133e-02,-1.077697500466389974e-03 -4.897352178648269744e-02,-4.464163650698899782e-02,-4.285156464775889684e-02,-5.387080026724189868e-02,4.521343735862710239e-02,5.004247030726469841e-02,3.391354823380159783e-02,-2.592261998182820038e-03,-2.595242443518940012e-02,-6.320930122298699938e-02 -4.534098333546320025e-02,5.068011873981870252e-02,5.649978676881649634e-03,5.630106193231849965e-02,6.447677737344290061e-02,8.918602803095619647e-02,-3.971920784793980114e-02,7.120997975363539678e-02,1.556684454070180086e-02,-9.361911330135799444e-03 -4.534098333546320025e-02,5.068011873981870252e-02,-3.530688013059259805e-02,6.318680331979099896e-02,-4.320865536613589623e-03,-1.627025888008149911e-03,-1.026610541524320026e-02,-2.592261998182820038e-03,1.556684454070180086e-02,5.691179930721949887e-02 -1.628067572730669890e-02,-4.464163650698899782e-02,2.397278393285700096e-02,-2.288496402361559975e-02,-2.496015840963049931e-02,-2.605260590759169922e-02,-3.235593223976569732e-02,-2.592261998182820038e-03,3.723201120896890010e-02,3.205915781821130212e-02 --7.453278554818210111e-02,5.068011873981870252e-02,-1.806188694849819934e-02,8.100872220010799790e-03,-1.945634697682600139e-02,-2.480001206043359885e-02,-6.549067247654929980e-02,3.430885887772629900e-02,6.731721791468489591e-02,-1.764612515980519894e-02 --8.179786245022120650e-02,5.068011873981870252e-02,4.229558918883229851e-02,-1.944209332987930153e-02,3.970962592582259754e-02,5.755803339021339782e-02,-6.917231028063640375e-02,1.081111006295440019e-01,4.718616788601970313e-02,-3.835665973397880263e-02 --6.726770864614299572e-02,-4.464163650698899782e-02,-5.470749746044879791e-02,-2.632783471735180084e-02,-7.587041416307230279e-02,-8.210618056791800512e-02,4.864009945014990260e-02,-7.639450375000099436e-02,-8.682899321629239386e-02,-1.046303703713340055e-01 -5.383060374248070309e-03,-4.464163650698899782e-02,-2.972517914165530208e-03,4.941532054484590319e-02,7.410844738085080319e-02,7.071026878537380045e-02,4.495846164606279866e-02,-2.592261998182820038e-03,-1.498586820292070049e-03,-9.361911330135799444e-03 --1.882016527791040067e-03,-4.464163650698899782e-02,-6.656343027313869898e-02,1.215130832538269907e-03,-2.944912678412469915e-03,3.070201038834840124e-03,1.182372140927919965e-02,-2.592261998182820038e-03,-2.028874775162960165e-02,-2.593033898947460017e-02 -9.015598825267629943e-03,-4.464163650698899782e-02,-1.267282657909369996e-02,2.875809638242839833e-02,-1.808039411862490120e-02,-5.071658967693000106e-03,-4.708248345611389801e-02,3.430885887772629900e-02,2.337484127982079885e-02,-5.219804415301099697e-03 --5.514554978810590376e-03,5.068011873981870252e-02,-4.177375257387799801e-02,-4.354218818603310115e-02,-7.999827273767569358e-02,-7.615635979391689736e-02,-3.235593223976569732e-02,-3.949338287409189657e-02,1.022564240495780000e-02,-9.361911330135799444e-03 -5.623859868852180283e-02,5.068011873981870252e-02,-3.099563183506899924e-02,8.100872220010799790e-03,1.907033305280559851e-02,2.123281182262769934e-02,3.391354823380159783e-02,-3.949338287409189657e-02,-2.952762274177360077e-02,-5.906719430815229877e-02 -9.015598825267629943e-03,5.068011873981870252e-02,-5.128142061927360405e-03,-6.419941234845069622e-02,6.998058880624739853e-02,8.386250418053420308e-02,-3.971920784793980114e-02,7.120997975363539678e-02,3.953987807202419963e-02,1.963283707370720027e-02 --6.726770864614299572e-02,-4.464163650698899782e-02,-5.901874575597240019e-02,3.220096707616459941e-02,-5.110326271545199972e-02,-4.953874054180659736e-02,-1.026610541524320026e-02,-3.949338287409189657e-02,2.007840549823790115e-03,2.377494398854190089e-02 -2.717829108036539862e-02,5.068011873981870252e-02,2.505059600673789980e-02,1.498661360748330083e-02,2.595009734381130070e-02,4.847672799831700269e-02,-3.971920784793980114e-02,3.430885887772629900e-02,7.837142301823850701e-03,2.377494398854190089e-02 --2.367724723390840155e-02,-4.464163650698899782e-02,-4.608500086940160029e-02,-3.321357610482440076e-02,3.282986163481690228e-02,3.626393798852529937e-02,3.759518603788870178e-02,-2.592261998182820038e-03,-3.324878724762579674e-02,1.134862324403770016e-02 -4.897352178648269744e-02,5.068011873981870252e-02,3.494354529119849794e-03,7.007254470726349826e-02,-8.448724111216979540e-03,1.340410027788939938e-02,-5.444575906428809897e-02,3.430885887772629900e-02,1.331596790892770020e-02,3.620126473304600273e-02 --5.273755484206479882e-02,-4.464163650698899782e-02,5.415152200152219958e-02,-2.632783471735180084e-02,-5.523112129005539744e-02,-3.388131745233000092e-02,-1.394774321933030074e-02,-3.949338287409189657e-02,-7.408887149153539631e-02,-5.906719430815229877e-02 -4.170844488444359899e-02,-4.464163650698899782e-02,-4.500718879552070145e-02,3.449621432008449784e-02,4.383748450042589812e-02,-1.571870666853709964e-02,3.759518603788870178e-02,-1.440062067847370023e-02,8.989869327767099905e-02,7.206516329203029904e-03 -5.623859868852180283e-02,-4.464163650698899782e-02,-5.794093368209150136e-02,-7.965857695567990157e-03,5.209320164963270050e-02,4.910302492189610318e-02,5.600337505832399948e-02,-2.141183364489639834e-02,-2.832024254799870092e-02,4.448547856271539702e-02 --3.457486258696700065e-02,5.068011873981870252e-02,-5.578530953432969675e-02,-1.599922263614299983e-02,-9.824676969418109224e-03,-7.889995123798789270e-03,3.759518603788870178e-02,-3.949338287409189657e-02,-5.295879323920039961e-02,2.791705090337660150e-02 -8.166636784565869944e-02,5.068011873981870252e-02,1.338730381358059929e-03,3.564383776990089764e-02,1.263946559924939983e-01,9.106491880169340081e-02,1.918699701745330000e-02,3.430885887772629900e-02,8.449528221240310000e-02,-3.007244590430930078e-02 --1.882016527791040067e-03,5.068011873981870252e-02,3.043965637614240091e-02,5.285819123858220142e-02,3.970962592582259754e-02,5.661858800484489973e-02,-3.971920784793980114e-02,7.120997975363539678e-02,2.539313491544940155e-02,2.791705090337660150e-02 -1.107266754538149961e-01,5.068011873981870252e-02,6.727790750762559745e-03,2.875809638242839833e-02,-2.771206412603280031e-02,-7.263698200219739949e-03,-4.708248345611389801e-02,3.430885887772629900e-02,2.007840549823790115e-03,7.762233388139309909e-02 --3.094232413594750000e-02,-4.464163650698899782e-02,4.660683748435590079e-02,1.498661360748330083e-02,-1.670444126042380101e-02,-4.703355284749029946e-02,7.788079970179680352e-04,-2.592261998182820038e-03,6.345592137206540473e-02,-2.593033898947460017e-02 -1.750521923228520000e-03,5.068011873981870252e-02,2.612840808061879863e-02,-9.113481248670509197e-03,2.457414448561009990e-02,3.845597722105199845e-02,-2.131101882750449997e-02,3.430885887772629900e-02,9.436409146079870192e-03,3.064409414368320182e-03 -9.015598825267629943e-03,-4.464163650698899782e-02,4.552902541047500196e-02,2.875809638242839833e-02,1.219056876180000040e-02,-1.383981589779990050e-02,2.655027262562750096e-02,-3.949338287409189657e-02,4.613233103941480340e-02,3.620126473304600273e-02 -3.081082953138499989e-02,-4.464163650698899782e-02,4.013996504107050084e-02,7.695828609473599757e-02,1.769438019460449832e-02,3.782968029747289795e-02,-2.867429443567860031e-02,3.430885887772629900e-02,-1.498586820292070049e-03,1.190434030297399942e-01 -3.807590643342410180e-02,5.068011873981870252e-02,-1.806188694849819934e-02,6.662967401352719310e-02,-5.110326271545199972e-02,-1.665815205390569834e-02,-7.653558588881050062e-02,3.430885887772629900e-02,-1.190068480150809939e-02,-1.350401824497050006e-02 -9.015598825267629943e-03,-4.464163650698899782e-02,1.427247526792889930e-02,1.498661360748330083e-02,5.484510736603499803e-02,4.722413415115889884e-02,7.072992627467229731e-02,-3.949338287409189657e-02,-3.324878724762579674e-02,-5.906719430815229877e-02 -9.256398319871740610e-02,-4.464163650698899782e-02,3.690652881942779739e-02,2.187235499495579841e-02,-2.496015840963049931e-02,-1.665815205390569834e-02,7.788079970179680352e-04,-3.949338287409189657e-02,-2.251217192966049885e-02,-2.178823207463989955e-02 -6.713621404158050254e-02,-4.464163650698899782e-02,3.494354529119849794e-03,3.564383776990089764e-02,4.934129593323050011e-02,3.125356259989280072e-02,7.072992627467229731e-02,-3.949338287409189657e-02,-6.092541861022970299e-04,1.963283707370720027e-02 -1.750521923228520000e-03,-4.464163650698899782e-02,-7.087467856866229432e-02,-2.288496402361559975e-02,-1.568959820211340015e-03,-1.000728964429089965e-03,2.655027262562750096e-02,-3.949338287409189657e-02,-2.251217192966049885e-02,7.206516329203029904e-03 -3.081082953138499989e-02,-4.464163650698899782e-02,-3.315125598283080038e-02,-2.288496402361559975e-02,-4.697540414084860200e-02,-8.116673518254939601e-02,1.038646665114559969e-01,-7.639450375000099436e-02,-3.980959436433750137e-02,-5.492508739331759815e-02 -2.717829108036539862e-02,5.068011873981870252e-02,9.403056873511560221e-02,9.761551025715360652e-02,-3.459182841703849903e-02,-3.200242668159279658e-02,-4.340084565202689815e-02,-2.592261998182820038e-03,3.664579779339879884e-02,1.066170822852360034e-01 -1.264813727628719998e-02,5.068011873981870252e-02,3.582871674554689856e-02,4.941532054484590319e-02,5.346915450783389784e-02,7.415490186505870052e-02,-6.917231028063640375e-02,1.450122215054540087e-01,4.560080841412490066e-02,4.862758547755009764e-02 -7.440129094361959405e-02,-4.464163650698899782e-02,3.151746845002330322e-02,1.010583809508899950e-01,4.658939021682820258e-02,3.689023491210430272e-02,1.550535921336619952e-02,-2.592261998182820038e-03,3.365681290238470291e-02,4.448547856271539702e-02 --4.183993948900609910e-02,-4.464163650698899782e-02,-6.548561819925780014e-02,-4.009931749229690007e-02,-5.696818394814720174e-03,1.434354566325799982e-02,-4.340084565202689815e-02,3.430885887772629900e-02,7.026862549151949647e-03,-1.350401824497050006e-02 --8.906293935226029801e-02,-4.464163650698899782e-02,-4.177375257387799801e-02,-1.944209332987930153e-02,-6.623874415566440021e-02,-7.427746902317970690e-02,8.142083605192099172e-03,-3.949338287409189657e-02,1.143797379512540100e-03,-3.007244590430930078e-02 -2.354575262934580082e-02,5.068011873981870252e-02,-3.961812842611620034e-02,-5.670610554934250001e-03,-4.835135699904979933e-02,-3.325502052875090042e-02,1.182372140927919965e-02,-3.949338287409189657e-02,-1.016435479455120028e-01,-6.735140813782170000e-02 --4.547247794002570037e-02,-4.464163650698899782e-02,-3.854031635223530150e-02,-2.632783471735180084e-02,-1.532848840222260020e-02,8.781618063081050515e-04,-3.235593223976569732e-02,-2.592261998182820038e-03,1.143797379512540100e-03,-3.835665973397880263e-02 --2.367724723390840155e-02,5.068011873981870252e-02,-2.560657146566450160e-02,4.252957915737339695e-02,-5.385516843185429725e-02,-4.765984977106939996e-02,-2.131101882750449997e-02,-3.949338287409189657e-02,1.143797379512540100e-03,1.963283707370720027e-02 --9.996055470531900466e-02,-4.464163650698899782e-02,-2.345094731790270046e-02,-6.419941234845069622e-02,-5.798302700645770191e-02,-6.018578824265070210e-02,1.182372140927919965e-02,-3.949338287409189657e-02,-1.811826730789670159e-02,-5.078298047848289754e-02 --2.730978568492789874e-02,-4.464163650698899782e-02,-6.656343027313869898e-02,-1.123996020607579971e-01,-4.972730985725089953e-02,-4.139688053527879746e-02,7.788079970179680352e-04,-3.949338287409189657e-02,-3.581672810154919867e-02,-9.361911330135799444e-03 -3.081082953138499989e-02,5.068011873981870252e-02,3.259528052390420205e-02,4.941532054484590319e-02,-4.009563984984299695e-02,-4.358891976780549654e-02,-6.917231028063640375e-02,3.430885887772629900e-02,6.301661511474640487e-02,3.064409414368320182e-03 --1.035930931563389945e-01,5.068011873981870252e-02,-4.608500086940160029e-02,-2.632783471735180084e-02,-2.496015840963049931e-02,-2.480001206043359885e-02,3.023191042971450082e-02,-3.949338287409189657e-02,-3.980959436433750137e-02,-5.492508739331759815e-02 -6.713621404158050254e-02,5.068011873981870252e-02,-2.991781976118810041e-02,5.744868538213489945e-02,-1.930069620102049918e-04,-1.571870666853709964e-02,7.441156407875940126e-02,-5.056371913686460301e-02,-3.845911230135379971e-02,7.206516329203029904e-03 --5.273755484206479882e-02,-4.464163650698899782e-02,-1.267282657909369996e-02,-6.075654165471439799e-02,-1.930069620102049918e-04,8.080576427467340075e-03,1.182372140927919965e-02,-2.592261998182820038e-03,-2.712864555432650121e-02,-5.078298047848289754e-02 --2.730978568492789874e-02,5.068011873981870252e-02,-1.590626280073640167e-02,-2.977070541108809906e-02,3.934851612593179802e-03,-6.875805026395569565e-04,4.127682384197570165e-02,-3.949338287409189657e-02,-2.364455757213410059e-02,1.134862324403770016e-02 --3.820740103798660192e-02,5.068011873981870252e-02,7.139651518361660176e-02,-5.731367096097819691e-02,1.539137131565160022e-01,1.558866503921270130e-01,7.788079970179680352e-04,7.194800217115350505e-02,5.027649338998960160e-02,6.933812005172369786e-02 -9.015598825267629943e-03,-4.464163650698899782e-02,-3.099563183506899924e-02,2.187235499495579841e-02,8.062710187196569719e-03,8.706873351046409346e-03,4.460445801105040325e-03,-2.592261998182820038e-03,9.436409146079870192e-03,1.134862324403770016e-02 -1.264813727628719998e-02,5.068011873981870252e-02,2.609183074771409820e-04,-1.140872838930430053e-02,3.970962592582259754e-02,5.724488492842390308e-02,-3.971920784793980114e-02,5.608052019451260223e-02,2.405258322689299982e-02,3.205915781821130212e-02 -6.713621404158050254e-02,-4.464163650698899782e-02,3.690652881942779739e-02,-5.042792957350569760e-02,-2.358420555142939912e-02,-3.450761437590899733e-02,4.864009945014990260e-02,-3.949338287409189657e-02,-2.595242443518940012e-02,-3.835665973397880263e-02 -4.534098333546320025e-02,-4.464163650698899782e-02,3.906215296718960200e-02,4.597244985110970211e-02,6.686757328995440036e-03,-2.417371513685449835e-02,8.142083605192099172e-03,-1.255556463467829946e-02,6.432823302367089713e-02,5.691179930721949887e-02 -6.713621404158050254e-02,5.068011873981870252e-02,-1.482845072685549936e-02,5.859630917623830093e-02,-5.935897986465880211e-02,-3.450761437590899733e-02,-6.180903467246220279e-02,1.290620876969899959e-02,-5.145307980263110273e-03,4.862758547755009764e-02 -2.717829108036539862e-02,-4.464163650698899782e-02,6.727790750762559745e-03,3.564383776990089764e-02,7.961225881365530110e-02,7.071026878537380045e-02,1.550535921336619952e-02,3.430885887772629900e-02,4.067226371449769728e-02,1.134862324403770016e-02 -5.623859868852180283e-02,-4.464163650698899782e-02,-6.871905442090049665e-02,-6.878990659528949614e-02,-1.930069620102049918e-04,-1.000728964429089965e-03,4.495846164606279866e-02,-3.764832683029650101e-02,-4.836172480289190057e-02,-1.077697500466389974e-03 -3.444336798240450054e-02,5.068011873981870252e-02,-9.439390357450949676e-03,5.974393262605470073e-02,-3.596778127523959923e-02,-7.576846662009279788e-03,-7.653558588881050062e-02,7.120997975363539678e-02,1.100810104587249955e-02,-2.178823207463989955e-02 -2.354575262934580082e-02,-4.464163650698899782e-02,1.966153563733339868e-02,-1.255635194240680048e-02,8.374011738825870577e-02,3.876912568284150012e-02,6.336665066649820044e-02,-2.592261998182820038e-03,6.604820616309839409e-02,4.862758547755009764e-02 -4.897352178648269744e-02,5.068011873981870252e-02,7.462995140525929827e-02,6.662967401352719310e-02,-9.824676969418109224e-03,-2.253322811587220049e-03,-4.340084565202689815e-02,3.430885887772629900e-02,3.365681290238470291e-02,1.963283707370720027e-02 -3.081082953138499989e-02,5.068011873981870252e-02,-8.361578283570040432e-03,4.658001526274530187e-03,1.494247447820220079e-02,2.749578105841839898e-02,8.142083605192099172e-03,-8.127430129569179762e-03,-2.952762274177360077e-02,5.691179930721949887e-02 --1.035930931563389945e-01,5.068011873981870252e-02,-2.345094731790270046e-02,-2.288496402361559975e-02,-8.687803702868139577e-02,-6.770135132559949864e-02,-1.762938102341739949e-02,-3.949338287409189657e-02,-7.814091066906959926e-02,-7.149351505265640061e-02 -1.628067572730669890e-02,5.068011873981870252e-02,-4.608500086940160029e-02,1.154374291374709975e-02,-3.321587555883730170e-02,-1.603185513032660131e-02,-1.026610541524320026e-02,-2.592261998182820038e-03,-4.398540256559110156e-02,-4.249876664881350324e-02 --6.000263174410389727e-02,5.068011873981870252e-02,5.415152200152219958e-02,-1.944209332987930153e-02,-4.972730985725089953e-02,-4.891244361822749687e-02,2.286863482154040048e-02,-3.949338287409189657e-02,-4.398540256559110156e-02,-5.219804415301099697e-03 --2.730978568492789874e-02,-4.464163650698899782e-02,-3.530688013059259805e-02,-2.977070541108809906e-02,-5.660707414825649764e-02,-5.862004593370299943e-02,3.023191042971450082e-02,-3.949338287409189657e-02,-4.986846773523059828e-02,-1.294830118603420011e-01 -4.170844488444359899e-02,-4.464163650698899782e-02,-3.207344390894990155e-02,-6.190416520781699683e-02,7.961225881365530110e-02,5.098191569263330059e-02,5.600337505832399948e-02,-9.972486173364639508e-03,4.506616833626150148e-02,-5.906719430815229877e-02 --8.179786245022120650e-02,-4.464163650698899782e-02,-8.165279930747129655e-02,-4.009931749229690007e-02,2.558898754392050119e-03,-1.853704282464289921e-02,7.072992627467229731e-02,-3.949338287409189657e-02,-1.090443584737709956e-02,-9.220404962683000083e-02 --4.183993948900609910e-02,-4.464163650698899782e-02,4.768464955823679963e-02,5.974393262605470073e-02,1.277706088506949944e-01,1.280164372928579986e-01,-2.499265663159149983e-02,1.081111006295440019e-01,6.389312063683939835e-02,4.034337164788070335e-02 --1.277963188084970010e-02,-4.464163650698899782e-02,6.061839444480759953e-02,5.285819123858220142e-02,4.796534307502930278e-02,2.937467182915549924e-02,-1.762938102341739949e-02,3.430885887772629900e-02,7.021129819331020649e-02,7.206516329203029904e-03 -6.713621404158050254e-02,-4.464163650698899782e-02,5.630714614928399725e-02,7.351541540099980343e-02,-1.395253554402150001e-02,-3.920484130275200124e-02,-3.235593223976569732e-02,-2.592261998182820038e-03,7.573758845754760549e-02,3.620126473304600273e-02 --5.273755484206479882e-02,5.068011873981870252e-02,9.834181703063900326e-02,8.728689817594480205e-02,6.034891879883950289e-02,4.878987646010649742e-02,-5.812739686837520292e-02,1.081111006295440019e-01,8.449528221240310000e-02,4.034337164788070335e-02 -5.383060374248070309e-03,-4.464163650698899782e-02,5.954058237092670069e-02,-5.616604740787570216e-02,2.457414448561009990e-02,5.286080646337049799e-02,-4.340084565202689815e-02,5.091436327188540029e-02,-4.219859706946029777e-03,-3.007244590430930078e-02 -8.166636784565869944e-02,-4.464163650698899782e-02,3.367309259778510089e-02,8.100872220010799790e-03,5.209320164963270050e-02,5.661858800484489973e-02,-1.762938102341739949e-02,3.430885887772629900e-02,3.486419309615960277e-02,6.933812005172369786e-02 -3.081082953138499989e-02,5.068011873981870252e-02,5.630714614928399725e-02,7.695828609473599757e-02,4.934129593323050011e-02,-1.227407358885230018e-02,-3.603757004385269719e-02,7.120997975363539678e-02,1.200533820015380060e-01,9.004865462589720093e-02 -1.750521923228520000e-03,-4.464163650698899782e-02,-6.548561819925780014e-02,-5.670610554934250001e-03,-7.072771253015849857e-03,-1.947648821001150138e-02,4.127682384197570165e-02,-3.949338287409189657e-02,-3.303712578676999863e-03,7.206516329203029904e-03 --4.910501639104519755e-02,-4.464163650698899782e-02,1.608549173157310108e-01,-4.698505887976939938e-02,-2.908801698423390050e-02,-1.978963667180099958e-02,-4.708248345611389801e-02,3.430885887772629900e-02,2.801650652326400162e-02,1.134862324403770016e-02 --2.730978568492789874e-02,5.068011873981870252e-02,-5.578530953432969675e-02,2.531522568869210010e-02,-7.072771253015849857e-03,-2.354741821327540133e-02,5.232173725423699961e-02,-3.949338287409189657e-02,-5.145307980263110273e-03,-5.078298047848289754e-02 -7.803382939463919532e-02,5.068011873981870252e-02,-2.452875939178359929e-02,-4.239456463293059946e-02,6.686757328995440036e-03,5.286080646337049799e-02,-6.917231028063640375e-02,8.080427118137170628e-02,-3.712834601047360072e-02,5.691179930721949887e-02 -1.264813727628719998e-02,-4.464163650698899782e-02,-3.638469220447349689e-02,4.252957915737339695e-02,-1.395253554402150001e-02,1.293437758520510003e-02,-2.683347553363510038e-02,5.156973385758089994e-03,-4.398540256559110156e-02,7.206516329203029904e-03 -4.170844488444359899e-02,-4.464163650698899782e-02,-8.361578283570040432e-03,-5.731367096097819691e-02,8.062710187196569719e-03,-3.137612975801370302e-02,1.517259579645879874e-01,-7.639450375000099436e-02,-8.023654024890179703e-02,-1.764612515980519894e-02 -4.897352178648269744e-02,-4.464163650698899782e-02,-4.177375257387799801e-02,1.045012516446259948e-01,3.558176735121919981e-02,-2.573945744580210040e-02,1.774974225931970073e-01,-7.639450375000099436e-02,-1.290794225416879923e-02,1.549073015887240078e-02 --1.641217033186929963e-02,5.068011873981870252e-02,1.274427430254229943e-01,9.761551025715360652e-02,1.631842733640340160e-02,1.747503028115330106e-02,-2.131101882750449997e-02,3.430885887772629900e-02,3.486419309615960277e-02,3.064409414368320182e-03 --7.453278554818210111e-02,5.068011873981870252e-02,-7.734155101194770121e-02,-4.698505887976939938e-02,-4.697540414084860200e-02,-3.262872360517189707e-02,4.460445801105040325e-03,-3.949338287409189657e-02,-7.212845460195599356e-02,-1.764612515980519894e-02 -3.444336798240450054e-02,5.068011873981870252e-02,2.828403222838059977e-02,-3.321357610482440076e-02,-4.559945128264750180e-02,-9.768885894535990141e-03,-5.076412126020100196e-02,-2.592261998182820038e-03,-5.947269741072230137e-02,-2.178823207463989955e-02 --3.457486258696700065e-02,5.068011873981870252e-02,-2.560657146566450160e-02,-1.714684618924559867e-02,1.182945896190920002e-03,-2.879619735166290186e-03,8.142083605192099172e-03,-1.550765430475099967e-02,1.482271084126630077e-02,4.034337164788070335e-02 --5.273755484206479882e-02,5.068011873981870252e-02,-6.225218197761509670e-02,1.154374291374709975e-02,-8.448724111216979540e-03,-3.669965360843580049e-02,1.222728555318910032e-01,-7.639450375000099436e-02,-8.682899321629239386e-02,3.064409414368320182e-03 -5.987113713954139715e-02,-4.464163650698899782e-02,-8.168937664037369826e-04,-8.485663651086830517e-02,7.548440023905199359e-02,7.947842571548069390e-02,4.460445801105040325e-03,3.430885887772629900e-02,2.337484127982079885e-02,2.791705090337660150e-02 -6.350367559056099842e-02,5.068011873981870252e-02,8.864150836571099701e-02,7.007254470726349826e-02,2.044628591100669870e-02,3.751653183568340322e-02,-5.076412126020100196e-02,7.120997975363539678e-02,2.930041326858690010e-02,7.348022696655839847e-02 -9.015598825267629943e-03,-4.464163650698899782e-02,-3.207344390894990155e-02,-2.632783471735180084e-02,4.246153164222479792e-02,-1.039518281811509931e-02,1.590892335727620011e-01,-7.639450375000099436e-02,-1.190068480150809939e-02,-3.835665973397880263e-02 -5.383060374248070309e-03,5.068011873981870252e-02,3.043965637614240091e-02,8.384402748220859403e-02,-3.734373413344069942e-02,-4.734670130927989828e-02,1.550535921336619952e-02,-3.949338287409189657e-02,8.640282933063080789e-03,1.549073015887240078e-02 -3.807590643342410180e-02,5.068011873981870252e-02,8.883414898524360018e-03,4.252957915737339695e-02,-4.284754556624519733e-02,-2.104223051895920057e-02,-3.971920784793980114e-02,-2.592261998182820038e-03,-1.811826730789670159e-02,7.206516329203029904e-03 -1.264813727628719998e-02,-4.464163650698899782e-02,6.727790750762559745e-03,-5.616604740787570216e-02,-7.587041416307230279e-02,-6.644875747844139480e-02,-2.131101882750449997e-02,-3.764832683029650101e-02,-1.811826730789670159e-02,-9.220404962683000083e-02 -7.440129094361959405e-02,5.068011873981870252e-02,-2.021751109626000048e-02,4.597244985110970211e-02,7.410844738085080319e-02,3.281930490884039930e-02,-3.603757004385269719e-02,7.120997975363539678e-02,1.063542767417259977e-01,3.620126473304600273e-02 -1.628067572730669890e-02,-4.464163650698899782e-02,-2.452875939178359929e-02,3.564383776990089764e-02,-7.072771253015849857e-03,-3.192768196955810076e-03,-1.394774321933030074e-02,-2.592261998182820038e-03,1.556684454070180086e-02,1.549073015887240078e-02 --5.514554978810590376e-03,5.068011873981870252e-02,-1.159501450521270051e-02,1.154374291374709975e-02,-2.220825269322829892e-02,-1.540555820674759969e-02,-2.131101882750449997e-02,-2.592261998182820038e-03,1.100810104587249955e-02,6.933812005172369786e-02 -1.264813727628719998e-02,-4.464163650698899782e-02,2.612840808061879863e-02,6.318680331979099896e-02,1.250187031342930022e-01,9.169121572527250130e-02,6.336665066649820044e-02,-2.592261998182820038e-03,5.757285620242599822e-02,-2.178823207463989955e-02 --3.457486258696700065e-02,-4.464163650698899782e-02,-5.901874575597240019e-02,1.215130832538269907e-03,-5.385516843185429725e-02,-7.803525056465400456e-02,6.704828847058519337e-02,-7.639450375000099436e-02,-2.139368094035999993e-02,1.549073015887240078e-02 -6.713621404158050254e-02,5.068011873981870252e-02,-3.638469220447349689e-02,-8.485663651086830517e-02,-7.072771253015849857e-03,1.966706951368000014e-02,-5.444575906428809897e-02,3.430885887772629900e-02,1.143797379512540100e-03,3.205915781821130212e-02 -3.807590643342410180e-02,5.068011873981870252e-02,-2.452875939178359929e-02,4.658001526274530187e-03,-2.633611126783170012e-02,-2.636575436938120090e-02,1.550535921336619952e-02,-3.949338287409189657e-02,-1.599826775813870117e-02,-2.593033898947460017e-02 -9.015598825267629943e-03,5.068011873981870252e-02,1.858372356345249984e-02,3.908670846363720280e-02,1.769438019460449832e-02,1.058576412178359981e-02,1.918699701745330000e-02,-2.592261998182820038e-03,1.630495279994180133e-02,-1.764612515980519894e-02 --9.269547780327989928e-02,5.068011873981870252e-02,-9.027529589851850111e-02,-5.731367096097819691e-02,-2.496015840963049931e-02,-3.043668437264510085e-02,-6.584467611156170040e-03,-2.592261998182820038e-03,2.405258322689299982e-02,3.064409414368320182e-03 -7.076875249260000666e-02,-4.464163650698899782e-02,-5.128142061927360405e-03,-5.670610554934250001e-03,8.786797596286209655e-02,1.029645603496960049e-01,1.182372140927919965e-02,3.430885887772629900e-02,-8.944018957797799166e-03,2.791705090337660150e-02 --1.641217033186929963e-02,-4.464163650698899782e-02,-5.255187331268700024e-02,-3.321357610482440076e-02,-4.422349842444640161e-02,-3.638650514664620167e-02,1.918699701745330000e-02,-3.949338287409189657e-02,-6.832974362442149896e-02,-3.007244590430930078e-02 -4.170844488444359899e-02,5.068011873981870252e-02,-2.237313524402180162e-02,2.875809638242839833e-02,-6.623874415566440021e-02,-4.515466207675319921e-02,-6.180903467246220279e-02,-2.592261998182820038e-03,2.863770518940129874e-03,-5.492508739331759815e-02 -1.264813727628719998e-02,-4.464163650698899782e-02,-2.021751109626000048e-02,-1.599922263614299983e-02,1.219056876180000040e-02,2.123281182262769934e-02,-7.653558588881050062e-02,1.081111006295440019e-01,5.988072306548120061e-02,-2.178823207463989955e-02 --3.820740103798660192e-02,-4.464163650698899782e-02,-5.470749746044879791e-02,-7.797089512339580586e-02,-3.321587555883730170e-02,-8.649025903297140327e-02,1.406810445523269948e-01,-7.639450375000099436e-02,-1.919704761394450121e-02,-5.219804415301099697e-03 -4.534098333546320025e-02,-4.464163650698899782e-02,-6.205954135808240159e-03,-1.599922263614299983e-02,1.250187031342930022e-01,1.251981011367520047e-01,1.918699701745330000e-02,3.430885887772629900e-02,3.243322577960189995e-02,-5.219804415301099697e-03 -7.076875249260000666e-02,5.068011873981870252e-02,-1.698407487461730050e-02,2.187235499495579841e-02,4.383748450042589812e-02,5.630543954305530091e-02,3.759518603788870178e-02,-2.592261998182820038e-03,-7.020931272868760620e-02,-1.764612515980519894e-02 --7.453278554818210111e-02,5.068011873981870252e-02,5.522933407540309841e-02,-4.009931749229690007e-02,5.346915450783389784e-02,5.317395492515999966e-02,-4.340084565202689815e-02,7.120997975363539678e-02,6.123790751970099866e-02,-3.421455281914410201e-02 -5.987113713954139715e-02,5.068011873981870252e-02,7.678557555302109594e-02,2.531522568869210010e-02,1.182945896190920002e-03,1.684873335757430118e-02,-5.444575906428809897e-02,3.430885887772629900e-02,2.993564839653250001e-02,4.448547856271539702e-02 -7.440129094361959405e-02,-4.464163650698899782e-02,1.858372356345249984e-02,6.318680331979099896e-02,6.172487165704060308e-02,4.284005568610550069e-02,8.142083605192099172e-03,-2.592261998182820038e-03,5.803912766389510147e-02,-5.906719430815229877e-02 -9.015598825267629943e-03,-4.464163650698899782e-02,-2.237313524402180162e-02,-3.206595255172180192e-02,-4.972730985725089953e-02,-6.864079671096809387e-02,7.809320188284639419e-02,-7.085933561861459951e-02,-6.291294991625119570e-02,-3.835665973397880263e-02 --7.090024709716259699e-02,-4.464163650698899782e-02,9.295275666123460623e-02,1.269136646684959971e-02,2.044628591100669870e-02,4.252690722431590187e-02,7.788079970179680352e-04,3.598276718899090076e-04,-5.454415271109520208e-02,-1.077697500466389974e-03 -2.354575262934580082e-02,5.068011873981870252e-02,-3.099563183506899924e-02,-5.670610554934250001e-03,-1.670444126042380101e-02,1.778817874294279927e-02,-3.235593223976569732e-02,-2.592261998182820038e-03,-7.408887149153539631e-02,-3.421455281914410201e-02 --5.273755484206479882e-02,5.068011873981870252e-02,3.906215296718960200e-02,-4.009931749229690007e-02,-5.696818394814720174e-03,-1.290037051243130006e-02,1.182372140927919965e-02,-3.949338287409189657e-02,1.630495279994180133e-02,3.064409414368320182e-03 -6.713621404158050254e-02,-4.464163650698899782e-02,-6.117436990373419786e-02,-4.009931749229690007e-02,-2.633611126783170012e-02,-2.448686359864400003e-02,3.391354823380159783e-02,-3.949338287409189657e-02,-5.615757309500619965e-02,-5.906719430815229877e-02 -1.750521923228520000e-03,-4.464163650698899782e-02,-8.361578283570040432e-03,-6.419941234845069622e-02,-3.871968699164179961e-02,-2.448686359864400003e-02,4.460445801105040325e-03,-3.949338287409189657e-02,-6.468302246445030435e-02,-5.492508739331759815e-02 -2.354575262934580082e-02,5.068011873981870252e-02,-3.746250427835440266e-02,-4.698505887976939938e-02,-9.100589560328480043e-02,-7.553006287033779687e-02,-3.235593223976569732e-02,-3.949338287409189657e-02,-3.075120986455629965e-02,-1.350401824497050006e-02 -3.807590643342410180e-02,5.068011873981870252e-02,-1.375063865297449991e-02,-1.599922263614299983e-02,-3.596778127523959923e-02,-2.198167590432769866e-02,-1.394774321933030074e-02,-2.592261998182820038e-03,-2.595242443518940012e-02,-1.077697500466389974e-03 -1.628067572730669890e-02,-4.464163650698899782e-02,7.355213933137849658e-02,-4.124694104539940176e-02,-4.320865536613589623e-03,-1.352666743601040056e-02,-1.394774321933030074e-02,-1.116217163146459961e-03,4.289568789252869857e-02,4.448547856271539702e-02 --1.882016527791040067e-03,5.068011873981870252e-02,-2.452875939178359929e-02,5.285819123858220142e-02,2.732605020201240090e-02,3.000096875273459973e-02,3.023191042971450082e-02,-2.592261998182820038e-03,-2.139368094035999993e-02,3.620126473304600273e-02 -1.264813727628719998e-02,-4.464163650698899782e-02,3.367309259778510089e-02,3.334859052598110329e-02,3.007795591841460128e-02,2.718263259662880016e-02,-2.902829807069099918e-03,8.847085473348980864e-03,3.119299070280229930e-02,2.791705090337660150e-02 -7.440129094361959405e-02,-4.464163650698899782e-02,3.475090467166599972e-02,9.417263956341730136e-02,5.759701308243719842e-02,2.029336643725910064e-02,2.286863482154040048e-02,-2.592261998182820038e-03,7.380214692004880006e-02,-2.178823207463989955e-02 -4.170844488444359899e-02,5.068011873981870252e-02,-3.854031635223530150e-02,5.285819123858220142e-02,7.686035309725310072e-02,1.164299442066459994e-01,-3.971920784793980114e-02,7.120997975363539678e-02,-2.251217192966049885e-02,-1.350401824497050006e-02 --9.147093429830140468e-03,5.068011873981870252e-02,-3.961812842611620034e-02,-4.009931749229690007e-02,-8.448724111216979540e-03,1.622243643399520069e-02,-6.549067247654929980e-02,7.120997975363539678e-02,1.776347786711730131e-02,-6.735140813782170000e-02 -9.015598825267629943e-03,5.068011873981870252e-02,-1.894705840284650021e-03,2.187235499495579841e-02,-3.871968699164179961e-02,-2.480001206043359885e-02,-6.584467611156170040e-03,-3.949338287409189657e-02,-3.980959436433750137e-02,-1.350401824497050006e-02 -6.713621404158050254e-02,5.068011873981870252e-02,-3.099563183506899924e-02,4.658001526274530187e-03,2.457414448561009990e-02,3.563764106494619888e-02,-2.867429443567860031e-02,3.430885887772629900e-02,2.337484127982079885e-02,8.176444079622779970e-02 -1.750521923228520000e-03,-4.464163650698899782e-02,-4.608500086940160029e-02,-3.321357610482440076e-02,-7.311850844667000526e-02,-8.147988364433890462e-02,4.495846164606279866e-02,-6.938329078357829971e-02,-6.117659509433449883e-02,-7.977772888232589898e-02 --9.147093429830140468e-03,5.068011873981870252e-02,1.338730381358059929e-03,-2.227739861197989939e-03,7.961225881365530110e-02,7.008397186179469995e-02,3.391354823380159783e-02,-2.592261998182820038e-03,2.671425763351279944e-02,8.176444079622779970e-02 --5.514554978810590376e-03,-4.464163650698899782e-02,6.492964274033119487e-02,3.564383776990089764e-02,-1.568959820211340015e-03,1.496984258683710031e-02,-1.394774321933030074e-02,7.288388806489919797e-04,-1.811826730789670159e-02,3.205915781821130212e-02 -9.619652164973699349e-02,-4.464163650698899782e-02,4.013996504107050084e-02,-5.731367096097819691e-02,4.521343735862710239e-02,6.068951800810880315e-02,-2.131101882750449997e-02,3.615391492152170150e-02,1.255315281338930007e-02,2.377494398854190089e-02 --7.453278554818210111e-02,-4.464163650698899782e-02,-2.345094731790270046e-02,-5.670610554934250001e-03,-2.083229983502719873e-02,-1.415296435958940044e-02,1.550535921336619952e-02,-3.949338287409189657e-02,-3.845911230135379971e-02,-3.007244590430930078e-02 -5.987113713954139715e-02,5.068011873981870252e-02,5.307370992764130074e-02,5.285819123858220142e-02,3.282986163481690228e-02,1.966706951368000014e-02,-1.026610541524320026e-02,3.430885887772629900e-02,5.520503808961670089e-02,-1.077697500466389974e-03 --2.367724723390840155e-02,-4.464163650698899782e-02,4.013996504107050084e-02,-1.255635194240680048e-02,-9.824676969418109224e-03,-1.000728964429089965e-03,-2.902829807069099918e-03,-2.592261998182820038e-03,-1.190068480150809939e-02,-3.835665973397880263e-02 -9.015598825267629943e-03,-4.464163650698899782e-02,-2.021751109626000048e-02,-5.387080026724189868e-02,3.145390877661580209e-02,2.060651489904859884e-02,5.600337505832399948e-02,-3.949338287409189657e-02,-1.090443584737709956e-02,-1.077697500466389974e-03 -1.628067572730669890e-02,5.068011873981870252e-02,1.427247526792889930e-02,1.215130832538269907e-03,1.182945896190920002e-03,-2.135537898074869878e-02,-3.235593223976569732e-02,3.430885887772629900e-02,7.496833602773420036e-02,4.034337164788070335e-02 -1.991321417832630017e-02,-4.464163650698899782e-02,-3.422906805671169922e-02,5.515343848250200270e-02,6.722868308984519814e-02,7.415490186505870052e-02,-6.584467611156170040e-03,3.283281404268990206e-02,2.472532334280450050e-02,6.933812005172369786e-02 -8.893144474769780483e-02,-4.464163650698899782e-02,6.727790750762559745e-03,2.531522568869210010e-02,3.007795591841460128e-02,8.706873351046409346e-03,6.336665066649820044e-02,-3.949338287409189657e-02,9.436409146079870192e-03,3.205915781821130212e-02 -1.991321417832630017e-02,-4.464163650698899782e-02,4.572166603000769880e-03,4.597244985110970211e-02,-1.808039411862490120e-02,-5.454911593043910295e-02,6.336665066649820044e-02,-3.949338287409189657e-02,2.866072031380889965e-02,6.105390622205419948e-02 --2.367724723390840155e-02,-4.464163650698899782e-02,3.043965637614240091e-02,-5.670610554934250001e-03,8.236416453005759863e-02,9.200436418706199604e-02,-1.762938102341739949e-02,7.120997975363539678e-02,3.304707235493409972e-02,3.064409414368320182e-03 -9.619652164973699349e-02,-4.464163650698899782e-02,5.199589785376040191e-02,7.925353333865589600e-02,5.484510736603499803e-02,3.657708645031480105e-02,-7.653558588881050062e-02,1.413221094178629955e-01,9.864637430492799453e-02,6.105390622205419948e-02 -2.354575262934580082e-02,5.068011873981870252e-02,6.169620651868849837e-02,6.203917986997459916e-02,2.457414448561009990e-02,-3.607335668485669999e-02,-9.126213710515880539e-02,1.553445353507079962e-01,1.333957338374689994e-01,8.176444079622779970e-02 -7.076875249260000666e-02,5.068011873981870252e-02,-7.283766209689159811e-03,4.941532054484590319e-02,6.034891879883950289e-02,-4.445362044113949918e-03,-5.444575906428809897e-02,1.081111006295440019e-01,1.290194116001679991e-01,5.691179930721949887e-02 -3.081082953138499989e-02,-4.464163650698899782e-02,5.649978676881649634e-03,1.154374291374709975e-02,7.823630595545419397e-02,7.791268340653299818e-02,-4.340084565202689815e-02,1.081111006295440019e-01,6.604820616309839409e-02,1.963283707370720027e-02 --1.882016527791040067e-03,-4.464163650698899782e-02,5.415152200152219958e-02,-6.649465948908450663e-02,7.273249452264969606e-02,5.661858800484489973e-02,-4.340084565202689815e-02,8.486339447772170419e-02,8.449528221240310000e-02,4.862758547755009764e-02 -4.534098333546320025e-02,5.068011873981870252e-02,-8.361578283570040432e-03,-3.321357610482440076e-02,-7.072771253015849857e-03,1.191310268097639903e-03,-3.971920784793980114e-02,3.430885887772629900e-02,2.993564839653250001e-02,2.791705090337660150e-02 -7.440129094361959405e-02,-4.464163650698899782e-02,1.145089981388529993e-01,2.875809638242839833e-02,2.457414448561009990e-02,2.499059336410210108e-02,1.918699701745330000e-02,-2.592261998182820038e-03,-6.092541861022970299e-04,-5.219804415301099697e-03 --3.820740103798660192e-02,-4.464163650698899782e-02,6.708526688809300642e-02,-6.075654165471439799e-02,-2.908801698423390050e-02,-2.323426975148589965e-02,-1.026610541524320026e-02,-2.592261998182820038e-03,-1.498586820292070049e-03,1.963283707370720027e-02 --1.277963188084970010e-02,5.068011873981870252e-02,-5.578530953432969675e-02,-2.227739861197989939e-03,-2.771206412603280031e-02,-2.918409052548700047e-02,1.918699701745330000e-02,-3.949338287409189657e-02,-1.705210460474350029e-02,4.448547856271539702e-02 -9.015598825267629943e-03,5.068011873981870252e-02,3.043965637614240091e-02,4.252957915737339695e-02,-2.944912678412469915e-03,3.689023491210430272e-02,-6.549067247654929980e-02,7.120997975363539678e-02,-2.364455757213410059e-02,1.549073015887240078e-02 -8.166636784565869944e-02,5.068011873981870252e-02,-2.560657146566450160e-02,-3.665644679856060184e-02,-7.036660273026780488e-02,-4.640725592391130305e-02,-3.971920784793980114e-02,-2.592261998182820038e-03,-4.118038518800790082e-02,-5.219804415301099697e-03 -3.081082953138499989e-02,-4.464163650698899782e-02,1.048086894739250069e-01,7.695828609473599757e-02,-1.120062982761920074e-02,-1.133462820348369975e-02,-5.812739686837520292e-02,3.430885887772629900e-02,5.710418744784390155e-02,3.620126473304600273e-02 -2.717829108036539862e-02,5.068011873981870252e-02,-6.205954135808240159e-03,2.875809638242839833e-02,-1.670444126042380101e-02,-1.627025888008149911e-03,-5.812739686837520292e-02,3.430885887772629900e-02,2.930041326858690010e-02,3.205915781821130212e-02 --6.000263174410389727e-02,5.068011873981870252e-02,-4.716281294328249912e-02,-2.288496402361559975e-02,-7.174255558846899528e-02,-5.768060054833450134e-02,-6.584467611156170040e-03,-3.949338287409189657e-02,-6.291294991625119570e-02,-5.492508739331759815e-02 -5.383060374248070309e-03,-4.464163650698899782e-02,-4.824062501716339796e-02,-1.255635194240680048e-02,1.182945896190920002e-03,-6.637401276640669812e-03,6.336665066649820044e-02,-3.949338287409189657e-02,-5.140053526058249722e-02,-5.906719430815229877e-02 --2.004470878288880029e-02,-4.464163650698899782e-02,8.540807214406830050e-02,-3.665644679856060184e-02,9.199583453746550121e-02,8.949917649274570508e-02,-6.180903467246220279e-02,1.450122215054540087e-01,8.094791351127560153e-02,5.276969239238479825e-02 -1.991321417832630017e-02,5.068011873981870252e-02,-1.267282657909369996e-02,7.007254470726349826e-02,-1.120062982761920074e-02,7.141131042098750048e-03,-3.971920784793980114e-02,3.430885887772629900e-02,5.384369968545729690e-03,3.064409414368320182e-03 --6.363517019512339445e-02,-4.464163650698899782e-02,-3.315125598283080038e-02,-3.321357610482440076e-02,1.182945896190920002e-03,2.405114797873349891e-02,-2.499265663159149983e-02,-2.592261998182820038e-03,-2.251217192966049885e-02,-5.906719430815229877e-02 -2.717829108036539862e-02,-4.464163650698899782e-02,-7.283766209689159811e-03,-5.042792957350569760e-02,7.548440023905199359e-02,5.661858800484489973e-02,3.391354823380159783e-02,-2.592261998182820038e-03,4.344317225278129802e-02,1.549073015887240078e-02 --1.641217033186929963e-02,-4.464163650698899782e-02,-1.375063865297449991e-02,1.320442171945160059e-01,-9.824676969418109224e-03,-3.819065120534880214e-03,1.918699701745330000e-02,-3.949338287409189657e-02,-3.581672810154919867e-02,-3.007244590430930078e-02 -3.081082953138499989e-02,5.068011873981870252e-02,5.954058237092670069e-02,5.630106193231849965e-02,-2.220825269322829892e-02,1.191310268097639903e-03,-3.235593223976569732e-02,-2.592261998182820038e-03,-2.479118743246069845e-02,-1.764612515980519894e-02 -5.623859868852180283e-02,5.068011873981870252e-02,2.181715978509519982e-02,5.630106193231849965e-02,-7.072771253015849857e-03,1.810132720473240156e-02,-3.235593223976569732e-02,-2.592261998182820038e-03,-2.364455757213410059e-02,2.377494398854190089e-02 --2.004470878288880029e-02,-4.464163650698899782e-02,1.858372356345249984e-02,9.072976886968099619e-02,3.934851612593179802e-03,8.706873351046409346e-03,3.759518603788870178e-02,-3.949338287409189657e-02,-5.780006567561250114e-02,7.206516329203029904e-03 --1.072256316073579990e-01,-4.464163650698899782e-02,-1.159501450521270051e-02,-4.009931749229690007e-02,4.934129593323050011e-02,6.444729954958319795e-02,-1.394774321933030074e-02,3.430885887772629900e-02,7.026862549151949647e-03,-3.007244590430930078e-02 -8.166636784565869944e-02,5.068011873981870252e-02,-2.972517914165530208e-03,-3.321357610482440076e-02,4.246153164222479792e-02,5.787118185200299664e-02,-1.026610541524320026e-02,3.430885887772629900e-02,-6.092541861022970299e-04,-1.077697500466389974e-03 -5.383060374248070309e-03,5.068011873981870252e-02,1.750591148957160101e-02,3.220096707616459941e-02,1.277706088506949944e-01,1.273901403692790091e-01,-2.131101882750449997e-02,7.120997975363539678e-02,6.257518145805600340e-02,1.549073015887240078e-02 -3.807590643342410180e-02,5.068011873981870252e-02,-2.991781976118810041e-02,-7.452802442965950069e-02,-1.257658268582039982e-02,-1.258722205064180012e-02,4.460445801105040325e-03,-2.592261998182820038e-03,3.711738233435969789e-03,-3.007244590430930078e-02 -3.081082953138499989e-02,-4.464163650698899782e-02,-2.021751109626000048e-02,-5.670610554934250001e-03,-4.320865536613589623e-03,-2.949723898727649868e-02,7.809320188284639419e-02,-3.949338287409189657e-02,-1.090443584737709956e-02,-1.077697500466389974e-03 -1.750521923228520000e-03,5.068011873981870252e-02,-5.794093368209150136e-02,-4.354218818603310115e-02,-9.650970703608929835e-02,-4.703355284749029946e-02,-9.862541271333299941e-02,3.430885887772629900e-02,-6.117659509433449883e-02,-7.149351505265640061e-02 --2.730978568492789874e-02,5.068011873981870252e-02,6.061839444480759953e-02,1.079441223383619947e-01,1.219056876180000040e-02,-1.759759743927430051e-02,-2.902829807069099918e-03,-2.592261998182820038e-03,7.021129819331020649e-02,1.356118306890790048e-01 --8.543040090124079389e-02,5.068011873981870252e-02,-4.069594049999709917e-02,-3.321357610482440076e-02,-8.137422559587689785e-02,-6.958024209633670298e-02,-6.584467611156170040e-03,-3.949338287409189657e-02,-5.780006567561250114e-02,-4.249876664881350324e-02 -1.264813727628719998e-02,5.068011873981870252e-02,-7.195249064254319316e-02,-4.698505887976939938e-02,-5.110326271545199972e-02,-9.713730673381550107e-02,1.185912177278039964e-01,-7.639450375000099436e-02,-2.028874775162960165e-02,-3.835665973397880263e-02 --5.273755484206479882e-02,-4.464163650698899782e-02,-5.578530953432969675e-02,-3.665644679856060184e-02,8.924392882106320368e-02,-3.192768196955810076e-03,8.142083605192099172e-03,3.430885887772629900e-02,1.323726493386760128e-01,3.064409414368320182e-03 --2.367724723390840155e-02,5.068011873981870252e-02,4.552902541047500196e-02,2.187235499495579841e-02,1.098832216940800049e-01,8.887287956916670173e-02,7.788079970179680352e-04,3.430885887772629900e-02,7.419253669003070262e-02,6.105390622205419948e-02 --7.453278554818210111e-02,5.068011873981870252e-02,-9.439390357450949676e-03,1.498661360748330083e-02,-3.734373413344069942e-02,-2.166852744253820046e-02,-1.394774321933030074e-02,-2.592261998182820038e-03,-3.324878724762579674e-02,1.134862324403770016e-02 --5.514554978810590376e-03,5.068011873981870252e-02,-3.315125598283080038e-02,-1.599922263614299983e-02,8.062710187196569719e-03,1.622243643399520069e-02,1.550535921336619952e-02,-2.592261998182820038e-03,-2.832024254799870092e-02,-7.563562196749110123e-02 --6.000263174410389727e-02,5.068011873981870252e-02,4.984027370599859730e-02,1.842948430121960079e-02,-1.670444126042380101e-02,-3.012353591085559917e-02,-1.762938102341739949e-02,-2.592261998182820038e-03,4.976865992074899769e-02,-5.906719430815229877e-02 --2.004470878288880029e-02,-4.464163650698899782e-02,-8.488623552911400694e-02,-2.632783471735180084e-02,-3.596778127523959923e-02,-3.419446591411950259e-02,4.127682384197570165e-02,-5.167075276314189725e-02,-8.238148325810279449e-02,-4.664087356364819692e-02 -3.807590643342410180e-02,5.068011873981870252e-02,5.649978676881649634e-03,3.220096707616459941e-02,6.686757328995440036e-03,1.747503028115330106e-02,-2.499265663159149983e-02,3.430885887772629900e-02,1.482271084126630077e-02,6.105390622205419948e-02 -1.628067572730669890e-02,-4.464163650698899782e-02,2.073934771121430098e-02,2.187235499495579841e-02,-1.395253554402150001e-02,-1.321351897422090062e-02,-6.584467611156170040e-03,-2.592261998182820038e-03,1.331596790892770020e-02,4.034337164788070335e-02 -4.170844488444359899e-02,-4.464163650698899782e-02,-7.283766209689159811e-03,2.875809638242839833e-02,-4.284754556624519733e-02,-4.828614669464850045e-02,5.232173725423699961e-02,-7.639450375000099436e-02,-7.212845460195599356e-02,2.377494398854190089e-02 -1.991321417832630017e-02,5.068011873981870252e-02,1.048086894739250069e-01,7.007254470726349826e-02,-3.596778127523959923e-02,-2.667890283117069911e-02,-2.499265663159149983e-02,-2.592261998182820038e-03,3.711738233435969789e-03,4.034337164788070335e-02 --4.910501639104519755e-02,5.068011873981870252e-02,-2.452875939178359929e-02,6.750727943574620551e-05,-4.697540414084860200e-02,-2.824464514011839830e-02,-6.549067247654929980e-02,2.840467953758080144e-02,1.919903307856710151e-02,1.134862324403770016e-02 -1.750521923228520000e-03,5.068011873981870252e-02,-6.205954135808240159e-03,-1.944209332987930153e-02,-9.824676969418109224e-03,4.949091809572019746e-03,-3.971920784793980114e-02,3.430885887772629900e-02,1.482271084126630077e-02,9.833286845556660216e-02 -3.444336798240450054e-02,-4.464163650698899782e-02,-3.854031635223530150e-02,-1.255635194240680048e-02,9.438663045397699403e-03,5.262240271361550044e-03,-6.584467611156170040e-03,-2.592261998182820038e-03,3.119299070280229930e-02,9.833286845556660216e-02 --4.547247794002570037e-02,5.068011873981870252e-02,1.371430516903520136e-01,-1.599922263614299983e-02,4.108557878402369773e-02,3.187985952347179713e-02,-4.340084565202689815e-02,7.120997975363539678e-02,7.102157794598219775e-02,4.862758547755009764e-02 --9.147093429830140468e-03,5.068011873981870252e-02,1.705552259806600024e-01,1.498661360748330083e-02,3.007795591841460128e-02,3.375875029420900147e-02,-2.131101882750449997e-02,3.430885887772629900e-02,3.365681290238470291e-02,3.205915781821130212e-02 --1.641217033186929963e-02,5.068011873981870252e-02,2.416542455238970041e-03,1.498661360748330083e-02,2.182223876920789951e-02,-1.008203435632550049e-02,-2.499265663159149983e-02,3.430885887772629900e-02,8.553312118743899850e-02,8.176444079622779970e-02 --9.147093429830140468e-03,-4.464163650698899782e-02,3.798434089330870317e-02,-4.009931749229690007e-02,-2.496015840963049931e-02,-3.819065120534880214e-03,-4.340084565202689815e-02,1.585829843977170153e-02,-5.145307980263110273e-03,2.791705090337660150e-02 -1.991321417832630017e-02,-4.464163650698899782e-02,-5.794093368209150136e-02,-5.731367096097819691e-02,-1.568959820211340015e-03,-1.258722205064180012e-02,7.441156407875940126e-02,-3.949338287409189657e-02,-6.117659509433449883e-02,-7.563562196749110123e-02 -5.260606023750229870e-02,5.068011873981870252e-02,-9.439390357450949676e-03,4.941532054484590319e-02,5.071724879143160031e-02,-1.916333974822199970e-02,-1.394774321933030074e-02,3.430885887772629900e-02,1.193439942037869961e-01,-1.764612515980519894e-02 --2.730978568492789874e-02,5.068011873981870252e-02,-2.345094731790270046e-02,-1.599922263614299983e-02,1.356652162000110060e-02,1.277780335431030062e-02,2.655027262562750096e-02,-2.592261998182820038e-03,-1.090443584737709956e-02,-2.178823207463989955e-02 --7.453278554818210111e-02,-4.464163650698899782e-02,-1.051720243133190055e-02,-5.670610554934250001e-03,-6.623874415566440021e-02,-5.705430362475540085e-02,-2.902829807069099918e-03,-3.949338287409189657e-02,-4.257210492279420166e-02,-1.077697500466389974e-03 --1.072256316073579990e-01,-4.464163650698899782e-02,-3.422906805671169922e-02,-6.764228304218700139e-02,-6.348683843926219983e-02,-7.051968748170529822e-02,8.142083605192099172e-03,-3.949338287409189657e-02,-6.092541861022970299e-04,-7.977772888232589898e-02 -4.534098333546320025e-02,5.068011873981870252e-02,-2.972517914165530208e-03,1.079441223383619947e-01,3.558176735121919981e-02,2.248540566978590033e-02,2.655027262562750096e-02,-2.592261998182820038e-03,2.801650652326400162e-02,1.963283707370720027e-02 --1.882016527791040067e-03,-4.464163650698899782e-02,6.816307896197400240e-02,-5.670610554934250001e-03,1.195148917014880047e-01,1.302084765253850029e-01,-2.499265663159149983e-02,8.670845052151719690e-02,4.613233103941480340e-02,-1.077697500466389974e-03 -1.991321417832630017e-02,5.068011873981870252e-02,9.961226972405269262e-03,1.842948430121960079e-02,1.494247447820220079e-02,4.471894645684260094e-02,-6.180903467246220279e-02,7.120997975363539678e-02,9.436409146079870192e-03,-6.320930122298699938e-02 -1.628067572730669890e-02,5.068011873981870252e-02,2.416542455238970041e-03,-5.670610554934250001e-03,-5.696818394814720174e-03,1.089891258357309975e-02,-5.076412126020100196e-02,3.430885887772629900e-02,2.269202256674450122e-02,-3.835665973397880263e-02 --1.882016527791040067e-03,-4.464163650698899782e-02,-3.854031635223530150e-02,2.187235499495579841e-02,-1.088932827598989989e-01,-1.156130659793979942e-01,2.286863482154040048e-02,-7.639450375000099436e-02,-4.687948284421659950e-02,2.377494398854190089e-02 -1.628067572730669890e-02,-4.464163650698899782e-02,2.612840808061879863e-02,5.859630917623830093e-02,-6.073493272285990230e-02,-4.421521669138449989e-02,-1.394774321933030074e-02,-3.395821474270550172e-02,-5.140053526058249722e-02,-2.593033898947460017e-02 --7.090024709716259699e-02,5.068011873981870252e-02,-8.919748382463760228e-02,-7.452802442965950069e-02,-4.284754556624519733e-02,-2.573945744580210040e-02,-3.235593223976569732e-02,-2.592261998182820038e-03,-1.290794225416879923e-02,-5.492508739331759815e-02 -4.897352178648269744e-02,-4.464163650698899782e-02,6.061839444480759953e-02,-2.288496402361559975e-02,-2.358420555142939912e-02,-7.271172671423199729e-02,-4.340084565202689815e-02,-2.592261998182820038e-03,1.041376113589790042e-01,3.620126473304600273e-02 -5.383060374248070309e-03,5.068011873981870252e-02,-2.884000768730720157e-02,-9.113481248670509197e-03,-3.183992270063620150e-02,-2.887094206369749880e-02,8.142083605192099172e-03,-3.949338287409189657e-02,-1.811826730789670159e-02,7.206516329203029904e-03 -3.444336798240450054e-02,5.068011873981870252e-02,-2.991781976118810041e-02,4.658001526274530187e-03,9.337178739566659447e-02,8.699398879842949739e-02,3.391354823380159783e-02,-2.592261998182820038e-03,2.405258322689299982e-02,-3.835665973397880263e-02 -2.354575262934580082e-02,5.068011873981870252e-02,-1.913969902237900103e-02,4.941532054484590319e-02,-6.348683843926219983e-02,-6.112523362801929733e-02,4.460445801105040325e-03,-3.949338287409189657e-02,-2.595242443518940012e-02,-1.350401824497050006e-02 -1.991321417832630017e-02,-4.464163650698899782e-02,-4.069594049999709917e-02,-1.599922263614299983e-02,-8.448724111216979540e-03,-1.759759743927430051e-02,5.232173725423699961e-02,-3.949338287409189657e-02,-3.075120986455629965e-02,3.064409414368320182e-03 --4.547247794002570037e-02,-4.464163650698899782e-02,1.535028734180979987e-02,-7.452802442965950069e-02,-4.972730985725089953e-02,-1.728444897748479883e-02,-2.867429443567860031e-02,-2.592261998182820038e-03,-1.043648208321659998e-01,-7.563562196749110123e-02 -5.260606023750229870e-02,5.068011873981870252e-02,-2.452875939178359929e-02,5.630106193231849965e-02,-7.072771253015849857e-03,-5.071658967693000106e-03,-2.131101882750449997e-02,-2.592261998182820038e-03,2.671425763351279944e-02,-3.835665973397880263e-02 --5.514554978810590376e-03,5.068011873981870252e-02,1.338730381358059929e-03,-8.485663651086830517e-02,-1.120062982761920074e-02,-1.665815205390569834e-02,4.864009945014990260e-02,-3.949338287409189657e-02,-4.118038518800790082e-02,-8.806194271199530021e-02 -9.015598825267629943e-03,5.068011873981870252e-02,6.924089103585480409e-02,5.974393262605470073e-02,1.769438019460449832e-02,-2.323426975148589965e-02,-4.708248345611389801e-02,3.430885887772629900e-02,1.032922649115240038e-01,7.348022696655839847e-02 --2.367724723390840155e-02,-4.464163650698899782e-02,-6.979686649478139548e-02,-6.419941234845069622e-02,-5.935897986465880211e-02,-5.047818592717519953e-02,1.918699701745330000e-02,-3.949338287409189657e-02,-8.913686007934769340e-02,-5.078298047848289754e-02 --4.183993948900609910e-02,5.068011873981870252e-02,-2.991781976118810041e-02,-2.227739861197989939e-03,2.182223876920789951e-02,3.657708645031480105e-02,1.182372140927919965e-02,-2.592261998182820038e-03,-4.118038518800790082e-02,6.519601313688899724e-02 --7.453278554818210111e-02,-4.464163650698899782e-02,-4.608500086940160029e-02,-4.354218818603310115e-02,-2.908801698423390050e-02,-2.323426975148589965e-02,1.550535921336619952e-02,-3.949338287409189657e-02,-3.980959436433750137e-02,-2.178823207463989955e-02 -3.444336798240450054e-02,-4.464163650698899782e-02,1.858372356345249984e-02,5.630106193231849965e-02,1.219056876180000040e-02,-5.454911593043910295e-02,-6.917231028063640375e-02,7.120997975363539678e-02,1.300806095217529879e-01,7.206516329203029904e-03 --6.000263174410389727e-02,-4.464163650698899782e-02,1.338730381358059929e-03,-2.977070541108809906e-02,-7.072771253015849857e-03,-2.166852744253820046e-02,1.182372140927919965e-02,-2.592261998182820038e-03,3.181521750079859684e-02,-5.492508739331759815e-02 --8.543040090124079389e-02,5.068011873981870252e-02,-3.099563183506899924e-02,-2.288496402361559975e-02,-6.348683843926219983e-02,-5.423596746864960128e-02,1.918699701745330000e-02,-3.949338287409189657e-02,-9.643322289178400675e-02,-3.421455281914410201e-02 -5.260606023750229870e-02,-4.464163650698899782e-02,-4.050329988046450294e-03,-3.091832896419060075e-02,-4.697540414084860200e-02,-5.830689747191349775e-02,-1.394774321933030074e-02,-2.583996815000549896e-02,3.605579008983190309e-02,2.377494398854190089e-02 -1.264813727628719998e-02,-4.464163650698899782e-02,1.535028734180979987e-02,-3.321357610482440076e-02,4.108557878402369773e-02,3.219300798526129881e-02,-2.902829807069099918e-03,-2.592261998182820038e-03,4.506616833626150148e-02,-6.735140813782170000e-02 -5.987113713954139715e-02,5.068011873981870252e-02,2.289497185897609866e-02,4.941532054484590319e-02,1.631842733640340160e-02,1.183835796894170019e-02,-1.394774321933030074e-02,-2.592261998182820038e-03,3.953987807202419963e-02,1.963283707370720027e-02 --2.367724723390840155e-02,-4.464163650698899782e-02,4.552902541047500196e-02,9.072976886968099619e-02,-1.808039411862490120e-02,-3.544705976127759950e-02,7.072992627467229731e-02,-3.949338287409189657e-02,-3.452371533034950118e-02,-9.361911330135799444e-03 -1.628067572730669890e-02,-4.464163650698899782e-02,-4.500718879552070145e-02,-5.731367096097819691e-02,-3.459182841703849903e-02,-5.392281900686000246e-02,7.441156407875940126e-02,-7.639450375000099436e-02,-4.257210492279420166e-02,4.034337164788070335e-02 -1.107266754538149961e-01,5.068011873981870252e-02,-3.315125598283080038e-02,-2.288496402361559975e-02,-4.320865536613589623e-03,2.029336643725910064e-02,-6.180903467246220279e-02,7.120997975363539678e-02,1.556684454070180086e-02,4.448547856271539702e-02 --2.004470878288880029e-02,-4.464163650698899782e-02,9.726400495675820157e-02,-5.670610554934250001e-03,-5.696818394814720174e-03,-2.386056667506489953e-02,-2.131101882750449997e-02,-2.592261998182820038e-03,6.168584882386619894e-02,4.034337164788070335e-02 --1.641217033186929963e-02,-4.464163650698899782e-02,5.415152200152219958e-02,7.007254470726349826e-02,-3.321587555883730170e-02,-2.793149667832890010e-02,8.142083605192099172e-03,-3.949338287409189657e-02,-2.712864555432650121e-02,-9.361911330135799444e-03 -4.897352178648269744e-02,5.068011873981870252e-02,1.231314947298999957e-01,8.384402748220859403e-02,-1.047654241852959967e-01,-1.008950882752900069e-01,-6.917231028063640375e-02,-2.592261998182820038e-03,3.664579779339879884e-02,-3.007244590430930078e-02 --5.637009329308430294e-02,-4.464163650698899782e-02,-8.057498723359039772e-02,-8.485663651086830517e-02,-3.734373413344069942e-02,-3.701280207022530216e-02,3.391354823380159783e-02,-3.949338287409189657e-02,-5.615757309500619965e-02,-1.377672256900120129e-01 -2.717829108036539862e-02,-4.464163650698899782e-02,9.295275666123460623e-02,-5.272317671413939699e-02,8.062710187196569719e-03,3.970857106821010230e-02,-2.867429443567860031e-02,2.102445536239900062e-02,-4.836172480289190057e-02,1.963283707370720027e-02 -6.350367559056099842e-02,-4.464163650698899782e-02,-5.039624916492520257e-02,1.079441223383619947e-01,3.145390877661580209e-02,1.935392105189049847e-02,-1.762938102341739949e-02,2.360753382371260159e-02,5.803912766389510147e-02,4.034337164788070335e-02 --5.273755484206479882e-02,5.068011873981870252e-02,-1.159501450521270051e-02,5.630106193231849965e-02,5.622106022423609822e-02,7.290230801790049953e-02,-3.971920784793980114e-02,7.120997975363539678e-02,3.056648739841480097e-02,-5.219804415301099697e-03 --9.147093429830140468e-03,5.068011873981870252e-02,-2.776219561342629927e-02,8.100872220010799790e-03,4.796534307502930278e-02,3.720338337389379746e-02,-2.867429443567860031e-02,3.430885887772629900e-02,6.604820616309839409e-02,-4.249876664881350324e-02 -5.383060374248070309e-03,-4.464163650698899782e-02,5.846277029704580186e-02,-4.354218818603310115e-02,-7.311850844667000526e-02,-7.239857825244250256e-02,1.918699701745330000e-02,-7.639450375000099436e-02,-5.140053526058249722e-02,-2.593033898947460017e-02 -7.440129094361959405e-02,-4.464163650698899782e-02,8.540807214406830050e-02,6.318680331979099896e-02,1.494247447820220079e-02,1.309095181609989944e-02,1.550535921336619952e-02,-2.592261998182820038e-03,6.209315616505399656e-03,8.590654771106250032e-02 --5.273755484206479882e-02,-4.464163650698899782e-02,-8.168937664037369826e-04,-2.632783471735180084e-02,1.081461590359879960e-02,7.141131042098750048e-03,4.864009945014990260e-02,-3.949338287409189657e-02,-3.581672810154919867e-02,1.963283707370720027e-02 -8.166636784565869944e-02,5.068011873981870252e-02,6.727790750762559745e-03,-4.522987001831730094e-03,1.098832216940800049e-01,1.170562411302250028e-01,-3.235593223976569732e-02,9.187460744414439884e-02,5.472400334817909689e-02,7.206516329203029904e-03 --5.514554978810590376e-03,-4.464163650698899782e-02,8.883414898524360018e-03,-5.042792957350569760e-02,2.595009734381130070e-02,4.722413415115889884e-02,-4.340084565202689815e-02,7.120997975363539678e-02,1.482271084126630077e-02,3.064409414368320182e-03 --2.730978568492789874e-02,-4.464163650698899782e-02,8.001901177466380632e-02,9.876313370696999938e-02,-2.944912678412469915e-03,1.810132720473240156e-02,-1.762938102341739949e-02,3.311917341962639788e-03,-2.952762274177360077e-02,3.620126473304600273e-02 --5.273755484206479882e-02,-4.464163650698899782e-02,7.139651518361660176e-02,-7.452802442965950069e-02,-1.532848840222260020e-02,-1.313877426218630021e-03,4.460445801105040325e-03,-2.141183364489639834e-02,-4.687948284421659950e-02,3.064409414368320182e-03 -9.015598825267629943e-03,-4.464163650698899782e-02,-2.452875939178359929e-02,-2.632783471735180084e-02,9.887559882847110626e-02,9.419640341958869512e-02,7.072992627467229731e-02,-2.592261998182820038e-03,-2.139368094035999993e-02,7.206516329203029904e-03 --2.004470878288880029e-02,-4.464163650698899782e-02,-5.470749746044879791e-02,-5.387080026724189868e-02,-6.623874415566440021e-02,-5.736745208654490252e-02,1.182372140927919965e-02,-3.949338287409189657e-02,-7.408887149153539631e-02,-5.219804415301099697e-03 -2.354575262934580082e-02,-4.464163650698899782e-02,-3.638469220447349689e-02,6.750727943574620551e-05,1.182945896190920002e-03,3.469819567957759671e-02,-4.340084565202689815e-02,3.430885887772629900e-02,-3.324878724762579674e-02,6.105390622205419948e-02 -3.807590643342410180e-02,5.068011873981870252e-02,1.642809941569069870e-02,2.187235499495579841e-02,3.970962592582259754e-02,4.503209491863210262e-02,-4.340084565202689815e-02,7.120997975363539678e-02,4.976865992074899769e-02,1.549073015887240078e-02 --7.816532399920170238e-02,5.068011873981870252e-02,7.786338762690199478e-02,5.285819123858220142e-02,7.823630595545419397e-02,6.444729954958319795e-02,2.655027262562750096e-02,-2.592261998182820038e-03,4.067226371449769728e-02,-9.361911330135799444e-03 -9.015598825267629943e-03,5.068011873981870252e-02,-3.961812842611620034e-02,2.875809638242839833e-02,3.833367306762140020e-02,7.352860494147960002e-02,-7.285394808472339667e-02,1.081111006295440019e-01,1.556684454070180086e-02,-4.664087356364819692e-02 -1.750521923228520000e-03,5.068011873981870252e-02,1.103903904628619932e-02,-1.944209332987930153e-02,-1.670444126042380101e-02,-3.819065120534880214e-03,-4.708248345611389801e-02,3.430885887772629900e-02,2.405258322689299982e-02,2.377494398854190089e-02 --7.816532399920170238e-02,-4.464163650698899782e-02,-4.069594049999709917e-02,-8.141376581713200000e-02,-1.006375656106929944e-01,-1.127947298232920004e-01,2.286863482154040048e-02,-7.639450375000099436e-02,-2.028874775162960165e-02,-5.078298047848289754e-02 -3.081082953138499989e-02,5.068011873981870252e-02,-3.422906805671169922e-02,4.367720260718979675e-02,5.759701308243719842e-02,6.883137801463659611e-02,-3.235593223976569732e-02,5.755656502954899917e-02,3.546193866076970125e-02,8.590654771106250032e-02 --3.457486258696700065e-02,5.068011873981870252e-02,5.649978676881649634e-03,-5.670610554934250001e-03,-7.311850844667000526e-02,-6.269097593696699999e-02,-6.584467611156170040e-03,-3.949338287409189657e-02,-4.542095777704099890e-02,3.205915781821130212e-02 -4.897352178648269744e-02,5.068011873981870252e-02,8.864150836571099701e-02,8.728689817594480205e-02,3.558176735121919981e-02,2.154596028441720101e-02,-2.499265663159149983e-02,3.430885887772629900e-02,6.604820616309839409e-02,1.314697237742440128e-01 --4.183993948900609910e-02,-4.464163650698899782e-02,-3.315125598283080038e-02,-2.288496402361559975e-02,4.658939021682820258e-02,4.158746183894729970e-02,5.600337505832399948e-02,-2.473293452372829840e-02,-2.595242443518940012e-02,-3.835665973397880263e-02 --9.147093429830140468e-03,-4.464163650698899782e-02,-5.686312160821060252e-02,-5.042792957350569760e-02,2.182223876920789951e-02,4.534524338042170144e-02,-2.867429443567860031e-02,3.430885887772629900e-02,-9.918957363154769225e-03,-1.764612515980519894e-02 -7.076875249260000666e-02,5.068011873981870252e-02,-3.099563183506899924e-02,2.187235499495579841e-02,-3.734373413344069942e-02,-4.703355284749029946e-02,3.391354823380159783e-02,-3.949338287409189657e-02,-1.495647502491130078e-02,-1.077697500466389974e-03 -9.015598825267629943e-03,-4.464163650698899782e-02,5.522933407540309841e-02,-5.670610554934250001e-03,5.759701308243719842e-02,4.471894645684260094e-02,-2.902829807069099918e-03,2.323852261495349888e-02,5.568354770267369691e-02,1.066170822852360034e-01 --2.730978568492789874e-02,-4.464163650698899782e-02,-6.009655782985329903e-02,-2.977070541108809906e-02,4.658939021682820258e-02,1.998021797546959896e-02,1.222728555318910032e-01,-3.949338287409189657e-02,-5.140053526058249722e-02,-9.361911330135799444e-03 -1.628067572730669890e-02,-4.464163650698899782e-02,1.338730381358059929e-03,8.100872220010799790e-03,5.310804470794310353e-03,1.089891258357309975e-02,3.023191042971450082e-02,-3.949338287409189657e-02,-4.542095777704099890e-02,3.205915781821130212e-02 --1.277963188084970010e-02,-4.464163650698899782e-02,-2.345094731790270046e-02,-4.009931749229690007e-02,-1.670444126042380101e-02,4.635943347782499856e-03,-1.762938102341739949e-02,-2.592261998182820038e-03,-3.845911230135379971e-02,-3.835665973397880263e-02 --5.637009329308430294e-02,-4.464163650698899782e-02,-7.410811479030500470e-02,-5.042792957350569760e-02,-2.496015840963049931e-02,-4.703355284749029946e-02,9.281975309919469896e-02,-7.639450375000099436e-02,-6.117659509433449883e-02,-4.664087356364819692e-02 -4.170844488444359899e-02,5.068011873981870252e-02,1.966153563733339868e-02,5.974393262605470073e-02,-5.696818394814720174e-03,-2.566471273376759888e-03,-2.867429443567860031e-02,-2.592261998182820038e-03,3.119299070280229930e-02,7.206516329203029904e-03 --5.514554978810590376e-03,5.068011873981870252e-02,-1.590626280073640167e-02,-6.764228304218700139e-02,4.934129593323050011e-02,7.916527725369119917e-02,-2.867429443567860031e-02,3.430885887772629900e-02,-1.811826730789670159e-02,4.448547856271539702e-02 -4.170844488444359899e-02,5.068011873981870252e-02,-1.590626280073640167e-02,1.728186074811709910e-02,-3.734373413344069942e-02,-1.383981589779990050e-02,-2.499265663159149983e-02,-1.107951979964190078e-02,-4.687948284421659950e-02,1.549073015887240078e-02 --4.547247794002570037e-02,-4.464163650698899782e-02,3.906215296718960200e-02,1.215130832538269907e-03,1.631842733640340160e-02,1.528299104862660025e-02,-2.867429443567860031e-02,2.655962349378539894e-02,4.452837402140529671e-02,-2.593033898947460017e-02 --4.547247794002570037e-02,-4.464163650698899782e-02,-7.303030271642410587e-02,-8.141376581713200000e-02,8.374011738825870577e-02,2.780892952020790065e-02,1.738157847891100005e-01,-3.949338287409189657e-02,-4.219859706946029777e-03,3.064409414368320182e-03 diff --git a/how-to-use-azureml/deployment/deploy-to-cloud/labels.csv b/how-to-use-azureml/deployment/deploy-to-cloud/labels.csv deleted file mode 100644 index d71f56bb..00000000 --- a/how-to-use-azureml/deployment/deploy-to-cloud/labels.csv +++ /dev/null @@ -1,442 +0,0 @@ -1.510000000000000000e+02 -7.500000000000000000e+01 -1.410000000000000000e+02 -2.060000000000000000e+02 -1.350000000000000000e+02 -9.700000000000000000e+01 -1.380000000000000000e+02 -6.300000000000000000e+01 -1.100000000000000000e+02 -3.100000000000000000e+02 -1.010000000000000000e+02 -6.900000000000000000e+01 -1.790000000000000000e+02 -1.850000000000000000e+02 -1.180000000000000000e+02 -1.710000000000000000e+02 -1.660000000000000000e+02 -1.440000000000000000e+02 -9.700000000000000000e+01 -1.680000000000000000e+02 -6.800000000000000000e+01 -4.900000000000000000e+01 -6.800000000000000000e+01 -2.450000000000000000e+02 -1.840000000000000000e+02 -2.020000000000000000e+02 -1.370000000000000000e+02 -8.500000000000000000e+01 -1.310000000000000000e+02 -2.830000000000000000e+02 -1.290000000000000000e+02 -5.900000000000000000e+01 -3.410000000000000000e+02 -8.700000000000000000e+01 -6.500000000000000000e+01 -1.020000000000000000e+02 -2.650000000000000000e+02 -2.760000000000000000e+02 -2.520000000000000000e+02 -9.000000000000000000e+01 -1.000000000000000000e+02 -5.500000000000000000e+01 -6.100000000000000000e+01 -9.200000000000000000e+01 -2.590000000000000000e+02 -5.300000000000000000e+01 -1.900000000000000000e+02 -1.420000000000000000e+02 -7.500000000000000000e+01 -1.420000000000000000e+02 -1.550000000000000000e+02 -2.250000000000000000e+02 -5.900000000000000000e+01 -1.040000000000000000e+02 -1.820000000000000000e+02 -1.280000000000000000e+02 -5.200000000000000000e+01 -3.700000000000000000e+01 -1.700000000000000000e+02 -1.700000000000000000e+02 -6.100000000000000000e+01 -1.440000000000000000e+02 -5.200000000000000000e+01 -1.280000000000000000e+02 -7.100000000000000000e+01 -1.630000000000000000e+02 -1.500000000000000000e+02 -9.700000000000000000e+01 -1.600000000000000000e+02 -1.780000000000000000e+02 -4.800000000000000000e+01 -2.700000000000000000e+02 -2.020000000000000000e+02 -1.110000000000000000e+02 -8.500000000000000000e+01 -4.200000000000000000e+01 -1.700000000000000000e+02 -2.000000000000000000e+02 -2.520000000000000000e+02 -1.130000000000000000e+02 -1.430000000000000000e+02 -5.100000000000000000e+01 -5.200000000000000000e+01 -2.100000000000000000e+02 -6.500000000000000000e+01 -1.410000000000000000e+02 -5.500000000000000000e+01 -1.340000000000000000e+02 -4.200000000000000000e+01 -1.110000000000000000e+02 -9.800000000000000000e+01 -1.640000000000000000e+02 -4.800000000000000000e+01 -9.600000000000000000e+01 -9.000000000000000000e+01 -1.620000000000000000e+02 -1.500000000000000000e+02 -2.790000000000000000e+02 -9.200000000000000000e+01 -8.300000000000000000e+01 -1.280000000000000000e+02 -1.020000000000000000e+02 -3.020000000000000000e+02 -1.980000000000000000e+02 -9.500000000000000000e+01 -5.300000000000000000e+01 -1.340000000000000000e+02 -1.440000000000000000e+02 -2.320000000000000000e+02 -8.100000000000000000e+01 -1.040000000000000000e+02 -5.900000000000000000e+01 -2.460000000000000000e+02 -2.970000000000000000e+02 -2.580000000000000000e+02 -2.290000000000000000e+02 -2.750000000000000000e+02 -2.810000000000000000e+02 -1.790000000000000000e+02 -2.000000000000000000e+02 -2.000000000000000000e+02 -1.730000000000000000e+02 -1.800000000000000000e+02 -8.400000000000000000e+01 -1.210000000000000000e+02 -1.610000000000000000e+02 -9.900000000000000000e+01 -1.090000000000000000e+02 -1.150000000000000000e+02 -2.680000000000000000e+02 -2.740000000000000000e+02 -1.580000000000000000e+02 -1.070000000000000000e+02 -8.300000000000000000e+01 -1.030000000000000000e+02 -2.720000000000000000e+02 -8.500000000000000000e+01 -2.800000000000000000e+02 -3.360000000000000000e+02 -2.810000000000000000e+02 -1.180000000000000000e+02 -3.170000000000000000e+02 -2.350000000000000000e+02 -6.000000000000000000e+01 -1.740000000000000000e+02 -2.590000000000000000e+02 -1.780000000000000000e+02 -1.280000000000000000e+02 -9.600000000000000000e+01 -1.260000000000000000e+02 -2.880000000000000000e+02 -8.800000000000000000e+01 -2.920000000000000000e+02 -7.100000000000000000e+01 -1.970000000000000000e+02 -1.860000000000000000e+02 -2.500000000000000000e+01 -8.400000000000000000e+01 -9.600000000000000000e+01 -1.950000000000000000e+02 -5.300000000000000000e+01 -2.170000000000000000e+02 -1.720000000000000000e+02 -1.310000000000000000e+02 -2.140000000000000000e+02 -5.900000000000000000e+01 -7.000000000000000000e+01 -2.200000000000000000e+02 -2.680000000000000000e+02 -1.520000000000000000e+02 -4.700000000000000000e+01 -7.400000000000000000e+01 -2.950000000000000000e+02 -1.010000000000000000e+02 -1.510000000000000000e+02 -1.270000000000000000e+02 -2.370000000000000000e+02 -2.250000000000000000e+02 -8.100000000000000000e+01 -1.510000000000000000e+02 -1.070000000000000000e+02 -6.400000000000000000e+01 -1.380000000000000000e+02 -1.850000000000000000e+02 -2.650000000000000000e+02 -1.010000000000000000e+02 -1.370000000000000000e+02 -1.430000000000000000e+02 -1.410000000000000000e+02 -7.900000000000000000e+01 -2.920000000000000000e+02 -1.780000000000000000e+02 -9.100000000000000000e+01 -1.160000000000000000e+02 -8.600000000000000000e+01 -1.220000000000000000e+02 -7.200000000000000000e+01 -1.290000000000000000e+02 -1.420000000000000000e+02 -9.000000000000000000e+01 -1.580000000000000000e+02 -3.900000000000000000e+01 -1.960000000000000000e+02 -2.220000000000000000e+02 -2.770000000000000000e+02 -9.900000000000000000e+01 -1.960000000000000000e+02 -2.020000000000000000e+02 -1.550000000000000000e+02 -7.700000000000000000e+01 -1.910000000000000000e+02 -7.000000000000000000e+01 -7.300000000000000000e+01 -4.900000000000000000e+01 -6.500000000000000000e+01 -2.630000000000000000e+02 -2.480000000000000000e+02 -2.960000000000000000e+02 -2.140000000000000000e+02 -1.850000000000000000e+02 -7.800000000000000000e+01 -9.300000000000000000e+01 -2.520000000000000000e+02 -1.500000000000000000e+02 -7.700000000000000000e+01 -2.080000000000000000e+02 -7.700000000000000000e+01 -1.080000000000000000e+02 -1.600000000000000000e+02 -5.300000000000000000e+01 -2.200000000000000000e+02 -1.540000000000000000e+02 -2.590000000000000000e+02 -9.000000000000000000e+01 -2.460000000000000000e+02 -1.240000000000000000e+02 -6.700000000000000000e+01 -7.200000000000000000e+01 -2.570000000000000000e+02 -2.620000000000000000e+02 -2.750000000000000000e+02 -1.770000000000000000e+02 -7.100000000000000000e+01 -4.700000000000000000e+01 -1.870000000000000000e+02 -1.250000000000000000e+02 -7.800000000000000000e+01 -5.100000000000000000e+01 -2.580000000000000000e+02 -2.150000000000000000e+02 -3.030000000000000000e+02 -2.430000000000000000e+02 -9.100000000000000000e+01 -1.500000000000000000e+02 -3.100000000000000000e+02 -1.530000000000000000e+02 -3.460000000000000000e+02 -6.300000000000000000e+01 -8.900000000000000000e+01 -5.000000000000000000e+01 -3.900000000000000000e+01 -1.030000000000000000e+02 -3.080000000000000000e+02 -1.160000000000000000e+02 -1.450000000000000000e+02 -7.400000000000000000e+01 -4.500000000000000000e+01 -1.150000000000000000e+02 -2.640000000000000000e+02 -8.700000000000000000e+01 -2.020000000000000000e+02 -1.270000000000000000e+02 -1.820000000000000000e+02 -2.410000000000000000e+02 -6.600000000000000000e+01 -9.400000000000000000e+01 -2.830000000000000000e+02 -6.400000000000000000e+01 -1.020000000000000000e+02 -2.000000000000000000e+02 -2.650000000000000000e+02 -9.400000000000000000e+01 -2.300000000000000000e+02 -1.810000000000000000e+02 -1.560000000000000000e+02 -2.330000000000000000e+02 -6.000000000000000000e+01 -2.190000000000000000e+02 -8.000000000000000000e+01 -6.800000000000000000e+01 -3.320000000000000000e+02 -2.480000000000000000e+02 -8.400000000000000000e+01 -2.000000000000000000e+02 -5.500000000000000000e+01 -8.500000000000000000e+01 -8.900000000000000000e+01 -3.100000000000000000e+01 -1.290000000000000000e+02 -8.300000000000000000e+01 -2.750000000000000000e+02 -6.500000000000000000e+01 -1.980000000000000000e+02 -2.360000000000000000e+02 -2.530000000000000000e+02 -1.240000000000000000e+02 -4.400000000000000000e+01 -1.720000000000000000e+02 -1.140000000000000000e+02 -1.420000000000000000e+02 -1.090000000000000000e+02 -1.800000000000000000e+02 -1.440000000000000000e+02 -1.630000000000000000e+02 -1.470000000000000000e+02 -9.700000000000000000e+01 -2.200000000000000000e+02 -1.900000000000000000e+02 -1.090000000000000000e+02 -1.910000000000000000e+02 -1.220000000000000000e+02 -2.300000000000000000e+02 -2.420000000000000000e+02 -2.480000000000000000e+02 -2.490000000000000000e+02 -1.920000000000000000e+02 -1.310000000000000000e+02 -2.370000000000000000e+02 -7.800000000000000000e+01 -1.350000000000000000e+02 -2.440000000000000000e+02 -1.990000000000000000e+02 -2.700000000000000000e+02 -1.640000000000000000e+02 -7.200000000000000000e+01 -9.600000000000000000e+01 -3.060000000000000000e+02 -9.100000000000000000e+01 -2.140000000000000000e+02 -9.500000000000000000e+01 -2.160000000000000000e+02 -2.630000000000000000e+02 -1.780000000000000000e+02 -1.130000000000000000e+02 -2.000000000000000000e+02 -1.390000000000000000e+02 -1.390000000000000000e+02 -8.800000000000000000e+01 -1.480000000000000000e+02 -8.800000000000000000e+01 -2.430000000000000000e+02 -7.100000000000000000e+01 -7.700000000000000000e+01 -1.090000000000000000e+02 -2.720000000000000000e+02 -6.000000000000000000e+01 -5.400000000000000000e+01 -2.210000000000000000e+02 -9.000000000000000000e+01 -3.110000000000000000e+02 -2.810000000000000000e+02 -1.820000000000000000e+02 -3.210000000000000000e+02 -5.800000000000000000e+01 -2.620000000000000000e+02 -2.060000000000000000e+02 -2.330000000000000000e+02 -2.420000000000000000e+02 -1.230000000000000000e+02 -1.670000000000000000e+02 -6.300000000000000000e+01 -1.970000000000000000e+02 -7.100000000000000000e+01 -1.680000000000000000e+02 -1.400000000000000000e+02 -2.170000000000000000e+02 -1.210000000000000000e+02 -2.350000000000000000e+02 -2.450000000000000000e+02 -4.000000000000000000e+01 -5.200000000000000000e+01 -1.040000000000000000e+02 -1.320000000000000000e+02 -8.800000000000000000e+01 -6.900000000000000000e+01 -2.190000000000000000e+02 -7.200000000000000000e+01 -2.010000000000000000e+02 -1.100000000000000000e+02 -5.100000000000000000e+01 -2.770000000000000000e+02 -6.300000000000000000e+01 -1.180000000000000000e+02 -6.900000000000000000e+01 -2.730000000000000000e+02 -2.580000000000000000e+02 -4.300000000000000000e+01 -1.980000000000000000e+02 -2.420000000000000000e+02 -2.320000000000000000e+02 -1.750000000000000000e+02 -9.300000000000000000e+01 -1.680000000000000000e+02 -2.750000000000000000e+02 -2.930000000000000000e+02 -2.810000000000000000e+02 -7.200000000000000000e+01 -1.400000000000000000e+02 -1.890000000000000000e+02 -1.810000000000000000e+02 -2.090000000000000000e+02 -1.360000000000000000e+02 -2.610000000000000000e+02 -1.130000000000000000e+02 -1.310000000000000000e+02 -1.740000000000000000e+02 -2.570000000000000000e+02 -5.500000000000000000e+01 -8.400000000000000000e+01 -4.200000000000000000e+01 -1.460000000000000000e+02 -2.120000000000000000e+02 -2.330000000000000000e+02 -9.100000000000000000e+01 -1.110000000000000000e+02 -1.520000000000000000e+02 -1.200000000000000000e+02 -6.700000000000000000e+01 -3.100000000000000000e+02 -9.400000000000000000e+01 -1.830000000000000000e+02 -6.600000000000000000e+01 -1.730000000000000000e+02 -7.200000000000000000e+01 -4.900000000000000000e+01 -6.400000000000000000e+01 -4.800000000000000000e+01 -1.780000000000000000e+02 -1.040000000000000000e+02 -1.320000000000000000e+02 -2.200000000000000000e+02 -5.700000000000000000e+01 diff --git a/how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.ipynb b/how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.ipynb index f26620b6..10380475 100644 --- a/how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.ipynb +++ b/how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.ipynb @@ -80,9 +80,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Register input and output datasets\n", + "## Create trained model\n", "\n", - "For this example, we have provided a small model (`sklearn_regression_model.pkl` in the notebook's directory) that was trained on scikit-learn's [diabetes dataset](https://scikit-learn.org/stable/datasets/index.html#diabetes-dataset). Here, you will register the data used to create this model in your workspace." + "For this example, we will train a small model on scikit-learn's [diabetes dataset](https://scikit-learn.org/stable/datasets/index.html#diabetes-dataset). " ] }, { @@ -91,9 +91,42 @@ "metadata": {}, "outputs": [], "source": [ + "import joblib\n", + "\n", + "from sklearn.datasets import load_diabetes\n", + "from sklearn.linear_model import Ridge\n", + "\n", + "\n", + "dataset_x, dataset_y = load_diabetes(return_X_y=True)\n", + "\n", + "model = Ridge().fit(dataset_x, dataset_y)\n", + "\n", + "joblib.dump(model, 'sklearn_regression_model.pkl')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Register input and output datasets\n", + "\n", + "Here, you will register the data used to create the model in your workspace." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", "from azureml.core import Dataset\n", "\n", "\n", + "np.savetxt('features.csv', dataset_x, delimiter=',')\n", + "np.savetxt('labels.csv', dataset_y, delimiter=',')\n", + "\n", "datastore = ws.get_default_datastore()\n", "datastore.upload_files(files=['./features.csv', './labels.csv'],\n", " target_path='sklearn_regression/',\n", @@ -125,6 +158,8 @@ }, "outputs": [], "source": [ + "import sklearn\n", + "\n", "from azureml.core import Model\n", "from azureml.core.resource_configuration import ResourceConfiguration\n", "\n", @@ -133,7 +168,7 @@ " model_name='my-sklearn-model', # Name of the registered model in your workspace.\n", " model_path='./sklearn_regression_model.pkl', # Local file to upload and register as a model.\n", " model_framework=Model.Framework.SCIKITLEARN, # Framework used to create the model.\n", - " model_framework_version='0.19.1', # Version of scikit-learn used to create the model.\n", + " model_framework_version=sklearn.__version__, # Version of scikit-learn used to create the model.\n", " sample_input_dataset=input_dataset,\n", " sample_output_dataset=output_dataset,\n", " resource_configuration=ResourceConfiguration(cpu=1, memory_in_gb=0.5),\n", @@ -174,19 +209,9 @@ "metadata": {}, "outputs": [], "source": [ - "from azureml.core import Webservice\n", - "from azureml.exceptions import WebserviceException\n", - "\n", - "\n", "service_name = 'my-sklearn-service'\n", "\n", - "# Remove any existing service under the same name.\n", - "try:\n", - " Webservice(ws, service_name).delete()\n", - "except WebserviceException:\n", - " pass\n", - "\n", - "service = Model.deploy(ws, service_name, [model])\n", + "service = Model.deploy(ws, service_name, [model], overwrite=True)\n", "service.wait_for_deployment(show_output=True)" ] }, @@ -207,10 +232,7 @@ "\n", "\n", "input_payload = json.dumps({\n", - " 'data': [\n", - " [ 0.03807591, 0.05068012, 0.06169621, 0.02187235, -0.0442235,\n", - " -0.03482076, -0.04340085, -0.00259226, 0.01990842, -0.01764613]\n", - " ],\n", + " 'data': dataset_x[0:2].tolist(),\n", " 'method': 'predict' # If you have a classification model, you can get probabilities by changing this to 'predict_proba'.\n", "})\n", "\n", @@ -262,7 +284,7 @@ " 'inference-schema[numpy-support]',\n", " 'joblib',\n", " 'numpy',\n", - " 'scikit-learn'\n", + " 'scikit-learn=={}'.format(sklearn.__version__)\n", "])" ] }, @@ -303,20 +325,12 @@ }, "outputs": [], "source": [ - "from azureml.core import Webservice\n", "from azureml.core.model import InferenceConfig\n", "from azureml.core.webservice import AciWebservice\n", - "from azureml.exceptions import WebserviceException\n", "\n", "\n", "service_name = 'my-custom-env-service'\n", "\n", - "# Remove any existing service under the same name.\n", - "try:\n", - " Webservice(ws, service_name).delete()\n", - "except WebserviceException:\n", - " pass\n", - "\n", "inference_config = InferenceConfig(entry_script='score.py', environment=environment)\n", "aci_config = AciWebservice.deploy_configuration(cpu_cores=1, memory_gb=1)\n", "\n", @@ -324,7 +338,8 @@ " name=service_name,\n", " models=[model],\n", " inference_config=inference_config,\n", - " deployment_config=aci_config)\n", + " deployment_config=aci_config,\n", + " overwrite=True)\n", "service.wait_for_deployment(show_output=True)" ] }, @@ -342,10 +357,7 @@ "outputs": [], "source": [ "input_payload = json.dumps({\n", - " 'data': [\n", - " [ 0.03807591, 0.05068012, 0.06169621, 0.02187235, -0.0442235,\n", - " -0.03482076, -0.04340085, -0.00259226, 0.01990842, -0.01764613]\n", - " ]\n", + " 'data': dataset_x[0:2].tolist()\n", "})\n", "\n", "output = service.run(input_payload)\n", @@ -471,7 +483,7 @@ " 'inference-schema[numpy-support]',\n", " 'joblib',\n", " 'numpy',\n", - " 'scikit-learn'\n", + " 'scikit-learn=={}'.format(sklearn.__version__)\n", "])\n", "inference_config = InferenceConfig(entry_script='score.py', environment=environment)\n", "# if cpu and memory_in_gb parameters are not provided\n", diff --git a/how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.yml b/how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.yml index ca6bae19..99efaf15 100644 --- a/how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.yml +++ b/how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.yml @@ -2,3 +2,5 @@ name: model-register-and-deploy dependencies: - pip: - azureml-sdk + - numpy + - scikit-learn diff --git a/how-to-use-azureml/deployment/deploy-to-cloud/sklearn_regression_model.pkl b/how-to-use-azureml/deployment/deploy-to-cloud/sklearn_regression_model.pkl deleted file mode 100644 index d10309b6..00000000 Binary files a/how-to-use-azureml/deployment/deploy-to-cloud/sklearn_regression_model.pkl and /dev/null differ diff --git a/how-to-use-azureml/deployment/deploy-to-local/myenv.yml b/how-to-use-azureml/deployment/deploy-to-local/myenv.yml deleted file mode 100644 index 095ca4c7..00000000 --- a/how-to-use-azureml/deployment/deploy-to-local/myenv.yml +++ /dev/null @@ -1,8 +0,0 @@ -name: project_environment -dependencies: - - python=3.6.2 - - pip: - - azureml-defaults - - scikit-learn==0.19.1 - - numpy - - inference-schema[numpy-support] diff --git a/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb b/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb index 8fb8a77c..5684e075 100644 --- a/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb +++ b/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb @@ -75,6 +75,33 @@ "print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep='\\n')" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create trained model\n", + "\n", + "For this example, we will train a small model on scikit-learn's [diabetes dataset](https://scikit-learn.org/stable/datasets/index.html#diabetes-dataset). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import joblib\n", + "\n", + "from sklearn.datasets import load_diabetes\n", + "from sklearn.linear_model import Ridge\n", + "\n", + "dataset_x, dataset_y = load_diabetes(return_X_y=True)\n", + "\n", + "sk_model = Ridge().fit(dataset_x, dataset_y)\n", + "\n", + "joblib.dump(sk_model, \"sklearn_regression_model.pkl\")" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -148,13 +175,10 @@ "outputs": [], "source": [ "%%writefile source_directory/x/y/score.py\n", - "import os\n", - "import pickle\n", + "import joblib\n", "import json\n", "import numpy as np\n", - "from sklearn.externals import joblib\n", - "from sklearn.linear_model import Ridge\n", - "from azureml.core.model import Model\n", + "import os\n", "\n", "from inference_schema.schema_decorators import input_schema, output_schema\n", "from inference_schema.parameter_types.numpy_parameter_type import NumpyParameterType\n", @@ -165,16 +189,17 @@ " # It holds the path to the directory that contains the deployed model (./azureml-models/$MODEL_NAME/$VERSION)\n", " # If there are multiple models, this value is the path to the directory containing all deployed models (./azureml-models)\n", " model_path = os.path.join(os.getenv('AZUREML_MODEL_DIR'), 'sklearn_regression_model.pkl')\n", - " # deserialize the model file back into a sklearn model\n", + " # Deserialize the model file back into a sklearn model.\n", " model = joblib.load(model_path)\n", + "\n", " global name\n", - " # note here, entire source directory on inference config gets added into image\n", - " # bellow is the example how you can use any extra files in image\n", + " # Note here, the entire source directory from inference config gets added into image.\n", + " # Below is an example of how you can use any extra files in image.\n", " with open('./source_directory/extradata.json') as json_file:\n", " data = json.load(json_file)\n", " name = data[\"people\"][0][\"name\"]\n", "\n", - "input_sample = np.array([[10,9,8,7,6,5,4,3,2,1]])\n", + "input_sample = np.array([[10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0]])\n", "output_sample = np.array([3726.995])\n", "\n", "@input_schema('data', NumpyParameterType(input_sample))\n", @@ -182,37 +207,13 @@ "def run(data):\n", " try:\n", " result = model.predict(data)\n", - " # you can return any datatype as long as it is JSON-serializable\n", + " # You can return any JSON-serializable object.\n", " return \"Hello \" + name + \" here is your result = \" + str(result)\n", " except Exception as e:\n", " error = str(e)\n", " return error" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Please note that you must indicate azureml-defaults with verion >= 1.0.45 as a pip dependency for your environemnt. This package contains the functionality needed to host the model as a web service." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%writefile source_directory/env/myenv.yml\n", - "name: project_environment\n", - "dependencies:\n", - " - python=3.6.2\n", - " - pip:\n", - " - azureml-defaults\n", - " - scikit-learn\n", - " - numpy\n", - " - inference-schema[numpy-support]" - ] - }, { "cell_type": "code", "execution_count": null, @@ -249,11 +250,16 @@ "metadata": {}, "outputs": [], "source": [ + "import sklearn\n", + "\n", "from azureml.core.environment import Environment\n", "from azureml.core.model import InferenceConfig\n", "\n", "\n", - "myenv = Environment.from_conda_specification(name='myenv', file_path='myenv.yml')\n", + "myenv = Environment('myenv')\n", + "myenv.python.conda_dependencies.add_pip_package(\"inference-schema[numpy-support]\")\n", + "myenv.python.conda_dependencies.add_pip_package(\"joblib\")\n", + "myenv.python.conda_dependencies.add_pip_package(\"scikit-learn=={}\".format(sklearn.__version__))\n", "\n", "# explicitly set base_image to None when setting base_dockerfile\n", "myenv.docker.base_image = None\n", @@ -262,7 +268,7 @@ "\n", "inference_config = InferenceConfig(source_directory=source_directory,\n", " entry_script=\"x/y/score.py\",\n", - " environment=myenv)\n" + " environment=myenv)" ] }, { @@ -352,15 +358,10 @@ "import json\n", "\n", "sample_input = json.dumps({\n", - " 'data': [\n", - " [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n", - " [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]\n", - " ]\n", + " 'data': dataset_x[0:2].tolist()\n", "})\n", "\n", - "sample_input = bytes(sample_input, encoding='utf-8')\n", - "\n", - "print(local_service.run(input_data=sample_input))" + "print(local_service.run(sample_input))" ] }, { @@ -379,12 +380,10 @@ "outputs": [], "source": [ "%%writefile source_directory/x/y/score.py\n", - "import os\n", - "import pickle\n", + "import joblib\n", "import json\n", "import numpy as np\n", - "from sklearn.externals import joblib\n", - "from sklearn.linear_model import Ridge\n", + "import os\n", "\n", "from inference_schema.schema_decorators import input_schema, output_schema\n", "from inference_schema.parameter_types.numpy_parameter_type import NumpyParameterType\n", @@ -395,17 +394,18 @@ " # It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)\n", " # For multiple models, it points to the folder containing all deployed models (./azureml-models)\n", " model_path = os.path.join(os.getenv('AZUREML_MODEL_DIR'), 'sklearn_regression_model.pkl')\n", - " # deserialize the model file back into a sklearn model\n", + " # Deserialize the model file back into a sklearn model.\n", " model = joblib.load(model_path)\n", + "\n", " global name, from_location\n", - " # note here, entire source directory on inference config gets added into image\n", - " # bellow is the example how you can use any extra files in image\n", + " # Note here, the entire source directory from inference config gets added into image.\n", + " # Below is an example of how you can use any extra files in image.\n", " with open('source_directory/extradata.json') as json_file: \n", " data = json.load(json_file)\n", " name = data[\"people\"][0][\"name\"]\n", " from_location = data[\"people\"][0][\"from\"]\n", "\n", - "input_sample = np.array([[10,9,8,7,6,5,4,3,2,1]])\n", + "input_sample = np.array([[10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0]])\n", "output_sample = np.array([3726.995])\n", "\n", "@input_schema('data', NumpyParameterType(input_sample))\n", @@ -413,8 +413,8 @@ "def run(data):\n", " try:\n", " result = model.predict(data)\n", - " # you can return any datatype as long as it is JSON-serializable\n", - " return \"Hello \" + name + \" from \" + from_location + \" here is your result = \" + str(result)\n", + " # You can return any JSON-serializable object.\n", + " return \"Hello \" + name + \" from \" + from_location + \" here is your result = \" + str(result)\n", " except Exception as e:\n", " error = str(e)\n", " return error" @@ -430,7 +430,7 @@ "print(\"--------------------------------------------------------------\")\n", "\n", "# After calling reload(), run() will return the updated message.\n", - "local_service.run(input_data=sample_input)" + "local_service.run(sample_input)" ] }, { diff --git a/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.yml b/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.yml new file mode 100644 index 00000000..48faca60 --- /dev/null +++ b/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.yml @@ -0,0 +1,5 @@ +name: register-model-deploy-local-advanced +dependencies: +- pip: + - azureml-sdk + - scikit-learn diff --git a/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb b/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb index 69a72c4b..0c216969 100644 --- a/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb +++ b/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb @@ -71,6 +71,33 @@ "print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep='\\n')" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create trained model\n", + "\n", + "For this example, we will train a small model on scikit-learn's [diabetes dataset](https://scikit-learn.org/stable/datasets/index.html#diabetes-dataset). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import joblib\n", + "\n", + "from sklearn.datasets import load_diabetes\n", + "from sklearn.linear_model import Ridge\n", + "\n", + "dataset_x, dataset_y = load_diabetes(return_X_y=True)\n", + "\n", + "sk_model = Ridge().fit(dataset_x, dataset_y)\n", + "\n", + "joblib.dump(sk_model, \"sklearn_regression_model.pkl\")" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -82,9 +109,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "You can add tags and descriptions to your models. we are using `sklearn_regression_model.pkl` file in the current directory as a model with the name `sklearn_regression_model` in the workspace.\n", + "Here we are registering the serialized file `sklearn_regression_model.pkl` in the current directory as a model with the name `sklearn_regression_model` in the workspace.\n", "\n", - "Using tags, you can track useful information such as the name and version of the machine learning library used to train the model, framework, category, target customer etc. Note that tags must be alphanumeric." + "You can add tags and descriptions to your models. Using tags, you can track useful information such as the name and version of the machine learning library used to train the model, framework, category, target customer etc. Note that tags must be alphanumeric." ] }, { @@ -119,11 +146,62 @@ "metadata": {}, "outputs": [], "source": [ - "from azureml.core.conda_dependencies import CondaDependencies\n", + "import sklearn\n", + "\n", "from azureml.core.environment import Environment\n", "\n", "environment = Environment(\"LocalDeploy\")\n", - "environment.python.conda_dependencies = CondaDependencies(\"myenv.yml\")" + "environment.python.conda_dependencies.add_pip_package(\"inference-schema[numpy-support]\")\n", + "environment.python.conda_dependencies.add_pip_package(\"joblib\")\n", + "environment.python.conda_dependencies.add_pip_package(\"scikit-learn=={}\".format(sklearn.__version__))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Provide the Scoring Script\n", + "\n", + "This Python script handles the model execution inside the service container. The `init()` method loads the model file, and `run(data)` is called for every input to the service." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile score.py\n", + "import joblib\n", + "import json\n", + "import numpy as np\n", + "import os\n", + "\n", + "from inference_schema.schema_decorators import input_schema, output_schema\n", + "from inference_schema.parameter_types.numpy_parameter_type import NumpyParameterType\n", + "\n", + "def init():\n", + " global model\n", + " # AZUREML_MODEL_DIR is an environment variable created during deployment.\n", + " # It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)\n", + " # For multiple models, it points to the folder containing all deployed models (./azureml-models)\n", + " model_path = os.path.join(os.getenv('AZUREML_MODEL_DIR'), 'sklearn_regression_model.pkl')\n", + " # Deserialize the model file back into a sklearn model.\n", + " model = joblib.load(model_path)\n", + "\n", + "input_sample = np.array([[10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0]])\n", + "output_sample = np.array([3726.995])\n", + "\n", + "@input_schema('data', NumpyParameterType(input_sample))\n", + "@output_schema(NumpyParameterType(output_sample))\n", + "def run(data):\n", + " try:\n", + " result = model.predict(data)\n", + " # You can return any JSON-serializable object.\n", + " return result.tolist()\n", + " except Exception as e:\n", + " error = str(e)\n", + " return error" ] }, { @@ -145,114 +223,6 @@ " environment=environment)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Model Profiling\n", - "\n", - "Profile your model to understand how much CPU and memory the service, created as a result of its deployment, will need. Profiling returns information such as CPU usage, memory usage, and response latency. It also provides a CPU and memory recommendation based on the resource usage. You can profile your model (or more precisely the service built based on your model) on any CPU and/or memory combination where 0.1 <= CPU <= 3.5 and 0.1GB <= memory <= 15GB. If you do not provide a CPU and/or memory requirement, we will test it on the default configuration of 3.5 CPU and 15GB memory.\n", - "\n", - "In order to profile your model you will need:\n", - "- a registered model\n", - "- an entry script\n", - "- an inference configuration\n", - "- a single column tabular dataset, where each row contains a string representing sample request data sent to the service.\n", - "\n", - "Please, note that profiling is a long running operation and can take up to 25 minutes depending on the size of the dataset.\n", - "\n", - "At this point we only support profiling of services that expect their request data to be a string, for example: string serialized json, text, string serialized image, etc. The content of each row of the dataset (string) will be put into the body of the HTTP request and sent to the service encapsulating the model for scoring.\n", - "\n", - "Below is an example of how you can construct an input dataset to profile a service which expects its incoming requests to contain serialized json. In this case we created a dataset based one hundred instances of the same request data. In real world scenarios however, we suggest that you use larger datasets with various inputs, especially if your model resource usage/behavior is input dependent." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import json\n", - "from azureml.core import Datastore\n", - "from azureml.core.dataset import Dataset\n", - "from azureml.data import dataset_type_definitions\n", - "\n", - "\n", - "# create a string that can be put in the body of the request\n", - "serialized_input_json = json.dumps({\n", - " 'data': [\n", - " [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n", - " [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]\n", - " ]\n", - "})\n", - "dataset_content = []\n", - "for i in range(100):\n", - " dataset_content.append(serialized_input_json)\n", - "dataset_content = '\\n'.join(dataset_content)\n", - "file_name = 'sample_request_data_diabetes.txt'\n", - "f = open(file_name, 'w')\n", - "f.write(dataset_content)\n", - "f.close()\n", - "\n", - "# upload the txt file created above to the Datastore and create a dataset from it\n", - "data_store = Datastore.get_default(ws)\n", - "data_store.upload_files(['./' + file_name], target_path='sample_request_data_diabetes')\n", - "datastore_path = [(data_store, 'sample_request_data_diabetes' +'/' + file_name)]\n", - "sample_request_data_diabetes = Dataset.Tabular.from_delimited_files(\n", - " datastore_path,\n", - " separator='\\n',\n", - " infer_column_types=True,\n", - " header=dataset_type_definitions.PromoteHeadersBehavior.NO_HEADERS)\n", - "sample_request_data_diabetes = sample_request_data_diabetes.register(workspace=ws,\n", - " name='sample_request_data_diabetes',\n", - " create_new_version=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that we have an input dataset we are ready to go ahead with profiling. In this case we are testing the previously introduced sklearn regression model on 1 CPU and 0.5 GB memory. The memory usage and recommendation presented in the result is measured in Gigabytes. The CPU usage and recommendation is measured in CPU cores." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from datetime import datetime\n", - "from azureml.core import Environment\n", - "from azureml.core.conda_dependencies import CondaDependencies\n", - "from azureml.core.model import Model, InferenceConfig\n", - "\n", - "\n", - "environment = Environment('my-sklearn-environment')\n", - "environment.python.conda_dependencies = CondaDependencies.create(pip_packages=[\n", - " 'azureml-defaults',\n", - " 'inference-schema[numpy-support]',\n", - " 'joblib',\n", - " 'numpy',\n", - " 'scikit-learn==0.19.1',\n", - " 'scipy'\n", - "])\n", - "inference_config = InferenceConfig(entry_script='score.py', environment=environment)\n", - "# if cpu and memory_in_gb parameters are not provided\n", - "# the model will be profiled on default configuration of\n", - "# 3.5CPU and 15GB memory\n", - "profile = Model.profile(ws,\n", - " 'profile-%s' % datetime.now().strftime('%m%d%Y-%H%M%S'),\n", - " [model],\n", - " inference_config,\n", - " input_dataset=sample_request_data_diabetes,\n", - " cpu=1.0,\n", - " memory_in_gb=0.5)\n", - "\n", - "# profiling is a long running operation and may take up to 25 min\n", - "profile.wait_for_completion(True)\n", - "details = profile.get_details()" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -339,15 +309,10 @@ "import json\n", "\n", "sample_input = json.dumps({\n", - " 'data': [\n", - " [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n", - " [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]\n", - " ]\n", + " 'data': dataset_x[0:2].tolist()\n", "})\n", "\n", - "sample_input = bytes(sample_input, encoding='utf-8')\n", - "\n", - "local_service.run(input_data=sample_input)" + "local_service.run(sample_input)" ] }, { @@ -366,12 +331,10 @@ "outputs": [], "source": [ "%%writefile score.py\n", - "import os\n", - "import pickle\n", + "import joblib\n", "import json\n", "import numpy as np\n", - "from sklearn.externals import joblib\n", - "from sklearn.linear_model import Ridge\n", + "import os\n", "\n", "from inference_schema.schema_decorators import input_schema, output_schema\n", "from inference_schema.parameter_types.numpy_parameter_type import NumpyParameterType\n", @@ -382,10 +345,10 @@ " # It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)\n", " # For multiple models, it points to the folder containing all deployed models (./azureml-models)\n", " model_path = os.path.join(os.getenv('AZUREML_MODEL_DIR'), 'sklearn_regression_model.pkl')\n", - " # deserialize the model file back into a sklearn model\n", + " # Deserialize the model file back into a sklearn model.\n", " model = joblib.load(model_path)\n", "\n", - "input_sample = np.array([[10,9,8,7,6,5,4,3,2,1]])\n", + "input_sample = np.array([[10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0]])\n", "output_sample = np.array([3726.995])\n", "\n", "@input_schema('data', NumpyParameterType(input_sample))\n", @@ -393,8 +356,8 @@ "def run(data):\n", " try:\n", " result = model.predict(data)\n", - " # you can return any datatype as long as it is JSON-serializable\n", - " return 'hello from updated score.py'\n", + " # You can return any JSON-serializable object.\n", + " return 'Hello from the updated score.py: ' + str(result.tolist())\n", " except Exception as e:\n", " error = str(e)\n", " return error" @@ -410,7 +373,7 @@ "print(\"--------------------------------------------------------------\")\n", "\n", "# After calling reload(), run() will return the updated message.\n", - "local_service.run(input_data=sample_input)" + "local_service.run(sample_input)" ] }, { diff --git a/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.yml b/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.yml new file mode 100644 index 00000000..d6220b47 --- /dev/null +++ b/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.yml @@ -0,0 +1,5 @@ +name: register-model-deploy-local +dependencies: +- pip: + - azureml-sdk + - scikit-learn diff --git a/how-to-use-azureml/deployment/deploy-to-local/score.py b/how-to-use-azureml/deployment/deploy-to-local/score.py deleted file mode 100644 index 26bda6ef..00000000 --- a/how-to-use-azureml/deployment/deploy-to-local/score.py +++ /dev/null @@ -1,35 +0,0 @@ -import os -import pickle -import json -import numpy as np -from sklearn.externals import joblib -from sklearn.linear_model import Ridge - -from inference_schema.schema_decorators import input_schema, output_schema -from inference_schema.parameter_types.numpy_parameter_type import NumpyParameterType - - -def init(): - global model - # AZUREML_MODEL_DIR is an environment variable created during deployment. - # It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION) - # For multiple models, it points to the folder containing all deployed models (./azureml-models) - model_path = os.path.join(os.getenv('AZUREML_MODEL_DIR'), 'sklearn_regression_model.pkl') - # deserialize the model file back into a sklearn model - model = joblib.load(model_path) - - -input_sample = np.array([[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]) -output_sample = np.array([3726.995]) - - -@input_schema('data', NumpyParameterType(input_sample)) -@output_schema(NumpyParameterType(output_sample)) -def run(data): - try: - result = model.predict(data) - # you can return any datatype as long as it is JSON-serializable - return result.tolist() - except Exception as e: - error = str(e) - return error diff --git a/how-to-use-azureml/deployment/deploy-to-local/sklearn_regression_model.pkl b/how-to-use-azureml/deployment/deploy-to-local/sklearn_regression_model.pkl deleted file mode 100644 index d10309b6..00000000 Binary files a/how-to-use-azureml/deployment/deploy-to-local/sklearn_regression_model.pkl and /dev/null differ diff --git a/how-to-use-azureml/machine-learning-pipelines/parallel-run/README.md b/how-to-use-azureml/machine-learning-pipelines/parallel-run/README.md index d795a262..8f3c03e5 100644 --- a/how-to-use-azureml/machine-learning-pipelines/parallel-run/README.md +++ b/how-to-use-azureml/machine-learning-pipelines/parallel-run/README.md @@ -120,6 +120,6 @@ pipeline_run.wait_for_completion(show_output=True) - [file-dataset-image-inference-mnist.ipynb](./file-dataset-image-inference-mnist.ipynb) demonstrates how to run batch inference on an MNIST dataset using FileDataset. - [tabular-dataset-inference-iris.ipynb](./tabular-dataset-inference-iris.ipynb) demonstrates how to run batch inference on an IRIS dataset using TabularDataset. -- [pipeline-style-transfer.ipynb](../pipeline-style-transfer/pipeline-style-transfer.ipynb) demonstrates using ParallelRunStep in multi-step pipeline and using output from one step as input to ParallelRunStep. +- [pipeline-style-transfer.ipynb](../pipeline-style-transfer/pipeline-style-transfer-parallel-run.ipynb) demonstrates using ParallelRunStep in multi-step pipeline and using output from one step as input to ParallelRunStep. ![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/machine-learning-pipelines/parallel-run/README.png) diff --git a/how-to-use-azureml/machine-learning-pipelines/parallel-run/tabular-dataset-inference-iris.ipynb b/how-to-use-azureml/machine-learning-pipelines/parallel-run/tabular-dataset-inference-iris.ipynb index 7e8c7f7b..ca30eb53 100644 --- a/how-to-use-azureml/machine-learning-pipelines/parallel-run/tabular-dataset-inference-iris.ipynb +++ b/how-to-use-azureml/machine-learning-pipelines/parallel-run/tabular-dataset-inference-iris.ipynb @@ -332,7 +332,7 @@ " append_row_file_name=\"iris_outputs.txt\",\n", " environment=predict_env,\n", " compute_target=compute_target, \n", - " node_count=3,\n", + " node_count=2,\n", " run_invocation_timeout=600\n", ")" ] diff --git a/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/mpi_scripts/neural_style.py b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/mpi_scripts/neural_style.py new file mode 100644 index 00000000..216cf25a --- /dev/null +++ b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/mpi_scripts/neural_style.py @@ -0,0 +1,185 @@ +# Original source: https://github.com/pytorch/examples/blob/master/fast_neural_style/neural_style/neural_style.py +import argparse +import os +import sys +import re + +from PIL import Image +import torch +from torchvision import transforms + + +def load_image(filename, size=None, scale=None): + img = Image.open(filename) + if size is not None: + img = img.resize((size, size), Image.ANTIALIAS) + elif scale is not None: + img = img.resize((int(img.size[0] / scale), int(img.size[1] / scale)), Image.ANTIALIAS) + return img + + +def save_image(filename, data): + img = data.clone().clamp(0, 255).numpy() + img = img.transpose(1, 2, 0).astype("uint8") + img = Image.fromarray(img) + img.save(filename) + + +class TransformerNet(torch.nn.Module): + def __init__(self): + super(TransformerNet, self).__init__() + # Initial convolution layers + self.conv1 = ConvLayer(3, 32, kernel_size=9, stride=1) + self.in1 = torch.nn.InstanceNorm2d(32, affine=True) + self.conv2 = ConvLayer(32, 64, kernel_size=3, stride=2) + self.in2 = torch.nn.InstanceNorm2d(64, affine=True) + self.conv3 = ConvLayer(64, 128, kernel_size=3, stride=2) + self.in3 = torch.nn.InstanceNorm2d(128, affine=True) + # Residual layers + self.res1 = ResidualBlock(128) + self.res2 = ResidualBlock(128) + self.res3 = ResidualBlock(128) + self.res4 = ResidualBlock(128) + self.res5 = ResidualBlock(128) + # Upsampling Layers + self.deconv1 = UpsampleConvLayer(128, 64, kernel_size=3, stride=1, upsample=2) + self.in4 = torch.nn.InstanceNorm2d(64, affine=True) + self.deconv2 = UpsampleConvLayer(64, 32, kernel_size=3, stride=1, upsample=2) + self.in5 = torch.nn.InstanceNorm2d(32, affine=True) + self.deconv3 = ConvLayer(32, 3, kernel_size=9, stride=1) + # Non-linearities + self.relu = torch.nn.ReLU() + + def forward(self, X): + y = self.relu(self.in1(self.conv1(X))) + y = self.relu(self.in2(self.conv2(y))) + y = self.relu(self.in3(self.conv3(y))) + y = self.res1(y) + y = self.res2(y) + y = self.res3(y) + y = self.res4(y) + y = self.res5(y) + y = self.relu(self.in4(self.deconv1(y))) + y = self.relu(self.in5(self.deconv2(y))) + y = self.deconv3(y) + return y + + +class ConvLayer(torch.nn.Module): + def __init__(self, in_channels, out_channels, kernel_size, stride): + super(ConvLayer, self).__init__() + reflection_padding = kernel_size // 2 + self.reflection_pad = torch.nn.ReflectionPad2d(reflection_padding) + self.conv2d = torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride) + + def forward(self, x): + out = self.reflection_pad(x) + out = self.conv2d(out) + return out + + +class ResidualBlock(torch.nn.Module): + """ResidualBlock + introduced in: https://arxiv.org/abs/1512.03385 + recommended architecture: http://torch.ch/blog/2016/02/04/resnets.html + """ + + def __init__(self, channels): + super(ResidualBlock, self).__init__() + self.conv1 = ConvLayer(channels, channels, kernel_size=3, stride=1) + self.in1 = torch.nn.InstanceNorm2d(channels, affine=True) + self.conv2 = ConvLayer(channels, channels, kernel_size=3, stride=1) + self.in2 = torch.nn.InstanceNorm2d(channels, affine=True) + self.relu = torch.nn.ReLU() + + def forward(self, x): + residual = x + out = self.relu(self.in1(self.conv1(x))) + out = self.in2(self.conv2(out)) + out = out + residual + return out + + +class UpsampleConvLayer(torch.nn.Module): + """UpsampleConvLayer + Upsamples the input and then does a convolution. This method gives better results + compared to ConvTranspose2d. + ref: http://distill.pub/2016/deconv-checkerboard/ + """ + + def __init__(self, in_channels, out_channels, kernel_size, stride, upsample=None): + super(UpsampleConvLayer, self).__init__() + self.upsample = upsample + if upsample: + self.upsample_layer = torch.nn.Upsample(mode='nearest', scale_factor=upsample) + reflection_padding = kernel_size // 2 + self.reflection_pad = torch.nn.ReflectionPad2d(reflection_padding) + self.conv2d = torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride) + + def forward(self, x): + x_in = x + if self.upsample: + x_in = self.upsample_layer(x_in) + out = self.reflection_pad(x_in) + out = self.conv2d(out) + return out + + +def stylize(args): + device = torch.device("cuda" if args.cuda else "cpu") + with torch.no_grad(): + style_model = TransformerNet() + state_dict = torch.load(os.path.join(args.model_dir, args.style + ".pth")) + # remove saved deprecated running_* keys in InstanceNorm from the checkpoint + for k in list(state_dict.keys()): + if re.search(r'in\d+\.running_(mean|var)$', k): + del state_dict[k] + style_model.load_state_dict(state_dict) + style_model.to(device) + + filenames = os.listdir(args.content_dir) + + for filename in filenames: + print("Processing {}".format(filename)) + full_path = os.path.join(args.content_dir, filename) + content_image = load_image(full_path, scale=args.content_scale) + content_transform = transforms.Compose([ + transforms.ToTensor(), + transforms.Lambda(lambda x: x.mul(255)) + ]) + content_image = content_transform(content_image) + content_image = content_image.unsqueeze(0).to(device) + + output = style_model(content_image).cpu() + + output_path = os.path.join(args.output_dir, filename) + save_image(output_path, output[0]) + + +def main(): + arg_parser = argparse.ArgumentParser(description="parser for fast-neural-style") + + arg_parser.add_argument("--content-scale", type=float, default=None, + help="factor for scaling down the content image") + arg_parser.add_argument("--model-dir", type=str, required=True, + help="saved model to be used for stylizing the image.") + arg_parser.add_argument("--cuda", type=int, required=True, + help="set it to 1 for running on GPU, 0 for CPU") + arg_parser.add_argument("--style", type=str, + help="style name") + + arg_parser.add_argument("--content-dir", type=str, required=True, + help="directory holding the images") + arg_parser.add_argument("--output-dir", type=str, required=True, + help="directory holding the output images") + args = arg_parser.parse_args() + + if args.cuda and not torch.cuda.is_available(): + print("ERROR: cuda is not available, try running on CPU") + sys.exit(1) + os.makedirs(args.output_dir, exist_ok=True) + stylize(args) + + +if __name__ == "__main__": + main() diff --git a/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/mpi_scripts/neural_style_mpi.py b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/mpi_scripts/neural_style_mpi.py new file mode 100644 index 00000000..d73f330a --- /dev/null +++ b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/mpi_scripts/neural_style_mpi.py @@ -0,0 +1,207 @@ +# Original source: https://github.com/pytorch/examples/blob/master/fast_neural_style/neural_style/neural_style.py +import argparse +import os +import sys +import re + +from PIL import Image +import torch +from torchvision import transforms + +from mpi4py import MPI + + +def load_image(filename, size=None, scale=None): + img = Image.open(filename) + if size is not None: + img = img.resize((size, size), Image.ANTIALIAS) + elif scale is not None: + img = img.resize((int(img.size[0] / scale), int(img.size[1] / scale)), Image.ANTIALIAS) + return img + + +def save_image(filename, data): + img = data.clone().clamp(0, 255).numpy() + img = img.transpose(1, 2, 0).astype("uint8") + img = Image.fromarray(img) + img.save(filename) + + +class TransformerNet(torch.nn.Module): + def __init__(self): + super(TransformerNet, self).__init__() + # Initial convolution layers + self.conv1 = ConvLayer(3, 32, kernel_size=9, stride=1) + self.in1 = torch.nn.InstanceNorm2d(32, affine=True) + self.conv2 = ConvLayer(32, 64, kernel_size=3, stride=2) + self.in2 = torch.nn.InstanceNorm2d(64, affine=True) + self.conv3 = ConvLayer(64, 128, kernel_size=3, stride=2) + self.in3 = torch.nn.InstanceNorm2d(128, affine=True) + # Residual layers + self.res1 = ResidualBlock(128) + self.res2 = ResidualBlock(128) + self.res3 = ResidualBlock(128) + self.res4 = ResidualBlock(128) + self.res5 = ResidualBlock(128) + # Upsampling Layers + self.deconv1 = UpsampleConvLayer(128, 64, kernel_size=3, stride=1, upsample=2) + self.in4 = torch.nn.InstanceNorm2d(64, affine=True) + self.deconv2 = UpsampleConvLayer(64, 32, kernel_size=3, stride=1, upsample=2) + self.in5 = torch.nn.InstanceNorm2d(32, affine=True) + self.deconv3 = ConvLayer(32, 3, kernel_size=9, stride=1) + # Non-linearities + self.relu = torch.nn.ReLU() + + def forward(self, X): + y = self.relu(self.in1(self.conv1(X))) + y = self.relu(self.in2(self.conv2(y))) + y = self.relu(self.in3(self.conv3(y))) + y = self.res1(y) + y = self.res2(y) + y = self.res3(y) + y = self.res4(y) + y = self.res5(y) + y = self.relu(self.in4(self.deconv1(y))) + y = self.relu(self.in5(self.deconv2(y))) + y = self.deconv3(y) + return y + + +class ConvLayer(torch.nn.Module): + def __init__(self, in_channels, out_channels, kernel_size, stride): + super(ConvLayer, self).__init__() + reflection_padding = kernel_size // 2 + self.reflection_pad = torch.nn.ReflectionPad2d(reflection_padding) + self.conv2d = torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride) + + def forward(self, x): + out = self.reflection_pad(x) + out = self.conv2d(out) + return out + + +class ResidualBlock(torch.nn.Module): + """ResidualBlock + introduced in: https://arxiv.org/abs/1512.03385 + recommended architecture: http://torch.ch/blog/2016/02/04/resnets.html + """ + + def __init__(self, channels): + super(ResidualBlock, self).__init__() + self.conv1 = ConvLayer(channels, channels, kernel_size=3, stride=1) + self.in1 = torch.nn.InstanceNorm2d(channels, affine=True) + self.conv2 = ConvLayer(channels, channels, kernel_size=3, stride=1) + self.in2 = torch.nn.InstanceNorm2d(channels, affine=True) + self.relu = torch.nn.ReLU() + + def forward(self, x): + residual = x + out = self.relu(self.in1(self.conv1(x))) + out = self.in2(self.conv2(out)) + out = out + residual + return out + + +class UpsampleConvLayer(torch.nn.Module): + """UpsampleConvLayer + Upsamples the input and then does a convolution. This method gives better results + compared to ConvTranspose2d. + ref: http://distill.pub/2016/deconv-checkerboard/ + """ + + def __init__(self, in_channels, out_channels, kernel_size, stride, upsample=None): + super(UpsampleConvLayer, self).__init__() + self.upsample = upsample + if upsample: + self.upsample_layer = torch.nn.Upsample(mode='nearest', scale_factor=upsample) + reflection_padding = kernel_size // 2 + self.reflection_pad = torch.nn.ReflectionPad2d(reflection_padding) + self.conv2d = torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride) + + def forward(self, x): + x_in = x + if self.upsample: + x_in = self.upsample_layer(x_in) + out = self.reflection_pad(x_in) + out = self.conv2d(out) + return out + + +def stylize(args, comm): + + rank = comm.Get_rank() + size = comm.Get_size() + + device = torch.device("cuda" if args.cuda else "cpu") + with torch.no_grad(): + style_model = TransformerNet() + state_dict = torch.load(os.path.join(args.model_dir, args.style + ".pth")) + # remove saved deprecated running_* keys in InstanceNorm from the checkpoint + for k in list(state_dict.keys()): + if re.search(r'in\d+\.running_(mean|var)$', k): + del state_dict[k] + style_model.load_state_dict(state_dict) + style_model.to(device) + + filenames = os.listdir(args.content_dir) + filenames = sorted(filenames) + partition_size = len(filenames) // size + partitioned_filenames = filenames[rank * partition_size: (rank + 1) * partition_size] + print("RANK {} - is processing {} images out of the total {}".format(rank, len(partitioned_filenames), + len(filenames))) + + output_paths = [] + for filename in partitioned_filenames: + # print("Processing {}".format(filename)) + full_path = os.path.join(args.content_dir, filename) + content_image = load_image(full_path, scale=args.content_scale) + content_transform = transforms.Compose([ + transforms.ToTensor(), + transforms.Lambda(lambda x: x.mul(255)) + ]) + content_image = content_transform(content_image) + content_image = content_image.unsqueeze(0).to(device) + + output = style_model(content_image).cpu() + + output_path = os.path.join(args.output_dir, filename) + save_image(output_path, output[0]) + + output_paths.append(output_path) + + print("RANK {} - number of pre-aggregated output files {}".format(rank, len(output_paths))) + + output_paths_list = comm.gather(output_paths, root=0) + + if rank == 0: + print("RANK {} - number of aggregated output files {}".format(rank, len(output_paths_list))) + print("RANK {} - end".format(rank)) + + +def main(): + arg_parser = argparse.ArgumentParser(description="parser for fast-neural-style") + + arg_parser.add_argument("--content-scale", type=float, default=None, + help="factor for scaling down the content image") + arg_parser.add_argument("--model-dir", type=str, required=True, + help="saved model to be used for stylizing the image.") + arg_parser.add_argument("--cuda", type=int, required=True, + help="set it to 1 for running on GPU, 0 for CPU") + arg_parser.add_argument("--style", type=str, help="style name") + arg_parser.add_argument("--content-dir", type=str, required=True, + help="directory holding the images") + arg_parser.add_argument("--output-dir", type=str, required=True, + help="directory holding the output images") + args = arg_parser.parse_args() + + comm = MPI.COMM_WORLD + + if args.cuda and not torch.cuda.is_available(): + print("ERROR: cuda is not available, try running on CPU") + sys.exit(1) + os.makedirs(args.output_dir, exist_ok=True) + stylize(args, comm) + + +if __name__ == "__main__": + main() diff --git a/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-mpi.ipynb b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-mpi.ipynb new file mode 100644 index 00000000..b7fc97b6 --- /dev/null +++ b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-mpi.ipynb @@ -0,0 +1,728 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright (c) Microsoft Corporation. All rights reserved.\n", + "\n", + "Licensed under the MIT License." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-mpi.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Neural style transfer on video\n", + "Using modified code from `pytorch`'s neural style [example](https://pytorch.org/tutorials/advanced/neural_style_tutorial.html), we show how to setup a pipeline for doing style transfer on video. The pipeline has following steps:\n", + "1. Split a video into images\n", + "2. Run neural style on each image using one of the provided models (from `pytorch` pretrained models for this example).\n", + "3. Stitch the image back into a video." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, make sure you go through the configuration Notebook located at https://github.com/Azure/MachineLearningNotebooks first if you haven't. This sets you up with a working config file that has information on your workspace, subscription id, etc. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize Workspace\n", + "\n", + "Initialize a workspace object from persisted configuration." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from azureml.core import Workspace, Experiment\n", + "\n", + "ws = Workspace.from_config()\n", + "print('Workspace name: ' + ws.name, \n", + " 'Azure region: ' + ws.location, \n", + " 'Subscription id: ' + ws.subscription_id, \n", + " 'Resource group: ' + ws.resource_group, sep = '\\n')\n", + "\n", + "scripts_folder = \"mpi_scripts\"\n", + "\n", + "if not os.path.isdir(scripts_folder):\n", + " os.mkdir(scripts_folder)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import AmlCompute, ComputeTarget\n", + "from azureml.core.datastore import Datastore\n", + "from azureml.data.data_reference import DataReference\n", + "from azureml.pipeline.core import Pipeline, PipelineData\n", + "from azureml.pipeline.steps import PythonScriptStep, MpiStep\n", + "from azureml.core.runconfig import CondaDependencies, RunConfiguration\n", + "from azureml.core.compute_target import ComputeTargetException" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Create or use existing compute" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# AmlCompute\n", + "cpu_cluster_name = \"cpu-cluster\"\n", + "try:\n", + " cpu_cluster = AmlCompute(ws, cpu_cluster_name)\n", + " print(\"found existing cluster.\")\n", + "except ComputeTargetException:\n", + " print(\"creating new cluster\")\n", + " provisioning_config = AmlCompute.provisioning_configuration(vm_size = \"STANDARD_D2_v2\",\n", + " max_nodes = 1)\n", + "\n", + " # create the cluster\n", + " cpu_cluster = ComputeTarget.create(ws, cpu_cluster_name, provisioning_config)\n", + " cpu_cluster.wait_for_completion(show_output=True)\n", + " \n", + "# AmlCompute\n", + "gpu_cluster_name = \"gpu-cluster\"\n", + "try:\n", + " gpu_cluster = AmlCompute(ws, gpu_cluster_name)\n", + " print(\"found existing cluster.\")\n", + "except ComputeTargetException:\n", + " print(\"creating new cluster\")\n", + " provisioning_config = AmlCompute.provisioning_configuration(vm_size = \"STANDARD_NC6\",\n", + " max_nodes = 3)\n", + "\n", + " # create the cluster\n", + " gpu_cluster = ComputeTarget.create(ws, gpu_cluster_name, provisioning_config)\n", + " gpu_cluster.wait_for_completion(show_output=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Python Scripts\n", + "We use an edited version of `neural_style_mpi.py` (original is [here](https://github.com/pytorch/examples/blob/master/fast_neural_style/neural_style/neural_style.py)). Scripts to split and stitch the video are thin wrappers to calls to `ffmpeg`. These scripts are also located in the \"scripts_folder\".\n", + "\n", + "We install `ffmpeg` through conda dependencies." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile $scripts_folder/process_video.py\n", + "import argparse\n", + "import glob\n", + "import os\n", + "import subprocess\n", + "\n", + "parser = argparse.ArgumentParser(description=\"Process input video\")\n", + "parser.add_argument('--input_video', required=True)\n", + "parser.add_argument('--output_audio', required=True)\n", + "parser.add_argument('--output_images', required=True)\n", + "\n", + "args = parser.parse_args()\n", + "\n", + "os.makedirs(args.output_audio, exist_ok=True)\n", + "os.makedirs(args.output_images, exist_ok=True)\n", + "\n", + "subprocess.run(\"ffmpeg -i {} {}/video.aac\"\n", + " .format(args.input_video, args.output_audio),\n", + " shell=True, check=True\n", + " )\n", + "\n", + "subprocess.run(\"ffmpeg -i {} {}/%05d_video.jpg -hide_banner\"\n", + " .format(args.input_video, args.output_images),\n", + " shell=True, check=True\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile $scripts_folder/stitch_video.py\n", + "import argparse\n", + "import os\n", + "import subprocess\n", + "\n", + "parser = argparse.ArgumentParser(description=\"Process input video\")\n", + "parser.add_argument('--images_dir', required=True)\n", + "parser.add_argument('--input_audio', required=True)\n", + "parser.add_argument('--output_dir', required=True)\n", + "\n", + "args = parser.parse_args()\n", + "\n", + "os.makedirs(args.output_dir, exist_ok=True)\n", + "\n", + "subprocess.run(\"ffmpeg -framerate 30 -i {}/%05d_video.jpg -c:v libx264 -profile:v high -crf 20 -pix_fmt yuv420p \"\n", + " \"-y {}/video_without_audio.mp4\"\n", + " .format(args.images_dir, args.output_dir),\n", + " shell=True, check=True\n", + " )\n", + "\n", + "subprocess.run(\"ffmpeg -i {}/video_without_audio.mp4 -i {}/video.aac -map 0:0 -map 1:0 -vcodec \"\n", + " \"copy -acodec copy -y {}/video_with_audio.mp4\"\n", + " .format(args.output_dir, args.input_audio, args.output_dir),\n", + " shell=True, check=True\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The sample video **organutan.mp4** is stored at a publicly shared datastore. We are registering the datastore below. If you want to take a look at the original video, click here. (https://pipelinedata.blob.core.windows.net/sample-videos/orangutan.mp4)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# datastore for input video\n", + "account_name = \"pipelinedata\"\n", + "video_ds = Datastore.register_azure_blob_container(ws, \"videos\", \"sample-videos\",\n", + " account_name=account_name, overwrite=True)\n", + "\n", + "# datastore for models\n", + "models_ds = Datastore.register_azure_blob_container(ws, \"models\", \"styletransfer\", \n", + " account_name=\"pipelinedata\", \n", + " overwrite=True)\n", + " \n", + "# downloaded models from https://pytorch.org/tutorials/advanced/neural_style_tutorial.html are kept here\n", + "models_dir = DataReference(data_reference_name=\"models\", datastore=models_ds, \n", + " path_on_datastore=\"saved_models\", mode=\"download\")\n", + "\n", + "# the default blob store attached to a workspace\n", + "default_datastore = ws.get_default_datastore()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sample video" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "video_name=os.getenv(\"STYLE_TRANSFER_VIDEO_NAME\", \"orangutan.mp4\") \n", + "orangutan_video = DataReference(datastore=video_ds,\n", + " data_reference_name=\"video\",\n", + " path_on_datastore=video_name, mode=\"download\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cd = CondaDependencies()\n", + "\n", + "cd.add_channel(\"conda-forge\")\n", + "cd.add_conda_package(\"ffmpeg\")\n", + "\n", + "cd.add_channel(\"pytorch\")\n", + "cd.add_conda_package(\"pytorch\")\n", + "cd.add_conda_package(\"torchvision\")\n", + "\n", + "# Runconfig\n", + "amlcompute_run_config = RunConfiguration(conda_dependencies=cd)\n", + "amlcompute_run_config.environment.docker.enabled = True\n", + "amlcompute_run_config.environment.docker.base_image = \"pytorch/pytorch\"\n", + "amlcompute_run_config.environment.spark.precache_packages = False" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ffmpeg_audio = PipelineData(name=\"ffmpeg_audio\", datastore=default_datastore)\n", + "ffmpeg_images = PipelineData(name=\"ffmpeg_images\", datastore=default_datastore)\n", + "processed_images = PipelineData(name=\"processed_images\", datastore=default_datastore)\n", + "output_video = PipelineData(name=\"output_video\", datastore=default_datastore)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Define tweakable parameters to pipeline\n", + "These parameters can be changed when the pipeline is published and rerun from a REST call" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.pipeline.core.graph import PipelineParameter\n", + "# create a parameter for style (one of \"candy\", \"mosaic\", \"rain_princess\", \"udnie\") to transfer the images to\n", + "style_param = PipelineParameter(name=\"style\", default_value=\"mosaic\")\n", + "# create a parameter for the number of nodes to use in step no. 2 (style transfer)\n", + "nodecount_param = PipelineParameter(name=\"nodecount\", default_value=1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "split_video_step = PythonScriptStep(\n", + " name=\"split video\",\n", + " script_name=\"process_video.py\",\n", + " arguments=[\"--input_video\", orangutan_video,\n", + " \"--output_audio\", ffmpeg_audio,\n", + " \"--output_images\", ffmpeg_images,\n", + " ],\n", + " compute_target=cpu_cluster,\n", + " inputs=[orangutan_video],\n", + " outputs=[ffmpeg_images, ffmpeg_audio],\n", + " runconfig=amlcompute_run_config,\n", + " source_directory=scripts_folder\n", + ")\n", + "\n", + "# create a MPI step for distributing style transfer step across multiple nodes in AmlCompute \n", + "# using 'nodecount_param' PipelineParameter\n", + "distributed_style_transfer_step = MpiStep(\n", + " name=\"mpi style transfer\",\n", + " script_name=\"neural_style_mpi.py\",\n", + " arguments=[\"--content-dir\", ffmpeg_images,\n", + " \"--output-dir\", processed_images,\n", + " \"--model-dir\", models_dir,\n", + " \"--style\", style_param,\n", + " \"--cuda\", 1\n", + " ],\n", + " compute_target=gpu_cluster,\n", + " node_count=nodecount_param, \n", + " process_count_per_node=1,\n", + " inputs=[models_dir, ffmpeg_images],\n", + " outputs=[processed_images],\n", + " pip_packages=[\"mpi4py\", \"torch\", \"torchvision\"],\n", + " use_gpu=True,\n", + " source_directory=scripts_folder\n", + ")\n", + "\n", + "stitch_video_step = PythonScriptStep(\n", + " name=\"stitch\",\n", + " script_name=\"stitch_video.py\",\n", + " arguments=[\"--images_dir\", processed_images, \n", + " \"--input_audio\", ffmpeg_audio, \n", + " \"--output_dir\", output_video],\n", + " compute_target=cpu_cluster,\n", + " inputs=[processed_images, ffmpeg_audio],\n", + " outputs=[output_video],\n", + " runconfig=amlcompute_run_config,\n", + " source_directory=scripts_folder\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Run the pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pipeline = Pipeline(workspace=ws, steps=[stitch_video_step])\n", + "# submit the pipeline and provide values for the PipelineParameters used in the pipeline\n", + "pipeline_run = Experiment(ws, 'style_transfer').submit(pipeline, pipeline_parameters={\"style\": \"mosaic\", \"nodecount\": 3})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Monitor using widget" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.widgets import RunDetails\n", + "RunDetails(pipeline_run).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Downloads the video in `output_video` folder" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Download output video" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def download_video(run, target_dir=None):\n", + " stitch_run = run.find_step_run(\"stitch\")[0]\n", + " port_data = stitch_run.get_output_data(\"output_video\")\n", + " port_data.download(target_dir, show_progress=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pipeline_run.wait_for_completion()\n", + "download_video(pipeline_run, \"output_video_mosaic\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Publish pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "published_pipeline = pipeline_run.publish_pipeline(\n", + " name=\"batch score style transfer\", description=\"style transfer\", version=\"1.0\")\n", + "\n", + "published_pipeline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Get published pipeline\n", + "\n", + "You can get the published pipeline using **pipeline id**.\n", + "\n", + "To get all the published pipelines for a given workspace(ws): \n", + "```css\n", + "all_pub_pipelines = PublishedPipeline.get_all(ws)\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.pipeline.core import PublishedPipeline\n", + "\n", + "pipeline_id = published_pipeline.id # use your published pipeline id\n", + "published_pipeline = PublishedPipeline.get(ws, pipeline_id)\n", + "\n", + "published_pipeline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Re-run pipeline through REST calls for other styles" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Get AAD token\n", + "[This notebook](https://aka.ms/pl-restep-auth) shows how to authenticate to AML workspace." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.authentication import InteractiveLoginAuthentication\n", + "import requests\n", + "\n", + "auth = InteractiveLoginAuthentication()\n", + "aad_token = auth.get_authentication_header()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Get endpoint URL" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "rest_endpoint = published_pipeline.endpoint" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Send request and monitor" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the pipeline using PipelineParameter values style='candy' and nodecount=2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.post(rest_endpoint, \n", + " headers=aad_token,\n", + " json={\"ExperimentName\": \"style_transfer\",\n", + " \"ParameterAssignments\": {\"style\": \"candy\", \"nodecount\": 2}})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " response.raise_for_status()\n", + "except Exception: \n", + " raise Exception('Received bad response from the endpoint: {}\\n'\n", + " 'Response Code: {}\\n'\n", + " 'Headers: {}\\n'\n", + " 'Content: {}'.format(rest_endpoint, response.status_code, response.headers, response.content))\n", + "\n", + "run_id = response.json().get('Id')\n", + "print('Submitted pipeline run: ', run_id)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.pipeline.core.run import PipelineRun\n", + "published_pipeline_run_candy = PipelineRun(ws.experiments[\"style_transfer\"], run_id)\n", + "RunDetails(published_pipeline_run_candy).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the pipeline using PipelineParameter values style='rain_princess' and nodecount=3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.post(rest_endpoint, \n", + " headers=aad_token,\n", + " json={\"ExperimentName\": \"style_transfer\",\n", + " \"ParameterAssignments\": {\"style\": \"rain_princess\", \"nodecount\": 3}})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " response.raise_for_status()\n", + "except Exception: \n", + " raise Exception('Received bad response from the endpoint: {}\\n'\n", + " 'Response Code: {}\\n'\n", + " 'Headers: {}\\n'\n", + " 'Content: {}'.format(rest_endpoint, response.status_code, response.headers, response.content))\n", + "\n", + "run_id = response.json().get('Id')\n", + "print('Submitted pipeline run: ', run_id)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "published_pipeline_run_rain = PipelineRun(ws.experiments[\"style_transfer\"], run_id)\n", + "RunDetails(published_pipeline_run_rain).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the pipeline using PipelineParameter values style='udnie' and nodecount=4" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.post(rest_endpoint, \n", + " headers=aad_token,\n", + " json={\"ExperimentName\": \"style_transfer\",\n", + " \"ParameterAssignments\": {\"style\": \"udnie\", \"nodecount\": 3}})\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " response.raise_for_status()\n", + "except Exception: \n", + " raise Exception('Received bad response from the endpoint: {}\\n'\n", + " 'Response Code: {}\\n'\n", + " 'Headers: {}\\n'\n", + " 'Content: {}'.format(rest_endpoint, response.status_code, response.headers, response.content))\n", + "\n", + "run_id = response.json().get('Id')\n", + "print('Submitted pipeline run: ', run_id)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "published_pipeline_run_udnie = PipelineRun(ws.experiments[\"style_transfer\"], run_id)\n", + "RunDetails(published_pipeline_run_udnie).show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Download output from re-run" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "published_pipeline_run_candy.wait_for_completion()\n", + "published_pipeline_run_rain.wait_for_completion()\n", + "published_pipeline_run_udnie.wait_for_completion()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "download_video(published_pipeline_run_candy, target_dir=\"output_video_candy\")\n", + "download_video(published_pipeline_run_rain, target_dir=\"output_video_rain_princess\")\n", + "download_video(published_pipeline_run_udnie, target_dir=\"output_video_udnie\")" + ] + } + ], + "metadata": { + "authors": [ + { + "name": "balapv mabables" + } + ], + "kernelspec": { + "display_name": "Python 3.6", + "language": "python", + "name": "python36" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer.yml b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-mpi.yml similarity index 74% rename from how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer.yml rename to how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-mpi.yml index 77330241..147d0ce1 100644 --- a/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer.yml +++ b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-mpi.yml @@ -1,4 +1,4 @@ -name: pipeline-style-transfer +name: pipeline-style-transfer-mpi dependencies: - pip: - azureml-sdk diff --git a/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer.ipynb b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-parallel-run.ipynb similarity index 99% rename from how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer.ipynb rename to how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-parallel-run.ipynb index d713baef..567ccad9 100644 --- a/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer.ipynb +++ b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-parallel-run.ipynb @@ -13,7 +13,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer.png)" + "![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-parallel-run.png)" ] }, { diff --git a/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-parallel-run.yml b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-parallel-run.yml new file mode 100644 index 00000000..a7671a43 --- /dev/null +++ b/how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-parallel-run.yml @@ -0,0 +1,7 @@ +name: pipeline-style-transfer-parallel-run +dependencies: +- pip: + - azureml-sdk + - azureml-pipeline-steps + - azureml-widgets + - requests diff --git a/how-to-use-azureml/reinforcement-learning/cartpole-on-compute-instance/cartpole_ci.ipynb b/how-to-use-azureml/reinforcement-learning/cartpole-on-compute-instance/cartpole_ci.ipynb index 8b3c5ae4..1ca0c7fa 100644 --- a/how-to-use-azureml/reinforcement-learning/cartpole-on-compute-instance/cartpole_ci.ipynb +++ b/how-to-use-azureml/reinforcement-learning/cartpole-on-compute-instance/cartpole_ci.ipynb @@ -86,7 +86,7 @@ "outputs": [], "source": [ "import azureml.core\n", - "print(\"Azure Machine Learning SDK Version: \", azureml.core.VERSION)" + "print(\"Azure Machine Learning SDK Version:\", azureml.core.VERSION)" ] }, { @@ -128,24 +128,12 @@ "source": [ "import os.path\n", "\n", - "\n", "# Get information about the currently running compute instance (notebook VM), like its name and prefix.\n", "def load_nbvm():\n", " if not os.path.isfile(\"/mnt/azmnt/.nbvm\"):\n", " return None\n", - " with open(\"/mnt/azmnt/.nbvm\", 'r') as file:\n", - " return {key:value for (key, value) in [line.strip().split('=') for line in file]}\n", - "\n", - "\n", - "# Get information about the capabilities of an azureml.core.compute.AmlCompute target\n", - "# In particular how much RAM + GPU + HDD it has.\n", - "def get_compute_size(self, workspace):\n", - " for size in self.supported_vmsizes(workspace):\n", - " if(size['name'].upper() == self.vm_size):\n", - " return size\n", - "\n", - "azureml.core.compute.ComputeTarget.size = get_compute_size\n", - "del(get_compute_size)" + " with open(\"/mnt/azmnt/.nbvm\", 'r') as nbvm_file:\n", + " return {key:value for (key, value) in line.strip().split('=') for line in nbvm_file}\n" ] }, { @@ -161,7 +149,7 @@ "metadata": {}, "outputs": [], "source": [ - "from azureml.core.compute import ComputeTarget, ComputeInstance\n", + "from azureml.core.compute import ComputeInstance\n", "from azureml.core.compute_target import ComputeTargetException\n", "\n", "# Load current compute instance info\n", @@ -188,9 +176,7 @@ "compute_target = ws.compute_targets[instance_name]\n", "\n", "print(\"Compute target status:\")\n", - "print(compute_target.get_status().serialize())\n", - "print(\"Compute target size:\")\n", - "print(compute_target.size(ws))" + "print(compute_target.get_status().serialize())\n" ] }, { @@ -525,7 +511,6 @@ "outputs": [], "source": [ "# Find checkpoints and last checkpoint number\n", - "from os import path\n", "checkpoint_files = [\n", " os.path.basename(file) for file in training_artifacts_ds.to_path() \\\n", " if os.path.basename(file).startswith('checkpoint-') and \\\n", @@ -629,8 +614,6 @@ "metadata": {}, "outputs": [], "source": [ - "from azureml.widgets import RunDetails\n", - "\n", "RunDetails(rollout_run).show()" ] }, diff --git a/how-to-use-azureml/reinforcement-learning/cartpole-on-compute-instance/cartpole_ci.yml b/how-to-use-azureml/reinforcement-learning/cartpole-on-compute-instance/cartpole_ci.yml index 8692756c..c5a2ed39 100644 --- a/how-to-use-azureml/reinforcement-learning/cartpole-on-compute-instance/cartpole_ci.yml +++ b/how-to-use-azureml/reinforcement-learning/cartpole-on-compute-instance/cartpole_ci.yml @@ -4,4 +4,3 @@ dependencies: - azureml-sdk - azureml-contrib-reinforcementlearning - azureml-widgets - - azureml-dataprep diff --git a/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/cartpole_sc.ipynb b/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/cartpole_sc.ipynb index 8a7c4fbc..c0410f91 100644 --- a/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/cartpole_sc.ipynb +++ b/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/cartpole_sc.ipynb @@ -87,7 +87,7 @@ "source": [ "import azureml.core\n", "\n", - "print(\"Azure Machine Learning SDK Version: \", azureml.core.VERSION)" + "print(\"Azure Machine Learning SDK Version:\", azureml.core.VERSION)" ] }, { @@ -248,9 +248,8 @@ " # Ray's video capture support requires to run everything under a headless display driver called (xvfb).\n", " # There are two parts to this:\n", " # 1. Use a custom docker file with proper instructions to install xvfb, ffmpeg, python-opengl\n", - " # and other dependencies. \n", - " # TODO: Add these instructions to default reinforcement learning base image and drop this docker file.\n", - " \n", + " # and other dependencies.\n", + " \n", " with open(\"files/docker/Dockerfile\", \"r\") as f:\n", " dockerfile=f.read()\n", "\n", @@ -546,11 +545,7 @@ "metadata": {}, "outputs": [], "source": [ - "import os\n", - "from os import path\n", - "from distutils import dir_util\n", "import shutil\n", - "from files.utils import misc\n", "\n", "# A helper function to download (copy) movies from a dataset to local directory\n", "def download_movies(artifacts_ds, movies, destination):\n", @@ -560,7 +555,7 @@ " dir_util.mkpath(destination)\n", " \n", " try:\n", - " pirnt(\"Trying mounting dataset and copying movies.\")\n", + " print(\"Trying mounting dataset and copying movies.\")\n", " # Note: We assume movie paths start with '\\'\n", " mount_context = artifacts_ds.mount()\n", " mount_context.start()\n", @@ -568,11 +563,11 @@ " print('Copying {} ...'.format(movie))\n", " shutil.copy2(path.join(mount_context.mount_point, movie[1:]), destination)\n", " mount_context.stop()\n", - " except:\n", - " print(\"Mounting failed! Going with dataset download.\")\n", - " for i, file in enumerate(artifacts_ds.to_path()):\n", - " if file in movies:\n", - " print('Downloading {} ...'.format(file))\n", + " except OSError as e:\n", + " print(\"Mounting failed with error '{0}'. Going with dataset download.\".format(e))\n", + " for i, artifact in enumerate(artifacts_ds.to_path()):\n", + " if artifact in movies:\n", + " print('Downloading {} ...'.format(artifact))\n", " artifacts_ds.skip(i).take(1).download(target_path=destination, overwrite=True)\n", " \n", " print('Downloading movies completed!')\n", @@ -581,14 +576,14 @@ "# A helper function to find movies in a directory\n", "def find_movies(movie_path):\n", " print(\"Looking in path:\", movie_path)\n", - " mp4_files = []\n", + " mp4_movies = []\n", " for root, _, files in os.walk(movie_path):\n", - " for file in files:\n", - " if file.endswith('.mp4'):\n", - " mp4_files.append(path.join(root, file))\n", - " print('Found {} movies'.format(len(mp4_files)))\n", + " for name in files:\n", + " if name.endswith('.mp4'):\n", + " mp4_movies.append(path.join(root, name))\n", + " print('Found {} movies'.format(len(mp4_movies)))\n", "\n", - " return mp4_files\n", + " return mp4_movies\n", "\n", "\n", "# A helper function to display a movie\n", @@ -718,7 +713,6 @@ "outputs": [], "source": [ "# Find checkpoints and last checkpoint number\n", - "from os import path\n", "checkpoint_files = [\n", " os.path.basename(file) for file in training_artifacts_ds.to_path() \\\n", " if os.path.basename(file).startswith('checkpoint-') and \\\n", @@ -783,7 +777,6 @@ "# 1. Use a custom docker file with proper instructions to install xvfb, ffmpeg, python-opengl\n", "# and other dependencies.\n", "# Note: Even when the rendering is off pyhton-opengl is needed.\n", - "# TODO: Add these instructions to default reinforcement learning base image and drop this docker file.\n", "\n", "with open(\"files/docker/Dockerfile\", \"r\") as f:\n", " dockerfile=f.read()\n", @@ -852,8 +845,6 @@ "metadata": {}, "outputs": [], "source": [ - "from azureml.widgets import RunDetails\n", - "\n", "RunDetails(rollout_run).show()" ] }, @@ -890,8 +881,6 @@ "metadata": {}, "outputs": [], "source": [ - "from azureml.core import Dataset\n", - "\n", "# Get a handle to child run\n", "child_runs = list(rollout_run.get_children())\n", "print('Number of child runs:', len(child_runs))\n", @@ -971,9 +960,6 @@ "metadata": {}, "outputs": [], "source": [ - "from os import path\n", - "from distutils import dir_util\n", - "\n", "# To archive the created experiment:\n", "#exp.archive()\n", "\n", diff --git a/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/cartpole_sc.yml b/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/cartpole_sc.yml index 70e1bc55..48d5edfa 100644 --- a/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/cartpole_sc.yml +++ b/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/cartpole_sc.yml @@ -4,4 +4,3 @@ dependencies: - azureml-sdk - azureml-contrib-reinforcementlearning - azureml-widgets - - azureml-dataprep diff --git a/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/files/utils/callbacks.py b/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/files/utils/callbacks.py index f34a4e8c..022aadf0 100644 --- a/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/files/utils/callbacks.py +++ b/how-to-use-azureml/reinforcement-learning/cartpole-on-single-compute/files/utils/callbacks.py @@ -15,3 +15,9 @@ def on_train_result(info): run.log( name='episodes_total', value=info["result"]["episodes_total"]) + run.log( + name='perf_cpu_percent', + value=info["result"]["perf"]["cpu_util_percent"]) + run.log( + name='perf_memory_percent', + value=info["result"]["perf"]["ram_util_percent"]) diff --git a/how-to-use-azureml/track-and-monitor-experiments/logging-api/logging-api.ipynb b/how-to-use-azureml/track-and-monitor-experiments/logging-api/logging-api.ipynb index 29b9bc1a..fa5cbc8e 100644 --- a/how-to-use-azureml/track-and-monitor-experiments/logging-api/logging-api.ipynb +++ b/how-to-use-azureml/track-and-monitor-experiments/logging-api/logging-api.ipynb @@ -100,7 +100,7 @@ "\n", "# Check core SDK version number\n", "\n", - "print(\"This notebook was created using SDK version 1.8.0, you are currently running version\", azureml.core.VERSION)" + "print(\"This notebook was created using SDK version 1.9.0, you are currently running version\", azureml.core.VERSION)" ] }, { diff --git a/how-to-use-azureml/track-and-monitor-experiments/using-mlflow/train-remote/train-remote.ipynb b/how-to-use-azureml/track-and-monitor-experiments/using-mlflow/train-remote/train-remote.ipynb index 2e07bc8a..0287a070 100644 --- a/how-to-use-azureml/track-and-monitor-experiments/using-mlflow/train-remote/train-remote.ipynb +++ b/how-to-use-azureml/track-and-monitor-experiments/using-mlflow/train-remote/train-remote.ipynb @@ -92,7 +92,7 @@ " # Specify the configuration for the new cluster\n", " compute_config = AmlCompute.provisioning_configuration(vm_size=\"STANDARD_D2_V2\",\n", " min_nodes=0,\n", - " max_nodes=1)\n", + " max_nodes=2)\n", "\n", " # Create the cluster with the specified name and configuration\n", " cpu_cluster = ComputeTarget.create(ws, cpu_cluster_name, compute_config)\n", diff --git a/how-to-use-azureml/training/train-on-amlcompute/train.py b/how-to-use-azureml/training/train-on-amlcompute/train.py index a1b89b75..70d87001 100644 --- a/how-to-use-azureml/training/train-on-amlcompute/train.py +++ b/how-to-use-azureml/training/train-on-amlcompute/train.py @@ -6,9 +6,14 @@ from sklearn.linear_model import Ridge from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split from azureml.core.run import Run -from sklearn.externals import joblib import os import numpy as np +from sklearn import __version__ as sklearnver +from packaging.version import Version +if Version(sklearnver) < Version("0.23.0"): + from sklearn.externals import joblib +else: + import joblib os.makedirs('./outputs', exist_ok=True) diff --git a/how-to-use-azureml/training/train-on-computeinstance/train.py b/how-to-use-azureml/training/train-on-computeinstance/train.py index a1b89b75..7c0bc68f 100644 --- a/how-to-use-azureml/training/train-on-computeinstance/train.py +++ b/how-to-use-azureml/training/train-on-computeinstance/train.py @@ -6,9 +6,13 @@ from sklearn.linear_model import Ridge from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split from azureml.core.run import Run -from sklearn.externals import joblib import os import numpy as np +# sklearn.externals.joblib is removed in 0.23 +try: + from sklearn.externals import joblib +except ImportError: + import joblib os.makedirs('./outputs', exist_ok=True) diff --git a/how-to-use-azureml/training/train-on-local/train.py b/how-to-use-azureml/training/train-on-local/train.py index 42da5a6d..d816128a 100644 --- a/how-to-use-azureml/training/train-on-local/train.py +++ b/how-to-use-azureml/training/train-on-local/train.py @@ -6,10 +6,14 @@ from sklearn.linear_model import Ridge from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split from azureml.core.run import Run -from sklearn.externals import joblib import os import numpy as np import mylib +# sklearn.externals.joblib is removed in 0.23 +try: + from sklearn.externals import joblib +except ImportError: + import joblib os.makedirs('./outputs', exist_ok=True) diff --git a/how-to-use-azureml/training/train-on-remote-vm/train.py b/how-to-use-azureml/training/train-on-remote-vm/train.py index 3c1983c7..c5cd0e18 100644 --- a/how-to-use-azureml/training/train-on-remote-vm/train.py +++ b/how-to-use-azureml/training/train-on-remote-vm/train.py @@ -8,10 +8,15 @@ from sklearn.linear_model import Ridge from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split from azureml.core.run import Run -from sklearn.externals import joblib import numpy as np +# sklearn.externals.joblib is removed in 0.23 +try: + from sklearn.externals import joblib +except ImportError: + import joblib + os.makedirs('./outputs', exist_ok=True) parser = argparse.ArgumentParser() parser.add_argument('--data-folder', type=str, diff --git a/how-to-use-azureml/training/train-within-notebook/score.py b/how-to-use-azureml/training/train-within-notebook/score.py index b0b95ac4..5a06bdeb 100644 --- a/how-to-use-azureml/training/train-within-notebook/score.py +++ b/how-to-use-azureml/training/train-within-notebook/score.py @@ -1,9 +1,13 @@ import pickle import json import numpy as np -from sklearn.externals import joblib from sklearn.linear_model import Ridge from azureml.core.model import Model +# sklearn.externals.joblib is removed in 0.23 +try: + from sklearn.externals import joblib +except ImportError: + import joblib def init(): diff --git a/index.md b/index.md index 9b8e6fd6..e958c273 100644 --- a/index.md +++ b/index.md @@ -124,6 +124,7 @@ Machine Learning notebook samples and encourage efficient retrieval of topics an | [train-explain-model-on-amlcompute-and-deploy](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/explain-model/azure-integration/scoring-time/train-explain-model-on-amlcompute-and-deploy.ipynb) | | | | | | | | [training_notebook](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/notebook_runner/training_notebook.ipynb) | | | | | | | | [nyc-taxi-data-regression-model-building](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/nyc-taxi-data-regression-model-building/nyc-taxi-data-regression-model-building.ipynb) | | | | | | | +| [pipeline-style-transfer-mpi](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/machine-learning-pipelines/pipeline-style-transfer/pipeline-style-transfer-mpi.ipynb) | | | | | | | | [authentication-in-azureml](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/manage-azureml-service/authentication-in-azureml/authentication-in-azureml.ipynb) | | | | | | | | [pong_rllib](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/reinforcement-learning/atari-on-distributed-compute/pong_rllib.ipynb) | | | | | | | | [cartpole_ci](https://github.com/Azure/MachineLearningNotebooks/blob/master//how-to-use-azureml/reinforcement-learning/cartpole-on-compute-instance/cartpole_ci.ipynb) | | | | | | | diff --git a/setup-environment/configuration.ipynb b/setup-environment/configuration.ipynb index d58c4419..dadf83c1 100644 --- a/setup-environment/configuration.ipynb +++ b/setup-environment/configuration.ipynb @@ -102,7 +102,7 @@ "source": [ "import azureml.core\n", "\n", - "print(\"This notebook was created using version 1.8.0 of the Azure ML SDK\")\n", + "print(\"This notebook was created using version 1.9.0 of the Azure ML SDK\")\n", "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" ] }, diff --git a/tutorials/machine-learning-pipelines-advanced/tutorial-pipeline-batch-scoring-classification.ipynb b/tutorials/machine-learning-pipelines-advanced/tutorial-pipeline-batch-scoring-classification.ipynb index 252e632d..65b56e0a 100644 --- a/tutorials/machine-learning-pipelines-advanced/tutorial-pipeline-batch-scoring-classification.ipynb +++ b/tutorials/machine-learning-pipelines-advanced/tutorial-pipeline-batch-scoring-classification.ipynb @@ -340,7 +340,7 @@ "* input and output data, and any custom parameters\n", "* reference to a script or SDK-logic to run during the step\n", "\n", - "There are multiple classes that inherit from the parent class [`PipelineStep`](https://docs.microsoft.com/python/api/azureml-pipeline-core/azureml.pipeline.core.builder.pipelinestep?view=azure-ml-py) to assist with building a step using certain frameworks and stacks. In this example, you use the [`ParallelRunStep`](https://docs.microsoft.com/en-us/python/api/azureml-contrib-pipeline-steps/azureml.contrib.pipeline.steps.parallelrunstep?view=azure-ml-py) class to define your step logic using a scoring script. \n", + "There are multiple classes that inherit from the parent class [`PipelineStep`](https://docs.microsoft.com/python/api/azureml-pipeline-steps/azureml.pipeline.steps.parallelrunstep?view=azure-ml-py) to assist with building a step using certain frameworks and stacks. In this example, you use the [`ParallelRunStep`](https://docs.microsoft.com/en-us/python/api/azureml-contrib-pipeline-steps/azureml.contrib.pipeline.steps.parallelrunstep?view=azure-ml-py) class to define your step logic using a scoring script. \n", "\n", "An object reference in the `outputs` array becomes available as an **input** for a subsequent pipeline step, for scenarios where there is more than one step." ] diff --git a/tutorials/regression-automl-nyc-taxi-data/regression-automated-ml.yml b/tutorials/regression-automl-nyc-taxi-data/regression-automated-ml.yml index f971e01d..ae7d8547 100644 --- a/tutorials/regression-automl-nyc-taxi-data/regression-automated-ml.yml +++ b/tutorials/regression-automl-nyc-taxi-data/regression-automated-ml.yml @@ -2,6 +2,4 @@ name: regression-automated-ml dependencies: - pip: - azureml-sdk - - azureml-train-automl - - azureml-widgets - azureml-opendatasets