diff --git a/samples/core/ai-platform/README.md b/samples/core/ai_platform/README.md similarity index 100% rename from samples/core/ai-platform/README.md rename to samples/core/ai_platform/README.md diff --git a/samples/core/ai-platform/Chicago Crime Pipeline.ipynb b/samples/core/ai_platform/ai_platform.ipynb similarity index 85% rename from samples/core/ai-platform/Chicago Crime Pipeline.ipynb rename to samples/core/ai_platform/ai_platform.ipynb index 9ad290b653a..6fde5b9d19f 100644 --- a/samples/core/ai-platform/Chicago Crime Pipeline.ipynb +++ b/samples/core/ai_platform/ai_platform.ipynb @@ -71,28 +71,41 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "tags": [ + "parameters" + ] + }, "outputs": [], "source": [ "# Required Parameters\n", - "PROJECT_ID = ''\n", - "GCS_WORKING_DIR = 'gs://' # No ending slash\n", - "\n", + "project_id = ''\n", + "output = 'gs://' # No ending slash\n", + "experiment_name = 'Chicago Crime Prediction'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ "# Optional Parameters\n", "REGION = 'us-central1'\n", "RUNTIME_VERSION = '1.13'\n", "PACKAGE_URIS=json.dumps(['gs://chicago-crime/chicago_crime_trainer-0.0.tar.gz'])\n", - "TRAINER_OUTPUT_GCS_PATH = GCS_WORKING_DIR + '/train/output/' + str(int(time.time())) + '/'\n", - "DATA_GCS_PATH = GCS_WORKING_DIR + '/reports.csv'\n", + "TRAINER_OUTPUT_GCS_PATH = output + '/train/output/' + str(int(time.time())) + '/'\n", + "DATA_GCS_PATH = output + '/reports.csv'\n", "PYTHON_MODULE = 'trainer.task'\n", "TRAINER_ARGS = json.dumps([\n", " '--data-file-url', DATA_GCS_PATH,\n", - " '--job-dir', GCS_WORKING_DIR\n", + " '--job-dir', output\n", "])\n", - "EXPERIMENT_NAME = 'Chicago Crime Prediction'\n", "PIPELINE_NAME = 'Chicago Crime Prediction'\n", "PIPELINE_FILENAME_PREFIX = 'chicago'\n", - "PIPELINE_DESCRIPTION = ''" + "PIPELINE_DESCRIPTION = ''\n", + "MODEL_NAME = 'chicago_pipeline_model' + str(int(time.time()))\n", + "MODEL_VERSION = 'chicago_pipeline_model_v1' + str(int(time.time()))" ] }, { @@ -191,6 +204,7 @@ " project_id,\n", " model_uri,\n", " model_id,\n", + " model_version,\n", " runtime_version):\n", " \n", " return mlengine_deploy_op(\n", @@ -222,8 +236,8 @@ "\n", "def pipeline(\n", " data_gcs_path=DATA_GCS_PATH,\n", - " gcs_working_dir=GCS_WORKING_DIR,\n", - " project_id=PROJECT_ID,\n", + " gcs_working_dir=output,\n", + " project_id=project_id,\n", " python_module=PYTHON_MODULE,\n", " region=REGION,\n", " runtime_version=RUNTIME_VERSION,\n", @@ -245,7 +259,8 @@ " \n", " deploy_task = deploy(project_id,\n", " train_task.outputs['job_dir'],\n", - " train_task.outputs['job_id'],\n", + " MODEL_NAME,\n", + " MODEL_VERSION,\n", " runtime_version) \n", " return True\n", "\n", @@ -266,11 +281,29 @@ "metadata": {}, "outputs": [], "source": [ - "kfp.Client().create_run_from_pipeline_func(pipeline, arguments={}, experiment_name=EXPERIMENT_NAME)" + "kfp.Client().create_run_from_pipeline_func(pipeline, arguments={}, experiment_name=experiment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Clean models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!gcloud ml-engine versions delete $MODEL_VERSION --model $MODEL_NAME\n", + "!gcloud ml-engine models delete $MODEL_NAME" ] } ], "metadata": { + "celltoolbar": "Tags", "kernelspec": { "display_name": "Python 3", "language": "python", @@ -286,7 +319,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.6.4" }, "pycharm": { "stem_cell": { diff --git a/samples/core/ai-platform/images/chicago_crime_pipeline.png b/samples/core/ai_platform/images/chicago_crime_pipeline.png similarity index 100% rename from samples/core/ai-platform/images/chicago_crime_pipeline.png rename to samples/core/ai_platform/images/chicago_crime_pipeline.png diff --git a/samples/core/ai-platform/images/chicago_crime_predictions.png b/samples/core/ai_platform/images/chicago_crime_predictions.png similarity index 100% rename from samples/core/ai-platform/images/chicago_crime_predictions.png rename to samples/core/ai_platform/images/chicago_crime_predictions.png diff --git a/samples/core/ai-platform/local/Chicago Crime Research.ipynb b/samples/core/ai_platform/local/Chicago Crime Research.ipynb similarity index 100% rename from samples/core/ai-platform/local/Chicago Crime Research.ipynb rename to samples/core/ai_platform/local/Chicago Crime Research.ipynb diff --git a/samples/core/ai-platform/training/.gitignore b/samples/core/ai_platform/training/.gitignore similarity index 100% rename from samples/core/ai-platform/training/.gitignore rename to samples/core/ai_platform/training/.gitignore diff --git a/samples/core/ai-platform/training/.python-version b/samples/core/ai_platform/training/.python-version similarity index 100% rename from samples/core/ai-platform/training/.python-version rename to samples/core/ai_platform/training/.python-version diff --git a/samples/core/ai-platform/training/requirements.txt b/samples/core/ai_platform/training/requirements.txt similarity index 100% rename from samples/core/ai-platform/training/requirements.txt rename to samples/core/ai_platform/training/requirements.txt diff --git a/samples/core/ai-platform/training/setup.py b/samples/core/ai_platform/training/setup.py similarity index 100% rename from samples/core/ai-platform/training/setup.py rename to samples/core/ai_platform/training/setup.py diff --git a/samples/core/ai-platform/training/trainer/model.py b/samples/core/ai_platform/training/trainer/model.py similarity index 100% rename from samples/core/ai-platform/training/trainer/model.py rename to samples/core/ai_platform/training/trainer/model.py diff --git a/samples/core/ai-platform/training/trainer/task.py b/samples/core/ai_platform/training/trainer/task.py similarity index 100% rename from samples/core/ai-platform/training/trainer/task.py rename to samples/core/ai_platform/training/trainer/task.py diff --git a/samples/core/ai-platform/training/trainer/util.py b/samples/core/ai_platform/training/trainer/util.py similarity index 100% rename from samples/core/ai-platform/training/trainer/util.py rename to samples/core/ai_platform/training/trainer/util.py diff --git a/test/sample-test/configs/ai_platform.config.yaml b/test/sample-test/configs/ai_platform.config.yaml new file mode 100644 index 00000000000..13be31e190a --- /dev/null +++ b/test/sample-test/configs/ai_platform.config.yaml @@ -0,0 +1,19 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +test_name: ai_platform +notebook_params: + output: + project_id: ml-pipeline-test + experiment_name: ai_platform-test diff --git a/test/sample_test.yaml b/test/sample_test.yaml index aa69e62f0cc..1ba5bc595d9 100644 --- a/test/sample_test.yaml +++ b/test/sample_test.yaml @@ -86,6 +86,7 @@ spec: - loop_parameter - loop_static - resource_ops + - ai_platform - parameterized_tfx_oss # Build and push image - name: build-image-by-dockerfile