{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# **Amazon Lookout for Equipment** - Getting started\n", "*Part 5 - Scheduling regular inference calls*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Initialization\n", "---\n", "This repository is structured as follow:\n", "\n", "```sh\n", ". lookout-equipment-demo\n", "|\n", "├── data/\n", "| ├── interim # Temporary intermediate data\n", "| ├── processed # Finalized datasets\n", "| └── raw # Immutable original data\n", "|\n", "├── getting_started/\n", "| ├── 1_data_preparation.ipynb\n", "| ├── 2_dataset_creation.ipynb\n", "| ├── 3_model_training.ipynb\n", "| ├── 4_model_evaluation.ipynb\n", "| ├── 5_inference_scheduling.ipynb <<< THIS NOTEBOOK <<<\n", "| ├── 6_visualization_with_quicksight.ipynb\n", "| └── 7_cleanup.ipynb\n", "|\n", "└── utils/\n", " └── lookout_equipment_utils.py\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Notebook configuration update" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m" ] } ], "source": [ "!pip install --quiet --upgrade sagemaker lookoutequipment" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Imports" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import boto3\n", "import config\n", "import datetime\n", "import matplotlib.pyplot as plt\n", "import matplotlib.ticker as mtick\n", "import numpy as np\n", "import os\n", "import pandas as pd\n", "import pytz\n", "import sagemaker\n", "import sys\n", "import time\n", "\n", "from matplotlib.gridspec import GridSpec\n", "\n", "# SDK / toolbox for managing Lookout for Equipment API calls:\n", "import lookoutequipment as lookout" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### AWS Look & Feel definition for Matplotlib" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from matplotlib import font_manager\n", "\n", "# Load style sheet:\n", "plt.style.use('../utils/aws_matplotlib_template.py')\n", "\n", "# Get colors from custom AWS palette:\n", "prop_cycle = plt.rcParams['axes.prop_cycle']\n", "colors = prop_cycle.by_key()['color']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Parameters" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "TMP_DATA = os.path.join('..', 'data', 'interim', 'getting-started')\n", "PROCESSED_DATA = os.path.join('..', 'data', 'processed', 'getting-started')\n", "INFERENCE_DATA = os.path.join(PROCESSED_DATA, 'inference-data')\n", "TRAIN_DATA = os.path.join(PROCESSED_DATA, 'training-data', 'centrifugal-pump')\n", "\n", "os.makedirs(INFERENCE_DATA, exist_ok=True)\n", "os.makedirs(os.path.join(INFERENCE_DATA, 'input'), exist_ok=True)\n", "os.makedirs(os.path.join(INFERENCE_DATA, 'output'), exist_ok=True)\n", "\n", "ROLE_ARN = sagemaker.get_execution_role()\n", "REGION_NAME = boto3.session.Session().region_name\n", "BUCKET = config.BUCKET\n", "PREFIX = config.PREFIX_INFERENCE\n", "INFERENCE_SCHEDULER_NAME = config.INFERENCE_SCHEDULER_NAME\n", "MODEL_NAME = config.MODEL_NAME\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create an inference scheduler\n", "---\n", "While navigating to the model details part of the console, you will see that you have no inference scheduled yet:\n", "\n", "![Schedule Starting point](assets/schedule_start.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Scheduler configuration\n", "Let's create a new inference schedule: some parameters are mandatory, while others offer some added flexibility.\n", "\n", "#### Mandatory Parameters\n", "\n", "* Set `upload_frequency` at which the data will be uploaded for inference. Allowed values are `PT5M`, `PT10M`, `PT15M`, `PT30M` and `PT1H`.\n", " * This is both the frequency of the inference scheduler and how often data are uploaded to the source bucket.\n", " * **Note**: ***the upload frequency must be compatible with the sampling rate selected at training time.*** *For example, if a model was trained with a 30 minutes resampling, asking for 5 minutes won't work and you need to select either PT30M and PT1H for this parameter at inference time.*\n", "* Set `input_bucket` to the S3 bucket of your inference data\n", "* Set `input_prefix` to the S3 prefix of your inference data\n", "* Set `output_bucket` to the S3 bucket where you want inference results\n", "* Set `output_prefix` to the S3 prefix where you want inference results\n", "* Set `role_arn` to the role to be used to **read** data to infer on and **write** inference output" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Time zone parameter (optional)\n", "\n", "You can set `INPUT_TIMEZONE_OFFSET` to the following allowed values: `+00:00`, `+00:30`, `+01:00`, ... `+11:30`, `+12:00`, `-00:00`, `-00:30`, `-01:00`, ... `-11:30`, `-12:00`.\n", "\n", "This is the timezone the scheduler will use to find the input files to run inference for. A timezone's offset refers to how many hours the timezone is from Coordinated Universal Time (UTC).\n", "\n", "Let's take an example:\n", "* The current date April 5th, 2021 and time is 1pm UTC\n", "* You're in India, which is 5 hour 30 ahead of UTC and you set the `INPUT_TIMEZONE_OFFSET` to `+05:30`\n", "* If the scheduler wakes up at 1pm UTC, A filename called 20210405**1830**00 will be found (1pm + 5H30 = 6.30pm)\n", "\n", "Use the following cell to convert time zone identifier (`Europe/Paris`, `US/Central`...) to a time zone offset. You can build a timezone object by leveraging the World Timezone Definition **[available here](https://gist.github.com/heyalexej/8bf688fd67d7199be4a1682b3eec7568)** or by listing the available ones using this code snippet:\n", "```python\n", "import pytz\n", "for tz in pytz.all_timezones:\n", " print tz\n", "```\n", "If you want to use universal time, replace the timezone string below (`Asia/Calcutta`) by `UTC`:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'+00:00'" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "utc_timezone = pytz.timezone(\"UTC\")\n", "\n", "# current_timezone = pytz.timezone(\"Asia/Calcutta\")\n", "current_timezone = pytz.timezone(\"UTC\")\n", "tz_offset = datetime.datetime.now(current_timezone).strftime('%z')\n", "tz_offset = tz_offset[:3] + ':' + tz_offset[3:]\n", "tz_offset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Other optional parameters\n", "\n", "* Set `delay_offset` to the number of minutes you expect the data to be delayed to upload. It's a time buffer to upload data.\n", "* Set `timestamp_format`. The allowed values `EPOCH`, `yyyy-MM-dd-HH-mm-ss` or `yyyyMMddHHmmss`. This is the format of timestamp which is the suffix of the input data file name. This is used by Lookout Equipment to understand which files to run inference on (so that you don't need to remove previous files to let the scheduler finds which one to run on).\n", "* Set `component_delimiter`. The allowed values `-`, `_` or ` `. This is the delimiter character that is used to separate the component from the timestamp in the input filename." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create the inference scheduler\n", "The CreateInferenceScheduler API creates a scheduler. The following code prepares the configuration but does not create the scheduler just yet:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "scheduler = lookout.LookoutEquipmentScheduler(\n", " scheduler_name=INFERENCE_SCHEDULER_NAME,\n", " model_name=MODEL_NAME\n", ")\n", "\n", "scheduler_params = {\n", " 'input_bucket': BUCKET,\n", " 'input_prefix': f'{PREFIX}/input/',\n", " 'output_bucket': BUCKET,\n", " 'output_prefix': f'{PREFIX}/output/',\n", " 'role_arn': ROLE_ARN,\n", " 'upload_frequency': 'PT5M',\n", " 'delay_offset': None,\n", " 'timezone_offset': tz_offset,\n", " 'component_delimiter': '_',\n", " 'timestamp_format': 'yyyyMMddHHmmss'\n", "}\n", "\n", "scheduler.set_parameters(**scheduler_params)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prepare the inference data\n", "---\n", "Let's prepare and send some data in the S3 input location our scheduler will monitor: we are going to extract 10 sequences of 5 minutes each (5 minutes being the minimum scheduler frequency). We assume that data are sampled at a rate of one data point per minute meaning that each sequence will be a CSV with 5 rows (to match the scheduler frequency). We have set aside a file we can use for inference. We need to update the timestamps to match the current time and date and then split the file in individual datasets of 5 rows each." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# Load the original inference data:\n", "inference_fname = os.path.join(TMP_DATA, 'inference-data', 'inference.csv')\n", "inference_df = pd.read_csv(inference_fname)\n", "inference_df['Timestamp'] = pd.to_datetime(inference_df['Timestamp'])\n", "inference_df = inference_df.set_index('Timestamp')\n", "\n", "# How many sequences do we want to extract:\n", "num_sequences = 12\n", "\n", "# The scheduling frequency in minutes: this **MUST** match the\n", "# resampling rate used to train the model:\n", "frequency = 5\n", "start = inference_df.index.min()\n", "for i in range(num_sequences):\n", " end = start + datetime.timedelta(minutes=+frequency - 1)\n", " inference_input = inference_df.loc[start:end, :]\n", " start = start + datetime.timedelta(minutes=+frequency)\n", " \n", " # Rounding time to the previous X minutes \n", " # where X is the selected frequency:\n", " filename_tm = datetime.datetime.now(current_timezone)\n", " filename_tm = filename_tm - datetime.timedelta(\n", " minutes=filename_tm.minute % frequency,\n", " seconds=filename_tm.second,\n", " microseconds=filename_tm.microsecond\n", " )\n", " filename_tm = filename_tm + datetime.timedelta(minutes=+frequency * (i))\n", " current_timestamp = (filename_tm).strftime(format='%Y%m%d%H%M%S')\n", " \n", " # The timestamp inside the file are in UTC and are not linked to the current timezone:\n", " timestamp_tm = datetime.datetime.now(utc_timezone)\n", " timestamp_tm = timestamp_tm - datetime.timedelta(\n", " minutes=timestamp_tm.minute % frequency,\n", " seconds=timestamp_tm.second,\n", " microseconds=timestamp_tm.microsecond\n", " )\n", " timestamp_tm = timestamp_tm + datetime.timedelta(minutes=+frequency * (i))\n", " \n", " # We need to reset the index to match the time \n", " # at which the scheduler will run inference:\n", " new_index = pd.date_range(\n", " start=timestamp_tm,\n", " periods=inference_input.shape[0], \n", " freq='1min'\n", " )\n", " inference_input.index = new_index\n", " inference_input.index.name = 'Timestamp'\n", " inference_input = inference_input.reset_index()\n", " inference_input['Timestamp'] = inference_input['Timestamp'].dt.strftime('%Y-%m-%dT%H:%M:%S.%f')\n", " \n", " # Export this file in CSV format:\n", " scheduled_fname = os.path.join(INFERENCE_DATA, 'input', f'centrifugal-pump_{current_timestamp}.csv')\n", " inference_input.to_csv(scheduled_fname, index=None)\n", " \n", "# Upload the whole folder to S3, in the input location:\n", "!aws s3 cp --recursive --quiet $INFERENCE_DATA/input s3://$BUCKET/$PREFIX/input" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our S3 bucket is now in the following state: this emulates what you could expect if your industrial information system was sending a new sample of data every five minutes.\n", "\n", "Note how:\n", "* Every files are located in the same folder\n", "* Each file has the recorded timestamp in its name\n", "* The timestamps are rounding to the closest 5 minutes (as our scheduler is configured to wake up every 5 minutes)\n", "\n", "![Inference input](assets/schedule_inference_s3_data.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we've prepared the data, we can create the scheduler by running:\n", "\n", "```python\n", "create_scheduler_response = lookout_client.create_inference_scheduler({\n", " 'ClientToken': uuid.uuid4().hex\n", "})\n", "```\n", "\n", "The following method encapsulates the call to the [**CreateInferenceScheduler**](https://docs.aws.amazon.com/lookout-for-equipment/latest/ug/API_CreateInferenceScheduler.html) API:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "This scheduler already exists. Try changing its nameand retry or try to start it.\n" ] } ], "source": [ "create_scheduler_response = scheduler.create()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our scheduler is now running and its inference history is currently empty:\n", "\n", "![Scheduler created](assets/schedule_created.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get inference results\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### List inference executions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Let's now wait for 5-15 minutes to give some time to the scheduler to run its first inferences.** Once the wait is over, we can use the ListInferenceExecution API for our current inference scheduler. The only mandatory parameter is the scheduler name.\n", "\n", "You can also choose a time period for which you want to query inference executions for. If you don't specify it, then all executions for an inference scheduler will be listed. If you want to specify the time range, you can do this:\n", "\n", "```python\n", "START_TIME_FOR_INFERENCE_EXECUTIONS = datetime.datetime(2010,1,3,0,0,0)\n", "END_TIME_FOR_INFERENCE_EXECUTIONS = datetime.datetime(2010,1,5,0,0,0)\n", "```\n", "\n", "Which means the executions after `2010-01-03 00:00:00` and before `2010-01-05 00:00:00` will be listed.\n", "\n", "You can also choose to query for executions in particular status, the allowed status are `IN_PROGRESS`, `SUCCESS` and `FAILED`.\n", "\n", "The following cell use `scheduler.list_inference_executions()` as a wrapper around the [**ListInferenceExecutions**](https://docs.aws.amazon.com/lookout-for-equipment/latest/ug/API_ListInferenceExecutions.html) API:\n", "\n", "```python\n", " list_executions_response = lookout_client.list_inference_executions({\n", " \"MaxResults\": 50,\n", " \"InferenceSchedulerName\": INFERENCE_SCHEDULER_NAME,\n", " \"Status\": EXECUTION_STATUS,\n", " \"DataStartTimeAfter\": START_TIME_FOR_INFERENCE_EXECUTIONS,\n", " \"DataEndTimeBefore\": END_TIME_FOR_INFERENCE_EXECUTIONS\n", " })\n", "```" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "FIRST INFERENCE EXECUTED\n", "\n", "26 inference execution(s) found.\n", "Displaying the first three ones:\n" ] }, { "data": { "text/plain": [ "[{'ModelName': 'getting-started-pump-model',\n", " 'ModelArn': 'arn:aws:lookoutequipment:eu-west-1:038552646228:model/getting-started-pump-model/07a0f7e9-0fb1-42e8-94d8-b4cd92778ebb',\n", " 'InferenceSchedulerName': 'getting-started-pump-scheduler',\n", " 'InferenceSchedulerArn': 'arn:aws:lookoutequipment:eu-west-1:038552646228:inference-scheduler/getting-started-pump-scheduler/8098a92f-9049-44d6-9c68-aa5cd0c69559',\n", " 'ScheduledStartTime': datetime.datetime(2022, 5, 13, 12, 15, tzinfo=tzlocal()),\n", " 'DataStartTime': datetime.datetime(2022, 5, 13, 12, 10, tzinfo=tzlocal()),\n", " 'DataEndTime': datetime.datetime(2022, 5, 13, 12, 15, tzinfo=tzlocal()),\n", " 'DataInputConfiguration': {'S3InputConfiguration': {'Bucket': 'lookout-equipment-poc',\n", " 'Prefix': 'getting_started/inference-data/input/'}},\n", " 'DataOutputConfiguration': {'S3OutputConfiguration': {'Bucket': 'lookout-equipment-poc',\n", " 'Prefix': 'getting_started/inference-data/output/'}},\n", " 'Status': 'FAILED',\n", " 'FailedReason': \"Could not find data file for sensor centrifugal-pump within expected range of (2022-05-13T12:10:00Z, 2022-05-13T12:15:00Z]. Please ensure data is present for all sensors of the machine under prefix 's3://getting_started/inference-data/input/getting_started/inference-data/input/centrifugal-pump_20220513120500' ~ 's3://getting_started/inference-data/input/getting_started/inference-data/input/centrifugal-pump_20220513122000'\"},\n", " {'ModelName': 'getting-started-pump-model',\n", " 'ModelArn': 'arn:aws:lookoutequipment:eu-west-1:038552646228:model/getting-started-pump-model/07a0f7e9-0fb1-42e8-94d8-b4cd92778ebb',\n", " 'InferenceSchedulerName': 'getting-started-pump-scheduler',\n", " 'InferenceSchedulerArn': 'arn:aws:lookoutequipment:eu-west-1:038552646228:inference-scheduler/getting-started-pump-scheduler/8098a92f-9049-44d6-9c68-aa5cd0c69559',\n", " 'ScheduledStartTime': datetime.datetime(2022, 5, 13, 12, 10, tzinfo=tzlocal()),\n", " 'DataStartTime': datetime.datetime(2022, 5, 13, 12, 5, tzinfo=tzlocal()),\n", " 'DataEndTime': datetime.datetime(2022, 5, 13, 12, 10, tzinfo=tzlocal()),\n", " 'DataInputConfiguration': {'S3InputConfiguration': {'Bucket': 'lookout-equipment-poc',\n", " 'Prefix': 'getting_started/inference-data/input/'}},\n", " 'DataOutputConfiguration': {'S3OutputConfiguration': {'Bucket': 'lookout-equipment-poc',\n", " 'Prefix': 'getting_started/inference-data/output/'}},\n", " 'Status': 'FAILED',\n", " 'FailedReason': \"Could not find data file for sensor centrifugal-pump within expected range of (2022-05-13T12:05:00Z, 2022-05-13T12:10:00Z]. Please ensure data is present for all sensors of the machine under prefix 's3://getting_started/inference-data/input/getting_started/inference-data/input/centrifugal-pump_20220513120000' ~ 's3://getting_started/inference-data/input/getting_started/inference-data/input/centrifugal-pump_20220513121500'\"},\n", " {'ModelName': 'getting-started-pump-model',\n", " 'ModelArn': 'arn:aws:lookoutequipment:eu-west-1:038552646228:model/getting-started-pump-model/07a0f7e9-0fb1-42e8-94d8-b4cd92778ebb',\n", " 'InferenceSchedulerName': 'getting-started-pump-scheduler',\n", " 'InferenceSchedulerArn': 'arn:aws:lookoutequipment:eu-west-1:038552646228:inference-scheduler/getting-started-pump-scheduler/8098a92f-9049-44d6-9c68-aa5cd0c69559',\n", " 'ScheduledStartTime': datetime.datetime(2022, 5, 13, 12, 5, tzinfo=tzlocal()),\n", " 'DataStartTime': datetime.datetime(2022, 5, 13, 12, 0, tzinfo=tzlocal()),\n", " 'DataEndTime': datetime.datetime(2022, 5, 13, 12, 5, tzinfo=tzlocal()),\n", " 'DataInputConfiguration': {'S3InputConfiguration': {'Bucket': 'lookout-equipment-poc',\n", " 'Prefix': 'getting_started/inference-data/input/'}},\n", " 'DataOutputConfiguration': {'S3OutputConfiguration': {'Bucket': 'lookout-equipment-poc',\n", " 'Prefix': 'getting_started/inference-data/output/'}},\n", " 'Status': 'FAILED',\n", " 'FailedReason': \"Could not find data file for sensor centrifugal-pump within expected range of (2022-05-13T12:00:00Z, 2022-05-13T12:05:00Z]. Please ensure data is present for all sensors of the machine under prefix 's3://getting_started/inference-data/input/getting_started/inference-data/input/centrifugal-pump_20220513115500' ~ 's3://getting_started/inference-data/input/getting_started/inference-data/input/centrifugal-pump_20220513121000'\"}]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "START_TIME_FOR_INFERENCE_EXECUTIONS = None\n", "END_TIME_FOR_INFERENCE_EXECUTIONS = None\n", "EXECUTION_STATUS = None\n", "\n", "execution_summaries = []\n", "\n", "while len(execution_summaries) == 0:\n", " execution_summaries = scheduler.list_inference_executions(\n", " start_time=START_TIME_FOR_INFERENCE_EXECUTIONS,\n", " end_time=END_TIME_FOR_INFERENCE_EXECUTIONS,\n", " execution_status=EXECUTION_STATUS\n", " )\n", " if len(execution_summaries) == 0:\n", " print('WAITING FOR THE FIRST INFERENCE EXECUTION')\n", " time.sleep(60)\n", " \n", " else:\n", " print('FIRST INFERENCE EXECUTED\\n')\n", " break\n", " \n", "print(len(execution_summaries), 'inference execution(s) found.')\n", "print('Displaying the first three ones:')\n", "execution_summaries[:3]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have configured this scheduler to run every five minutes. After at least 5 minutes we can also see the history in the console populated with its first few executions: after an hour or so, we will see that the last ones failed as we only generated 12 files above:\n", "\n", "![Inference history](assets/schedule_inference_history.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When the scheduler starts (for example at `datetime.datetime(2021, 1, 27, 9, 15)`, it looks for **a single** CSV file located in the input location with a filename that contains a timestamp set to the previous step. For example, a file named:\n", "\n", "* centrifugal-pump_2021012709**10**00.csv will be found and ingested\n", "* centrifugal-pump_2021012708**15**00.csv will **not be** ingested (it will be ingested at the next inference execution however)\n", "\n", "In addition, when opening the file `centrifugal-pump_20210127091000.csv`, it will also open one file before and after this execution time: it will then look for any row with a date that is between the `DataStartTime` and the `DataEndTime` of the inference execution. If it doesn't find such a row in any of these three files, an exception will be thrown: the status of the execution will be marked `Failed`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Download inference results\n", "Let's have a look at the content now available in the scheduler output location: each inference execution creates a subfolder in the output directory. The subfolder name is the timestamp (GMT) at which the inference was executed and it contains a single [JSON lines](https://jsonlines.org/) file named `results.jsonl`:\n", "\n", "![Inference input](assets/schedule_inference_output_data.png)\n", "\n", "Each execution summary is a JSON document that has the following format:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'ModelName': 'getting-started-pump-model',\n", " 'ModelArn': 'arn:aws:lookoutequipment:eu-west-1:038552646228:model/getting-started-pump-model/07a0f7e9-0fb1-42e8-94d8-b4cd92778ebb',\n", " 'InferenceSchedulerName': 'getting-started-pump-scheduler',\n", " 'InferenceSchedulerArn': 'arn:aws:lookoutequipment:eu-west-1:038552646228:inference-scheduler/getting-started-pump-scheduler/8098a92f-9049-44d6-9c68-aa5cd0c69559',\n", " 'ScheduledStartTime': datetime.datetime(2022, 5, 13, 12, 15, tzinfo=tzlocal()),\n", " 'DataStartTime': datetime.datetime(2022, 5, 13, 12, 10, tzinfo=tzlocal()),\n", " 'DataEndTime': datetime.datetime(2022, 5, 13, 12, 15, tzinfo=tzlocal()),\n", " 'DataInputConfiguration': {'S3InputConfiguration': {'Bucket': 'lookout-equipment-poc',\n", " 'Prefix': 'getting_started/inference-data/input/'}},\n", " 'DataOutputConfiguration': {'S3OutputConfiguration': {'Bucket': 'lookout-equipment-poc',\n", " 'Prefix': 'getting_started/inference-data/output/'}},\n", " 'Status': 'FAILED',\n", " 'FailedReason': \"Could not find data file for sensor centrifugal-pump within expected range of (2022-05-13T12:10:00Z, 2022-05-13T12:15:00Z]. Please ensure data is present for all sensors of the machine under prefix 's3://getting_started/inference-data/input/getting_started/inference-data/input/centrifugal-pump_20220513120500' ~ 's3://getting_started/inference-data/input/getting_started/inference-data/input/centrifugal-pump_20220513122000'\"}" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "execution_summaries[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When the `Status` key from the previous JSON result is set to `SUCCESS`, you can collect the results location in the `CustomerResultObject` field. We are now going to loop through each execution result and download each JSON lines files generated by the scheduler. Then we will insert their results into an overall dataframe for further analysis:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
predictionanomaly_scorecentrifugal-pump\\Sensor0centrifugal-pump\\Sensor1centrifugal-pump\\Sensor2centrifugal-pump\\Sensor3centrifugal-pump\\Sensor4centrifugal-pump\\Sensor5centrifugal-pump\\Sensor6centrifugal-pump\\Sensor7...centrifugal-pump\\Sensor14centrifugal-pump\\Sensor15centrifugal-pump\\Sensor16centrifugal-pump\\Sensor17centrifugal-pump\\Sensor18centrifugal-pump\\Sensor19centrifugal-pump\\Sensor20centrifugal-pump\\Sensor21centrifugal-pump\\Sensor22centrifugal-pump\\Sensor23
timestamp
2022-05-13 10:06:0010.922490.020000.020000.120000.180000.140000.000000.000000.00000...0.080000.000000.000000.020000.020000.020000.00.000000.000000.00000
2022-05-13 10:07:0010.949680.043610.008190.049160.073740.057350.023610.129870.08265...0.044580.000000.000000.043610.020000.043610.00.011810.000000.00000
2022-05-13 10:08:0010.953420.063480.019400.031840.061850.051240.043480.084100.05352...0.035920.000000.133920.028240.012950.028240.00.007650.000000.00000
2022-05-13 10:09:0010.935900.054330.016600.047440.052930.043850.051640.071970.04580...0.045160.005770.134800.024170.011080.024170.00.006540.000000.00577
2022-05-13 10:10:0010.909200.055770.017340.049740.051250.042460.050000.071590.04815...0.044370.006220.130530.025300.010730.023400.00.006340.000630.00749
\n", "

5 rows × 32 columns

\n", "
" ], "text/plain": [ " prediction anomaly_score centrifugal-pump\\Sensor0 \\\n", "timestamp \n", "2022-05-13 10:06:00 1 0.92249 0.02000 \n", "2022-05-13 10:07:00 1 0.94968 0.04361 \n", "2022-05-13 10:08:00 1 0.95342 0.06348 \n", "2022-05-13 10:09:00 1 0.93590 0.05433 \n", "2022-05-13 10:10:00 1 0.90920 0.05577 \n", "\n", " centrifugal-pump\\Sensor1 centrifugal-pump\\Sensor2 \\\n", "timestamp \n", "2022-05-13 10:06:00 0.02000 0.12000 \n", "2022-05-13 10:07:00 0.00819 0.04916 \n", "2022-05-13 10:08:00 0.01940 0.03184 \n", "2022-05-13 10:09:00 0.01660 0.04744 \n", "2022-05-13 10:10:00 0.01734 0.04974 \n", "\n", " centrifugal-pump\\Sensor3 centrifugal-pump\\Sensor4 \\\n", "timestamp \n", "2022-05-13 10:06:00 0.18000 0.14000 \n", "2022-05-13 10:07:00 0.07374 0.05735 \n", "2022-05-13 10:08:00 0.06185 0.05124 \n", "2022-05-13 10:09:00 0.05293 0.04385 \n", "2022-05-13 10:10:00 0.05125 0.04246 \n", "\n", " centrifugal-pump\\Sensor5 centrifugal-pump\\Sensor6 \\\n", "timestamp \n", "2022-05-13 10:06:00 0.00000 0.00000 \n", "2022-05-13 10:07:00 0.02361 0.12987 \n", "2022-05-13 10:08:00 0.04348 0.08410 \n", "2022-05-13 10:09:00 0.05164 0.07197 \n", "2022-05-13 10:10:00 0.05000 0.07159 \n", "\n", " centrifugal-pump\\Sensor7 ... centrifugal-pump\\Sensor14 \\\n", "timestamp ... \n", "2022-05-13 10:06:00 0.00000 ... 0.08000 \n", "2022-05-13 10:07:00 0.08265 ... 0.04458 \n", "2022-05-13 10:08:00 0.05352 ... 0.03592 \n", "2022-05-13 10:09:00 0.04580 ... 0.04516 \n", "2022-05-13 10:10:00 0.04815 ... 0.04437 \n", "\n", " centrifugal-pump\\Sensor15 centrifugal-pump\\Sensor16 \\\n", "timestamp \n", "2022-05-13 10:06:00 0.00000 0.00000 \n", "2022-05-13 10:07:00 0.00000 0.00000 \n", "2022-05-13 10:08:00 0.00000 0.13392 \n", "2022-05-13 10:09:00 0.00577 0.13480 \n", "2022-05-13 10:10:00 0.00622 0.13053 \n", "\n", " centrifugal-pump\\Sensor17 centrifugal-pump\\Sensor18 \\\n", "timestamp \n", "2022-05-13 10:06:00 0.02000 0.02000 \n", "2022-05-13 10:07:00 0.04361 0.02000 \n", "2022-05-13 10:08:00 0.02824 0.01295 \n", "2022-05-13 10:09:00 0.02417 0.01108 \n", "2022-05-13 10:10:00 0.02530 0.01073 \n", "\n", " centrifugal-pump\\Sensor19 centrifugal-pump\\Sensor20 \\\n", "timestamp \n", "2022-05-13 10:06:00 0.02000 0.0 \n", "2022-05-13 10:07:00 0.04361 0.0 \n", "2022-05-13 10:08:00 0.02824 0.0 \n", "2022-05-13 10:09:00 0.02417 0.0 \n", "2022-05-13 10:10:00 0.02340 0.0 \n", "\n", " centrifugal-pump\\Sensor21 centrifugal-pump\\Sensor22 \\\n", "timestamp \n", "2022-05-13 10:06:00 0.00000 0.00000 \n", "2022-05-13 10:07:00 0.01181 0.00000 \n", "2022-05-13 10:08:00 0.00765 0.00000 \n", "2022-05-13 10:09:00 0.00654 0.00000 \n", "2022-05-13 10:10:00 0.00634 0.00063 \n", "\n", " centrifugal-pump\\Sensor23 \n", "timestamp \n", "2022-05-13 10:06:00 0.00000 \n", "2022-05-13 10:07:00 0.00000 \n", "2022-05-13 10:08:00 0.00000 \n", "2022-05-13 10:09:00 0.00577 \n", "2022-05-13 10:10:00 0.00749 \n", "\n", "[5 rows x 32 columns]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results_df = scheduler.get_predictions()\n", "results_df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The content of each JSON lines file follows this format:\n", " \n", "```json\n", "[\n", " {\n", " 'timestamp': '2022-03-30T10:46:00.000000',\n", " 'prediction': 1,\n", " 'prediction_reason': 'ANOMALY_DETECTED',\n", " 'anomaly_score': 0.91945,\n", " 'diagnostics': [\n", " {'name': 'centrifugal-pump\\\\Sensor0', 'value': 0.12},\n", " {'name': 'centrifugal-pump\\\\Sensor1', 'value': 0.0},\n", " {'name': 'centrifugal-pump\\\\Sensor2', 'value': 0.0},\n", " .\n", " .\n", " .\n", " {'name': 'centrifugal-pump\\\\Sensor27', 'value': 0.08},\n", " {'name': 'centrifugal-pump\\\\Sensor28', 'value': 0.02},\n", " {'name': 'centrifugal-pump\\\\Sensor29', 'value': 0.02}\n", " ]\n", " }\n", " ...\n", "]\n", "```\n", "Each timestamp found in the file is associated to a `prediction`: 1 when an anomaly is detected an 0 otherwise. You will also have access tothe raw `anomaly_score` ranging from 0.0 to 1.0. This score is normalized so that any raw anomaly score greater than 50% will be associated to a detected anomaly (`prediction = 1`)\n", "\n", "When the `prediction` field is 1 (an anomaly is detected), the `diagnostics` field contains each sensor (with the format `component`\\\\`tag`) and an associated percentage. This percentage corresponds to the magnitude of impact of a given sensor to the detected anomaly. For instance, in the example above, the tag `Sensor0` located on the `centrifugal-pump` component has an estimated 12% magnitude of impact to the anomaly detected at 8pm on April 7th 2021. This dataset has 23 sensors: if each sensor contributed the same way to this event, the impact of each of them would be `100 / 23 = 4.35%`, so 12% is indeed statistically significant." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualizing the inference results\n", "#### Single inference analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each detected event have some detailed diagnostics. Let's unpack the details for the first event and plot a similar bar chart than what the console provides when it evaluates a trained model:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "event_details = pd.DataFrame(results_df.iloc[0, 2:]).reset_index()\n", "fig, ax = lookout.plot.plot_event_barh(event_details)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we did in the previous notebook, the above bar chart is already of great help to pinpoint what might be going wrong with your asset. Let's load the initial tags description file we prepared in the first notebook and match the sensors with our initial components to group sensors by component:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Agregate event diagnostics at the component level:\n", "tags_description_fname = os.path.join(TMP_DATA, 'tags_description.csv')\n", "tags_description_df = pd.read_csv(tags_description_fname)\n", "event_details[['asset', 'sensor']] = event_details['name'].str.split('\\\\', expand=True)\n", "component_diagnostics = pd.merge(event_details, tags_description_df, how='inner', left_on='sensor', right_on='Tag')[['name', 'value', 'Component']]\n", "component_diagnostics = component_diagnostics.groupby(by='Component').sum().sort_values(by='value')\n", "\n", "# Prepare Y position and values for bar chart:\n", "y_pos = np.arange(component_diagnostics.shape[0])\n", "values = list(component_diagnostics['value'])\n", "\n", "# Plot the bar chart:\n", "fig = plt.figure(figsize=(12,5))\n", "ax = plt.subplot(1,1,1)\n", "ax.barh(y_pos, component_diagnostics['value'], align='center')\n", "ax.set_yticks(y_pos)\n", "ax.set_yticklabels(list(component_diagnostics.index))\n", "ax.xaxis.set_major_formatter(mtick.PercentFormatter(1.0))\n", "\n", "# Add the values in each bar:\n", "for i, v in enumerate(values):\n", " ax.text(0.005, i, f'{v*100:.2f}%', color='#FFFFFF', fontweight='bold', verticalalignment='center')\n", " \n", "# Show the final plot:\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Multiple inferences analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also plot the contribution evolution for the top contributing signals over a period of time: the following graph gives an example of what a real time dashboard could look like to expose the results of an Amazon Lookout for Equipment scheduler.\n", "\n", "**Note:** The plot stops after a while as there are no more anomaly detected." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "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Y1LfFHFM6psdZ/P2HZRYrU1WENAEYyIiIiIiIiIiIiIOQMlaEREREREREREREQfQGcogdCr5BYVkZa5mXVo61uISvHy8iYqPIyZ2JAH+fvYOT0RERERERERERByUkrVtaMeuPcybPZeIoiImeXvi4+FGcamVbfPmM2fhb8yYNZPIiL72DlNEREREREREREQckMogtJH8gkLmzZ5LfEU5sYH++Lm54WSx4OfmRmygP/EV5cybPZf8gkJ7hyoiIiIiIiIiIiIOSMnaNpKVuZqIoiJCvTwbXR/q5Ul4YSGrstZ0cGQiIiIiIiIiIiLSGShZ20bWpaUzwNtM1B44dJhvv09l245d9doM9PFibVq6PcITERERERERERERB6eatW3EWlxCRVkp3y/8jUOHc+gX0YeMVesYEBlxpI23qyulRcV2jFJEREREREREREQclZK1bWD/gUNkrt1I9voNxMdEc9YZk3BycuK9uZ+Tk5tPcFAAACWVlXj6+tg3WBEREREREREREXFIKoNwEvILCnnuxde5+Oqb6TGoP3FnT2X0qGhcXJxxcrIwfOgg1m3YfKT91mIr0fFxdoxYREREREREREREHJWSta1QWlbGG7Pncu5l11NcYuWbuW/w8AN3sz8oiEPW0iPthg8dxMYt26iqquaQtZTdfn6Mihlhx8hFRERERERERETEUakMQgtUVlXx5Tc/8Opbc4gdGcUHb7xA/8jwI+tnzJrJvNlzCc/NZ6CPF94+3viHBPPduo1YooYxY9ZMAvz97PgIRERERERERERExFEpWdsMhmHw40+LeOHVt+kV2oOX//4II6OHHdMuMqIvV995M6uy1rAoLZ3SomKyR49i3YFDvHvnzUrUioiIiIiIiIiISJOUrD2BJctW8o9X3qS6poYH/++PnDJhLBaLpcn2Af5+TJ58CpMnnwKYo3HPPP8qsnPylKwVERERERERERGRJnXLZG1+QSFZmatZl5aOtbgELx9vouLjiIkdeSShunbDZv7xypvs2bufO269nnMSpuDk1PISv64uLlxywdl88uV3/PWe29r6oYiIiIiIiIiIiEgX0axkrSUpNQh4C5gGZAP3G8kJHzbSLgB4ETindtGrRnLCIzbrdwA9geraRb8ZyQnTWhl7q+zYtYd5s+cSUVTEJG9PfDzcKC61sm3efOYs/I0xZ0/ls6+/Z/nK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1/5MAxI5Wtv2IeAZm+YvAvuAx1sdfRP27j9IcYmVwQMj23rTdnH5Redy4x//wu03XYurS3MqV4iIiIiIiIiIiEhn09zM323A28AhIAe41UhOWGtJSp0EfG8kJ/jUthsLvAAEYI7IvcpITlgLYCQnFGFTOsGSlFoKlBjJCblt8DjqWZaeyfixMVgslhM37gQGD4wkvE8vFv66lITTT7V3OCIiIiIiIiIiItIOmpWsrU2oXtTI8kWYE5DV/f0J8EkztzmrWRG2Qlp6BvHjOn+9WluXX3wen3z5nZK1IiIiIiIiIiIiXVRzatZ2KoZhsCw9q0vUq7U1/cwprF67gb37D9o7FBEREREREREREWkHXS5Zu3P3XgD6hfexcyRty8PDnfOnn8nnX2uiMRERERERERERka6oy81WtTQ9k/FxXadera2zE6Zwx90P4pyXR5m1FC8fb6Li44iJHUmAv5+9wxMREREREREREZGT0OVG1qYtzyA+rmvVqwXYsWsPS775nglWK/23bOVSDzcmlVopmDefOS++zo5de+wdooiIiIiIiIiIiJyELpWsNQyDZSuyGN/F6tXmFxQyb/Zc4ivKmT5sEDs2b8PJYsHPzY3YQH/iK8qZN3su+QWF9g5VREREREREREREWqlLJWs3b92Bj7cXfXr3tHcobSorczURRUWEenkycEA/DhzKpqi45Mj6UC9PwgsLWZW1xo5RioiIiIiIiIiIyMnoUsnapemZTOhio2oB1qWlM8DbEwBXFxcGD4xk05Zt9doM9PFibVq6PcITERERERERERGRNtDFkrUZXTJZay0uwcfV9cjf/cL7sHvP/nptvF1dKS0q7ujQREREREREREREpI10mWRtdXU1y1euYvzYWHuH0ua8fLwprqw88ndY754cOpxNZVXVkWUllZV4+vrYIzwRERERERERERFpA10mWbt+4xZ6hATTIyTI3qG0uaj4OLaVlB75283VleDgIA4cPHxk2dZiK9HxcfYIT0RERERERERERNpAl0nWLl2RSfy4WHuH0S5iYkeyy9eXQ9ajCdu+Yb3Ys9cshXDIWspuPz9GxYywV4giIiIiIiIiIiJykrpOsnZ5JhPiRts7jHYR4O/HjFkzSXNzJyM3n8KKCsLCerFl734ycvNJc3NnxqyZBPj72TtUERERERERERERaaUukaytqKxk5aq1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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(24,9))\n", "gs = GridSpec(nrows=3, ncols=1, height_ratios=[1.0, 0.2, 1.0], hspace=0.35)\n", "df = results_df.loc[:, :].copy()\n", "\n", "plot_start = np.min(df.index)\n", "plot_end = np.max(df.index)\n", "\n", "df = df.loc[plot_start:plot_end]\n", "\n", "ax1 = fig.add_subplot(gs[0])\n", "anomaly_plot = ax1.plot(results_df['anomaly_score'], marker='o', markersize=10)\n", "anomaly_plot[0].set_markerfacecolor(colors[5] + '80')\n", "ax1.set_xlim((plot_start, plot_end))\n", "ax1.set_title(f'Centrifugal pump - Live anomaly detection')\n", "ax1.set_xlabel('Raw anomaly score', fontsize=12)\n", "\n", "ax3 = fig.add_subplot(gs[1])\n", "lookout.plot.plot_range(results_df, 'Detected events', colors[5], ax3, column_name='prediction')\n", "ax3.set_xlim((plot_start, plot_end))\n", "\n", "bar_width = 0.0005\n", "ax4 = fig.add_subplot(gs[2])\n", "bottom_values = np.zeros((len(df.index),))\n", "current_tags_list = list(df.iloc[:, 2:].sum().sort_values(ascending=False).head(8).index)\n", "for tag in current_tags_list:\n", " plt.bar(x=df.index, height=df[tag], bottom=bottom_values, alpha=0.8, width=bar_width, label=tag.split('\\\\')[1])\n", " bottom_values += df[tag].values\n", " \n", "all_other_tags = [t for t in df.columns if t not in current_tags_list][2:]\n", "all_other_tags_contrib = df[all_other_tags].sum(axis='columns')\n", "plt.bar(x=df.index, height=all_other_tags_contrib, bottom=bottom_values, alpha=0.8, width=bar_width, label='All the others', color='#CCCCCC')\n", "\n", "ax4.legend(loc='lower center', ncol=5, bbox_to_anchor=(0.5, -0.45))\n", "ax4.set_xlabel('Signal importance evolution', fontsize=12)\n", "ax4.set_xlim((plot_start, plot_end))\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From top to bottom, you can see:\n", "* The evolution of the raw evolution score (real value ranging from 0% to 100%)\n", "* The detected events (binary value, 0 or 1)\n", "* The evolution of the variable importance for each sensor over time" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inference scheduler operations\n", "---\n", "### Stop inference scheduler\n", "**Be frugal**, running the scheduler is the main cost driver of Amazon Lookout for Equipment. Use the [**StopInferenceScheduler**](https://docs.aws.amazon.com/lookout-for-equipment/latest/ug/API_StopInferenceScheduler.html) API to stop an already running inference scheduler:\n", "\n", "```python\n", "stop_scheduler_response = lookout_client.stop_inference_scheduler(\n", " InferenceSchedulerName=INFERENCE_SCHEDULER_NAME\n", ")\n", "```\n", "\n", "The following method is a wrapper around this API call and will stop the periodic inference executions:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "===== Polling Inference Scheduler Status =====\n", "\n", "Scheduler Status: STOPPING\n", "Scheduler Status: STOPPED\n", "\n", "===== End of Polling Inference Scheduler Status =====\n" ] } ], "source": [ "scheduler.stop()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Start an inference scheduler\n", "You can restart any `STOPPED` inference scheduler using the [**StartInferenceScheduler**](https://docs.aws.amazon.com/lookout-for-equipment/latest/ug/API_StartInferenceScheduler.html) API:\n", "\n", "```python\n", "start_scheduler_response = lookout_client.start_inference_scheduler(\n", " InferenceSchedulerName=INFERENCE_SCHEDULER_NAME\n", ")\n", "```\n", "\n", "The following method is a wrapper around this API call and will start the periodic inference executions:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "scheduler.start()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Delete an inference scheduler\n", "You can delete a **stopped** scheduler you have no more use of: note that you can only have one scheduler per model.\n", "\n", "```python\n", "delete_scheduler_response = lookout_client.delete_inference_scheduler(\n", " InferenceSchedulerName=INFERENCE_SCHEDULER_NAME\n", ")\n", "```\n", "\n", "The `scheduler.delete()` method is a wrapper around the [**DeleteInferenceScheduler**](https://docs.aws.amazon.com/lookout-for-equipment/latest/ug/API_DeleteInferenceScheduler.html) API and will delete a stopped scheduler:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "scheduler.stop()\n", "scheduler.delete()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conclusion\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this notebook, we used the model created in part 3 of this notebook, configured a scheduler and extracted the predictions obtained after it executed a few inferences.\n", "\n", "We also showed how we could post-process the inference results to deliver better insights into the detected events." ] } ], "metadata": { "instance_type": "ml.t3.medium", "kernelspec": { "display_name": "Python 3 (Data Science)", "language": "python", "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:eu-west-1:470317259841:image/datascience-1.0" }, "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.7.10" } }, "nbformat": 4, "nbformat_minor": 5 }