{ "cells": [ { "cell_type": "markdown", "id": "16f15664-c5c8-4aa9-9ecf-4ad1935825e0", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "# Serverless Data Prep with Glue Interactive Sessions (from `SageMaker Studio`)\n", "\n", "This notebook demonstrates the ability to use Apache Spark using AWS Glue to do data prep with two different datasets in order to build an urban air quality predictor with Amazon SageMaker.\n", "\n", "![Intro](img/img1.png)\n" ] }, { "cell_type": "markdown", "id": "91500df2-118c-402a-a356-059c33b43e48", "metadata": { "tags": [] }, "source": [ "# Introduction" ] }, { "cell_type": "markdown", "id": "30fbffff-9ca1-49ce-a5cb-f4d0d53e31f4", "metadata": {}, "source": [ "While some organizations see data science, data engineering, and data analytics as separate siloed functions, we're increasingly seeing with many of our customers that data prep and analytics are foundational components of ML workflows.\n", "\n", "For example, although organizations have data engineering teams to clean and prepare data for analytics and ML, the specific data that a data scientist may need for training a specific model may not be available in the repository of data that a data engineering team may have prepared.\n", "\n", "![Intro](img/img2.png)" ] }, { "cell_type": "markdown", "id": "a5f80972-6fa0-4fc3-bb70-ef8042f2dfd3", "metadata": { "tags": [] }, "source": [ "# Problem Statement" ] }, { "cell_type": "markdown", "id": "04dfd3da-6bde-4a15-9fbf-e411913b0ba1", "metadata": {}, "source": [ "Lets take a problem and try to solve it. As we all know, Air pollution in cities can be an acute problem leading to damaging effects on people, animals, plants and property.\n", "\n", "We need to build a machine learning model which can help to predict the amount of NO2 in the area based on weather conditions\n", "\n", "So, ultimately we would like to have a ML model, wherein we are going to feed the weather details of a particular city at a given time, These details would be, mean temperature, maximum temperature, minimum temperate and so on.\n", "\n", "And the Model should predict the NO2 or nitrogen dioxide concentration levels at that time.\n", "\n", "![Intro](img/img3.png)\n" ] }, { "cell_type": "markdown", "id": "54f05e1a-2bf4-4a80-b7d2-aed06ea8acad", "metadata": { "tags": [] }, "source": [ "# Dataset" ] }, { "cell_type": "markdown", "id": "84732ed9-55b1-4d28-bdc5-c3ebc40b9baf", "metadata": { "tags": [] }, "source": [ "For this demo we would use the following dataset:\n", "\n", "- [OpenAQ physical air quality data](https://registry.opendata.aws/openaq/) : Global, aggregated physical air quality data from public data sources provided by government, research-grade and other sources.\n", " 42GB of Data\n", "\n", "- [NOAA Global Surface Summary of Day](https://registry.opendata.aws/noaa-gsod/) : Global summary of day data for 18 surface meteorological elements are derived from the synoptic/hourly observations contained in USAF DATSAV3 Surface data and Federal Climate Complex Integrated Surface Hourly (ISH)." ] }, { "cell_type": "markdown", "id": "ec12e7d8-0e72-4fa5-a456-21ee04e6476c", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "# Lets get started" ] }, { "cell_type": "code", "execution_count": 3, "id": "a15fcb8f-e83e-40bc-8d69-e73d83fcfd13", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Welcome to the Glue Interactive Sessions Kernel\n", "For more information on available magic commands, please type %help in any new cell.\n", "\n", "Please view our Getting Started page to access the most up-to-date information on the Interactive Sessions kernel: https://docs.aws.amazon.com/glue/latest/dg/interactive-sessions.html\n", "It looks like there is a newer version of the kernel available. The latest version is 0.38.1 and you have 0.37.4 installed.\n", "Please run `pip install --upgrade aws-glue-sessions` to upgrade your kernel\n", "There is no current session.\n" ] } ], "source": [ "%stop_session" ] }, { "cell_type": "code", "execution_count": 5, "id": "b85b99a7-d86f-47c5-b2f5-f10e9cd89b50", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/markdown": [ "\n", "# Available Magic Commands\n", "\n", "## Sessions Magic\n", "\n", "----\n", " %help Return a list of descriptions and input types for all magic commands. \n", " %profile String Specify a profile in your aws configuration to use as the credentials provider.\n", " %region String Specify the AWS region in which to initialize a session. \n", " Default from ~/.aws/config on Linux or macOS, \n", " or C:\\Users\\ USERNAME \\.aws\\config\" on Windows.\n", " %idle_timeout Int The number of minutes of inactivity after which a session will timeout. \n", " Default: 2880 minutes (48 hours).\n", " %session_id_prefix String Define a String that will precede all session IDs in the format \n", " [session_id_prefix]-[session_id]. If a session ID is not provided,\n", " a random UUID will be generated.\n", " %status Returns the status of the current Glue session including its duration, \n", " configuration and executing user / role.\n", " %session_id Returns the session ID for the running session. \n", " %list_sessions Lists all currently running sessions by ID.\n", " %stop_session Stops the current session.\n", " %glue_version String The version of Glue to be used by this session. \n", " Currently, the only valid options are 2.0 and 3.0. \n", " Default: 2.0.\n", "----\n", "\n", "## Selecting Job Types\n", "\n", "----\n", " %streaming String Sets the session type to Glue Streaming.\n", " %etl String Sets the session type to Glue ETL.\n", " %glue_ray String Sets the session type to Glue Ray.\n", "----\n", "\n", "## Glue Config Magic \n", "*(common across all job types)*\n", "\n", "----\n", "\n", " %%configure Dictionary A json-formatted dictionary consisting of all configuration parameters for \n", " a session. Each parameter can be specified here or through individual magics.\n", " %iam_role String Specify an IAM role ARN to execute your session with.\n", " Default from ~/.aws/config on Linux or macOS, \n", " or C:\\Users\\%USERNAME%\\.aws\\config` on Windows.\n", " %number_of_workers int The number of workers of a defined worker_type that are allocated \n", " when a session runs.\n", " Default: 5.\n", " %additional_python_modules List Comma separated list of additional Python modules to include in your cluster \n", " (can be from Pypi or S3).\n", "----\n", "\n", " \n", "## Magic for Spark Jobs (ETL & Streaming)\n", "\n", "----\n", " %worker_type String Set the type of instances the session will use as workers. \n", " ETL and Streaming support G.1X, G.2X, G.4X and G.8X. \n", " Default: G.1X.\n", " %connections List Specify a comma separated list of connections to use in the session.\n", " %extra_py_files List Comma separated list of additional Python files From S3.\n", " %extra_jars List Comma separated list of additional Jars to include in the cluster.\n", " %spark_conf String Specify custom spark configurations for your session. \n", " E.g. %spark_conf spark.serializer=org.apache.spark.serializer.KryoSerializer\n", "----\n", " \n", "## Magic for Ray Job\n", "\n", "----\n", " %min_workers Int The minimum number of workers that are allocated to a Ray job. \n", " Default: 1.\n", " %object_memory_head Int The percentage of free memory on the instance head node after a warm start. \n", " Minimum: 0. Maximum: 100.\n", " %object_memory_worker Int The percentage of free memory on the instance worker nodes after a warm start. \n", " Minimum: 0. Maximum: 100.\n", "----\n", "\n", "## Action Magic\n", "\n", "----\n", "\n", " %%sql String Run SQL code. All lines after the initial %%sql magic will be passed\n", " as part of the SQL code. \n", "----\n", "\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%help" ] }, { "cell_type": "code", "execution_count": 11, "id": "c1673d5c-9297-448e-8e31-2a6d42809496", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Setting session ID prefix to my-smgluedemo\n", "Setting Glue version to: 3.0\n", "Previous number of workers: 5\n", "Setting new number of workers to: 50\n", "Current idle_timeout is 2880 minutes.\n", "idle_timeout has been set to 600 minutes.\n", "Additional python modules to be included:\n", "sagemaker\n" ] } ], "source": [ "%session_id_prefix my-smgluedemo\n", "%glue_version 3.0\n", "%number_of_workers 50\n", "%idle_timeout 600\n", "%additional_python_modules sagemaker" ] }, { "cell_type": "code", "execution_count": 1, "id": "e4780304-97ff-459d-ac2b-029b83c0257e", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Authenticating with environment variables and user-defined glue_role_arn: arn:aws:iam::507922848584:role/service-role/SageMaker-myRoleforSMStudio\n", "Trying to create a Glue session for the kernel.\n", "Worker Type: G.1X\n", "Number of Workers: 50\n", "Session ID: my-smgluedemo-e3dccbcf-b014-4e17-a37b-25ca1090ed04\n", "Job Type: glueetl\n", "Applying the following default arguments:\n", "--glue_kernel_version 0.37.4\n", "--enable-glue-datacatalog true\n", "--additional-python-modules sagemaker\n", "Waiting for session my-smgluedemo-e3dccbcf-b014-4e17-a37b-25ca1090ed04 to get into ready status...\n", "Session my-smgluedemo-e3dccbcf-b014-4e17-a37b-25ca1090ed04 has been created.\n", "3.1.1-amzn-0\n" ] } ], "source": [ "print(spark.version)" ] }, { "cell_type": "markdown", "id": "e6bdcc48-8304-4661-a6a9-f6f03f618cd3", "metadata": { "tags": [] }, "source": [ "# Part 1: Data preparation and cleaning using Spark " ] }, { "cell_type": "markdown", "id": "f5b9b01e-1bdc-4537-875f-1dda545827fc", "metadata": {}, "source": [ "## 1.1 Data preparation and cleaning of the `first` dataset (NO2 Air Quality)\n", "\n", "In the cells below, we're going to perform the following operations:\n", "\n", "- Use Spark to read our data from the `OpenAQ` S3 Bucket.\n", "- Filter the available data to `Boston` and `NO2 readings` (indicative of air quality).\n", "- Group the readings by day." ] }, { "cell_type": "code", "execution_count": 2, "id": "b722be6a-f815-4d32-954c-631629e7e104", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+--------------------+---------------+------------------+--------------------+-------+--------------------+--------+------+---------+-----------+----------+-----+-----+\n", "| attribution|averagingPeriod| city| coordinates|country| date|location|mobile|parameter| sourceName|sourceType| unit|value|\n", "+--------------------+---------------+------------------+--------------------+-------+--------------------+--------+------+---------+-----------+----------+-----+-----+\n", "|[{EEA, http://www...| {hours, 1.0}|Escaldes-Engordany|{42.5096939994651...| AD|{2023-02-21T02:00...| AD0942A| false| pm10|EEA Andorra|government|µg/m³| 18.0|\n", "|[{EEA, http://www...| {hours, 1.0}|Escaldes-Engordany|{42.5096939994651...| AD|{2023-02-21T03:00...| AD0942A| false| pm10|EEA Andorra|government|µg/m³| 20.0|\n", "+--------------------+---------------+------------------+--------------------+-------+--------------------+--------+------+---------+-----------+----------+-----+-----+\n", "only showing top 2 rows\n" ] } ], "source": [ "df = spark.read.json(\"s3://openaq-fetches/realtime-gzipped/2022-01-05/1641409725.ndjson.gz\")\n", "df2 = spark.read.schema(df.schema).json(\"s3://openaq-fetches/realtime-gzipped/202*\")\n", "\n", "df2.show(2, truncate=True)" ] }, { "cell_type": "code", "execution_count": 3, "id": "51fb24ce-0949-40e5-8e70-32fb28649e21", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+--------------------+---------------+--------------------+--------------------+-------+--------------------+--------------------+------+---------+----------+----------+----+------+----+\n", "| attribution|averagingPeriod| city| coordinates|country| date| location|mobile|parameter|sourceName|sourceType|unit| value|year|\n", "+--------------------+---------------+--------------------+--------------------+-------+--------------------+--------------------+------+---------+----------+----------+----+------+----+\n", "|[{US EPA AirNow, ...| {hours, 1.0}|Boston-Cambridge-...|{42.474701, -70.9...| US|{2023-04-05T17:00...| LYNN| false| no2| AirNow|government| ppm|0.0024|2023|\n", "|[{US EPA AirNow, ...| {hours, 1.0}|Boston-Cambridge-...|{42.2117, -71.114...| US|{2023-04-05T17:00...|E. Milton - Blue Hil| false| no2| AirNow|government| ppm| 0.002|2023|\n", "|[{US EPA AirNow, ...| {hours, 1.0}|Boston-Cambridge-...|{42.3489, -71.097...| US|{2023-04-05T17:00...| BOSTON-KENMORE| false| no2| AirNow|government| ppm| 0.016|2023|\n", "|[{US EPA AirNow, ...| {hours, 1.0}|Boston-Cambridge-...|{42.329399, -71.0...| US|{2023-04-05T17:00...| Boston - Roxbury| false| no2| AirNow|government| ppm|0.0068|2023|\n", "|[{US EPA AirNow, ...| {hours, 1.0}|Boston-Cambridge-...|{42.474701, -70.9...| US|{2023-04-07T16:00...| LYNN| false| no2| AirNow|government| ppm|9.0E-4|2023|\n", "+--------------------+---------------+--------------------+--------------------+-------+--------------------+--------------------+------+---------+----------+----------+----+------+----+\n", "only showing top 5 rows\n" ] } ], "source": [ "import pyspark.sql.functions as F\n", "\n", "'''\n", "Filtering Data ONLY for \n", " City : Boston\n", " Parameter : no2\n", "\n", "Adding a new Column 'YEAR' \n", "'''\n", "dfBos = df2.filter(F.lower((df2.city)) \\\n", " .contains('boston')) \\\n", " .filter(df2.parameter == \"no2\") \\\n", " .withColumn(\"year\", F.substring(df2.date.utc, 1, 4)) \\\n", " .cache()\n", "\n", "dfBos.show(5, truncate=True)" ] }, { "cell_type": "code", "execution_count": 4, "id": "7953d5d5-86e3-4bff-9ebf-ac905b58d49f", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+----------+--------------------+\n", "| ymd| no2_avg|\n", "+----------+--------------------+\n", "|2022-05-31|0.005007751937984496|\n", "|2021-11-10|0.010848101265822781|\n", "|2021-03-31|0.005881355932203...|\n", "|2022-12-04|0.003643782837127...|\n", "|2021-12-13|0.010462264150943394|\n", "|2021-11-23|0.004562500000000002|\n", "|2023-02-23|0.009197023809523804|\n", "|2020-04-12| 0.00452808988764045|\n", "|2020-07-14|0.005851851851851853|\n", "|2020-12-26|0.003088235294117...|\n", "+----------+--------------------+\n", "only showing top 10 rows\n" ] } ], "source": [ "'''\n", "Aggregating the data day wise by taking the average of `no2` value across each day. \n", "Reducing the no. of data points from ~2.5M to ~ 2K \n", "'''\n", "\n", "dfNoAvg = (dfBos.withColumn(\"ymd\", F.to_date(dfBos.date.utc)) \n", " .groupBy(\"ymd\") \n", " .avg(\"value\") \n", " .withColumnRenamed(\"avg(value)\", \"no2_avg\")\n", " )\n", "\n", "dfNoAvg.show(10, truncate=True)" ] }, { "cell_type": "code", "execution_count": 5, "id": "45eeb4a8-63d8-481d-817c-bf4ec73082ed", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(2019, 2023)\n" ] } ], "source": [ "import pyspark.sql.functions as F\n", "\n", "year_min = dfNoAvg.select(F.year(\"ymd\").alias(\"year\")).agg({'year':'min'}).first()[0]\n", "year_max = dfNoAvg.select(F.year(\"ymd\").alias(\"year\")).agg({'year':'max'}).first()[0]\n", "\n", "(year_min, year_max)" ] }, { "cell_type": "markdown", "id": "9c82f762-3183-404c-bdbf-737c0897845c", "metadata": { "tags": [] }, "source": [ "## 1.2 Data preparation and cleaning of the `second` dataset (Weather )\n", "\n", "\n", "Now that our first dataset looks good, we used the **year_min** and **year_max** variables to limit the data we want to read from the second dataset.\n" ] }, { "cell_type": "markdown", "id": "8ebedd47-fee9-4375-987b-c2523780a45a", "metadata": {}, "source": [ "### And now the weather" ] }, { "cell_type": "code", "execution_count": 6, "id": "3520ed79-7174-43f8-8c38-f52bfbed0e03", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "from pyspark.sql.types import DoubleType\n", "from pyspark.sql import functions as F\n", "\n", "# Boston, MA, USA\n", "longLeft, latBottom, longRight, latTop = [-71.191162,42.227087,-70.986022,42.397057]\n", "\n", "dfSchema = spark.read.csv(\"s3://noaa-gsod-pds/2022/32509099999.csv\", header=True, inferSchema=True)\n", "\n", "# We read our first year, then union the rest of the years :)\n", "def read_year(year):\n", " return spark.read.csv(f\"s3://noaa-gsod-pds/{year}/\", header=True, schema=dfSchema.schema)\n", "\n", "year_range = range(int(year_min), int(year_max)+1)\n", "df = read_year(year_range[0])\n", "for year in year_range[1:]:\n", " df = df.union(read_year(year))\n", "\n", "df = df \\\n", " .withColumn('LATITUDE', df.LATITUDE.cast(DoubleType())) \\\n", " .withColumn('LONGITUDE', df.LONGITUDE.cast(DoubleType()))\n", "\n", "bostondf = df \\\n", " .filter(df.LATITUDE >= latBottom) \\\n", " .filter(df.LATITUDE <= latTop) \\\n", " .filter(df.LONGITUDE >= longLeft) \\\n", " .filter(df.LONGITUDE <= longRight)\n", "\n", "# Rename columns so they're easier to read\n", "bostonfeatures = bostondf.selectExpr(\"Date as date\", \"MAX as temp_max\", \"MIN as temp_min\", \"WDSP as wind_avg\", \"SLP as pressure_sea_level\", \"STP as pressure_station\")\n", "\n", "# Remove invalid readings\n", "no_data_mappings = [\n", " [\"temp_max\", 9999.9],\n", " [\"temp_min\", 9999.9],\n", " [\"wind_avg\", 999.9],\n", " [\"pressure_sea_level\", 9999.9],\n", " [\"pressure_station\", 9999.9]\n", "]\n", "\n", "for [name, val] in no_data_mappings:\n", " bostonfeatures = bostonfeatures \\\n", " .withColumn(name, F.when(F.col(name)==val, None) \\\n", " .otherwise(F.col(name)))\n", " \n", "# Now average each reading per day\n", "bostonfeatures = bostonfeatures \\\n", " .groupBy(\"date\") \\\n", " .agg(*[F.mean(c).alias(c) for c in bostonfeatures.columns[1:]])\n", "\n", "bostonfeatures = bostonfeatures.withColumn(\"date\", F.to_date(F.col(\"date\"), \"yyyy-MM-dd\"))\n", "bostonfeatures_pd = bostonfeatures.toPandas()" ] }, { "cell_type": "code", "execution_count": 7, "id": "81617b39-4ebb-43a1-b703-43703a2b4578", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAADh0ElEQVR4nOydd5zUZP7HP8nMbF+W3qQrVaqCgAUL2MVez949u96dd9xZ7mdDPc9esPd2KvZeEBURBERpItL7UnfZNi35/ZGdyZPkeVKm7ZTv+/VSZtI3mTz55FslVVVVEARBEARBEAWD3NIHQBAEQRAEQWQWEoAEQRAEQRAFBglAgiAIgiCIAoMEIEEQBEEQRIFBApAgCIIgCKLAIAFIEARBEARRYJAAJAiCIAiCKDBIABIEQRAEQRQYJAAJgiAIgiAKDBKABEEQBEEQBQYJQIIgCIIgiAKDBCBBEARBEESBQQKQIAiCIAiiwCABSBAEQRAEUWCQACQIgiAIgigwSAASBEEQBEEUGCQACYIgCIIgCgwSgARBEARBEAUGCUCCIAiCIIgCgwQgQRAEQRBEgUECkCAIgiAIosAgAUgQBEEQBFFgkAAkCIIgCIIoMEgAEgRBEARBFBgkAAmCIAiCIAoMEoAEQRAEQRAFBglAgiAIgiCIAoMEIEEQBEEQRIFBApAgCIIgCKLAIAFIEARBEARRYJAAJAiCIAiCKDBIABIEQRAEQRQYJAAJgiAIgiAKDBKABEEQBEEQBQYJQIIgCIIgiAKDBCBBEARBEESBQQKQIAiCIAiiwCABSBAEQRAEUWCQACQIgiAIgigwSAASBEEQBEEUGCQACYIgCIIgCgwSgARBEARBEAUGCUCCIAiCIIgCgwQgQRAEQRBEgUECkCAIgiAIosAgAUgQBEEQBFFgkAAkCIIgCIIoMEgAEgRBEARBFBgkAAmCIAiCIAoMEoAEQRAEQRAFBglAgiAIgiCIAoMEIEEQBEEQRIFBApAgCIIgCKLAIAFIEARBEARRYJAAJAiCIAiCKDBIABIEQRAEQRQY/pY+gFxGURRs2LABlZWVkCSppQ+HIAiCIAgXqKqKXbt2oWvXrpDlwrSFkQBMgg0bNqB79+4tfRgEQRAEQSTA2rVr0a1bt5Y+jBaBBGASVFZWAtB+QK1atWrhoyEIgiAIwg21tbXo3r17/DleiJAATIKY27dVq1YkAAmCIAgixyjk8K3CdHwTBEEQBEEUMCQACYIgCIIgCoycFIDffvstJk6ciK5du0KSJLz77ruG+aqq4uabb0aXLl1QWlqKCRMmYNmyZYZltm/fjjPPPBOtWrVC69atceGFF6Kuri6DfwVBEARBEETLkJMCsL6+HsOGDcOjjz7KnX/PPffgoYcewpQpUzBr1iyUl5fj8MMPR1NTU3yZM888E4sWLcIXX3yBDz/8EN9++y0uueSSTP0JBEEQBEEQLYakqqra0geRDJIk4Z133sHxxx8PQLP+de3aFX/5y1/w17/+FQBQU1ODTp064fnnn8fpp5+OJUuWYNCgQfjpp58wcuRIAMCnn36Ko446CuvWrUPXrl1d7bu2thZVVVWoqamhJBCCIAiCyBHo+Z2jFkA7Vq5ciU2bNmHChAnxaVVVVRg9ejRmzpwJAJg5cyZat24dF38AMGHCBMiyjFmzZgm3HQwGUVtba/iPIAiCIAgi18g7Abhp0yYAQKdOnQzTO3XqFJ+3adMmdOzY0TDf7/ejbdu28WV4TJ48GVVVVfH/qAg0QRAEQRC5SN4JwHQyadIk1NTUxP9bu3ZtSx8SQRAEQRCEZ/JOAHbu3BkAsHnzZsP0zZs3x+d17twZ1dXVhvmRSATbt2+PL8OjuLg4XvSZij8TBEEQBJGr5J0A7N27Nzp37oyvvvoqPq22thazZs3C2LFjAQBjx47Fzp07MXfu3PgyX3/9NRRFwejRozN+zARBEARBEJkkJ1vB1dXV4Y8//oh/X7lyJebPn4+2bduiR48euPbaa3H77bejb9++6N27N2666SZ07do1nik8cOBAHHHEEbj44osxZcoUhMNhXHnllTj99NNdZwATBEEQBEHkKjkpAOfMmYODDz44/v36668HAJx77rl4/vnnccMNN6C+vh6XXHIJdu7cif333x+ffvopSkpK4uu88soruPLKKzF+/HjIsoyTTjoJDz30UMb/FoIgCIIgiEyT83UAWxKqI0QQBFGAhJuA6XcD/Y8Euu/T0kdDJAA9v/MwBpAgCIIg0soPDwPf3wc8c2hLHwlBJAwJQIIgCILwwtalLX0EBJE0JAAJgiBamj++Al45Fajd0NJHQrhBokcnkfvQr5ggCKKleflEYNlnwAfXtPSREG4gAUjkAfQrJgiCyBa2LmvpIyBcIekflSjw/f3AGnEfeYLIRkgAEplnxTfAK6cAO1a39JEQRHYRaWrpIyDcwFoAF78LfPlv4NnDgHBjSx0RQXiGBCCReV48Dlj2OfDx31r6SAgeuzYDkWBLH0VhQgIiN5AYC2DdFv3zs0cAipL54yGIBCABSLQcdZudlyEyR6hec0H+tx/w8kktfTSFiexr6SMg3MBaAFt10T9vnA9UL8744RBEIuRkJxAiTyiubOkjIGIseAt4+0Kg0xDt+6rvgFADUFTWssdVaPhLE19XVY2WKSJ9sAJQNj1Go2Q9J3IDsgASLYe/xHkZIjO8faH27+YF+jRyR2aeQIL3xJIPgXt6A398mdrjIfiwAlCJGOdRcy0iRyABSLQc0SDwwkTgs3+19JEQvLIW0VDmjyPfCdYBmxeJ55utSSJUFdj4KxBpvkZvnAk07iDXfaZg75ewKXFHpRhAIjcgAUi0HCu/1f6b+UhLHwkRKLdOU8KZP45855WTgcf31X73PNzWl5v9FPDEAcA7l6bu2IjEMGdukwAkcgQSgERmUaL86ea3aCKzFHEEYJQEYMpZM1P7d/aT/PluBeCMB7R/F01N+pCIRGDcvGZLOQlAIkcgAUhkFlZUSEzGY9POjB8KwRDgJB9EQ0A0AiycCjTuzPgh5TX1W/XPhpgxl0kcFD/bsqgkAInchwQgkVkMgyUziDbuyPihEAy+Iuu0aEgrcvvW+cBDIzJ+SHkNa+ljBQObxfvtvcC7V/CTCniCncgc7DUz18ykJBAiRyABSGQW1gLIDqLBuswfC6HDFYARYPUM7XPjdnIJJwsb/sDW+2OnswLw69uA+S8D6+ZYt0UWwJZl1yb9M1kAiRyFBCCRfr6/H3jyIKCpRpxZyk5f9gXw6Bhg/byMHB4BwBewTouGgFa76d+pdV9yBHfpnw0WwCh/eoxwg3UaT7ATmUFVgfWMKLdYAEkAErkBCUAi/Xz5b2DDz1rmohsB+MrJwJYlwMsnZuTwCAD+Yuu02vXG61JfnbnjyUdYocBa/RQHAciDOoa0HDXrgHqm/dvvnxrnkwAkcgTqBEJkDiUidiPyplNcYObg1Z+LFYeOQS7g5GA7RITq9c+sBZCbBMKJKWNdxdR7NrOYE9bMrd8oBpDIEcgCSGQO2W9jARS0T9q6LH3HQ+i4sVqQAEyOCPPbZ926iVgA2eUi1LEloziVrCILIJEjkAAkMocv4M4FzDL97vQdTyFRt0VzwTfV8Oe76fpBnUGSg33JYd3Boizg+HyeRYlZjlr2ZZYPr3VYQNWssmQJJLIcEoBE5pAD3lzAgLhwNOGN104DPv4r8N6V/PlurHskAJPDEAPI9I9lf+Mi0bBzrbEWI+s2Zq2JlBySfjYvtJ8fDQFT9qcYZiLrIQFIZA5fQGyBMmfSxTA3WicSY/1c7d8l7/PnuxHa5AJODlZAs79rQwwgRwA2bAMeGAw8MEQXiKxQZC2APk4yD5E4P78MPDbWWwb8tuVA9SJg+dfGzG+CyDJIABKZo2E78IqgWb3IukTxNBnChbtKFKdJuIN9yWHFNCu+Ny8GPrgW2LRAn7Z9pfZvsBbYsRLY+Cuw6jt9flOt/plXzocwUlcNrJ3tbtn3rtCSPD7+m/vts9egZr23YyOIDEJZwER6YTMUv7lTvJzQBWxjAVz9A7B5ETDqIn7sFOEeN/FK5AJODjcWwHA9MPc5Y5kRVlAEdwFPjDNul82WJxewM//tr71Ynvcx0Gs/d+t4aVXJjmV1m4COAzwdHkFkChKARHpRXLoNReLCzjX53JHav237AHuM93ZchAk3ApBcwEkhEoC83/hvH+qfWSs4zyLeuF3/TALQmdg5XP6VewHo5eWHvbaUoENkMeQCJtKL24FT6AJ2EZu2fYX74yH4uCoDQxbAhIhlhIqSQJzOvZMAbNhuP5/g4yXBzMvLj1kAfvw34JO/u1+fIDIECUAivUSSFIBuBmly/yZOqB6Y8SBQu8F52WhIi03bvNh5WUIjGgYeGwO8dobxtyyKAeTBuud5rnpDUWkSgK6xe7lUVeCNs/Xv7PjUZbj9dtlrW7MWmP0kMGuKMYubILIAEoBEeknEAigzMU+uHmgkAC2s/gFY+Z3zcq+eBnxxs5Zg4MTi97XyFo+PBVbNSP4YC4F1c4CtS4HfPzFZ8qLAxl+Ah/cGFr3jsBFWAHLuh1Cd/XyCj10Hlc0LjRnzorqN3O0yAvDr2/XPZEEnsgwSgER6cS0AmUGTbUtGFkDvRIJafOQLxxgzRHmsciESY2ycr3/+ZnJCh1Zw1KzTP5sTmt6/Gtj2BzD9LvttsIKDdz+wdQDdhEwQGnbnynye2fFJJABLWjcvy1znqKD7C0FkASQAifTiVgCyb9heA9ndts8qFNhzXrM2PfvwkhVZyEy9SP8cMbUQcyvWWMHBu5/YRAOyALrH7uVS9hm/syWQROuVd2ieL4gXpIQQIsugJyeRXhJxAfsYC6BI3BkGYbIACnn1tPRsl9pcOROsM343C4Cydu62w4o6nohYP4+/LGGPnQA3jzsxC6CqiteLeS5ECSNkASSyDBKARGLUVYu7d7Ak5AJmYgBlwU+UXZ5cwEZYEZAuCyAJQGfqNhu/R0ziLVDmbjuGrh8cEVG9SP9sF9dGGLGzAFoEYEjrCvLf/sDW3/nrxAQgWQA1VBWY85xWuJzISkgAEt7ZsRq4ty/wyEjnZd2WTzBYANluBgJxZxhkSQAaMD/Y2DIhALDy2+T3QZYmZ9hizgAQNrmA/S7btrHCwexGNkPXxT2eYgBDWlcQs6hniXkuooLi9YUmAJd+DHx4LfDEAS19JIQAEoCEd/74Qvt35xrnZd1YCQFTFrALFzBZAMWYRQDbKQIAvn8g9fsgrJiTPswCwG3s6o+P6p+dLOp0XdxjZy01i0M35zXmuSALoAbVZ816SAAS3vHScN6tC3jdT1oP1LotRgugUAAy26WHnhHz+TC7axtNFsFU7IOwYrYimV3Abl+O7LZphrKA3bN5IfDBNfwamHYtKEU4xQAmss1cprSt/plCE7ISagVHeMet6wpwX2akbrPWA7VuMwwuXZF1z1BIt8AGVifMIkFkEdyxOomdUAygI2YxZnYBJ1IXzlEA0oPWNZt+1f7bMB+4dLpxXiKCJeYCFo1HhTZOlbbRPzftBMraChclWgayABLe+OJmYOrF+ne7ZIDGncD393vb/uoZRtH3x5fAo2P0OLbY/gx9VcnqYcAiAkzXaMcq7d9pdya/D0oGEWO+DuYEjkR6KztZ+KIhYOFU79stZNj6ljGSsQCK1i20XtqsJ8cpdpVoEUgAEt6Y8aDxO29QC9YBMx8D/rO79+031RrfHAFgyxLg2/8AwV3Aw3sBH/3FOMgW2sDqhJv4pVXfa+c14X0owJpZWjLQgrcS304+Y7YimX+nifxu3QiTt873vl3CSCKudHIBG3FqYchj5XfAR381tjck0ga5gInkiDQBflPh5q9uBWY/keAGVf7Nv2MVsOhdLbB4+wpg7/P0eYU2sDrhFAMIAM8fndw+omHgjTO1TNe3LwSGnJzc9vIR83Uw/05FyQJ2eLV2v38V0FQDnPICJUt5EdwJWQBjSSAiF3Chvaiqgs82vHCM9m/NOuCM1+g3m2ZIABLJEWkC0Mo4zUt7MR6bOHWjdm0ydggxuIALbWB1wCIS0uCmjYbI9e6E2YpkFgbpcAEb9hcF5r2ofd6+AmiXgEU+X1CiwAND3WdeJ/Lb9jlZAAvsfjH0vvY4Bv3+CTD7KWD0Jak9JsIAuYCJ5ODFdhSVp34/4UYgUKp/NySBFNjA6oTFApiGxIBoyNouizBi/l2aX1QScgF7FIAxCj05pK4a2LUBqF3nvGw0ktiY4lQIutBCVZKND/7uv6k5DkIICUAiOSKMJS4a0dy0oTS0PNqyBPjldf17U43+mQSgETcu4GSJhgGJBKAt5utgLhCcbhcwhUboyC6dXT+/Akzuptc6TWQfouzuQrseht+/YAxa9iWwRdBZJZpAmSTCEyQAieRgb/IfHwXePNfYmorH4JOM3/0l7va19CP9M1vcuNCtGyyqahQJviLgq/9L/X7IAuiMows4kTIwHkREoQkOW1y8BP30DPDe5Vq9xtlPet9F7IVIJNILLlTFIQlkw8/AKycBj47ir55InUzCExQDSCQJc2P/9pF4MZYxVwAL39a/F5V7LxNgEIBkAQSglcp5YhzQbg99WjSkldJJNUrEfTxVoWJ+6JkFWSKdEtz+1t88D1g72/v28xU3Yvij65PbR+x+ELl6RS3i8hUnC+DmxfbrkwBMOyQAieQwBPq6sMQdc781s8utBZCFzRQmC6DGnGeAmrXaf5mAzrs9lhjAFAgAt9tY9E7y+8on0h0mcvhkoLpZ0IgsfYVmkXUKPQkw476iALLphZJe7NMOvcITyeFVAI68IDUCkApBW3Eb55Qq6Lzb41QGJhESbalV6GLd6dxXe6yJ2b6fXvYFAMZe7mwBZIXhwqnAa2doxfLzFacsYD+T1BesTf/xEBZIABLJwd7krgWBSQCy2b1uYd0DvLIxhUgqkjLK2gFVPdwtS2/oYhQFWPa5cVoqskATFZGFLtad/v7Hxnjb3p4nWlubxWJi3ZSBeet8YOnHwDd3edtvTuFQB5A1BJAAbBFIABLJYaj27tLKYI4dS8QCyArAFd9oZWIKmZ+eBr64KfntXPgFcN4H7pZlrzdV7jfy6xvAIlNLtlRYABMV3YUu1lP99/v8wJ/+B3QZBpz9rjYtngUsiF3jCcPa9ak9rmzCqRMI68Wh8aNFIAFIJIcSBlb/oN3AbsuNpMQFbBpkg3Xet5FPfPSX1G3LV+S8DGAUgHd2BbYtT90x5Dq/f2Kdlgor3E9PJ7ZewVsAUxx/J/uBrsOBS78Fdj9YmyY5WQA50/O5R67T88BQQqzQMqSzAxKARHL88DDw3JHAq6d5iDMyu4ATsQCaS2ikodZdISLJxtgmO9hMbEAro0Fo+DlhDS2ZBEACMLXb48XbxlzAouzVOc8C6+cap+W158JhTDbEcRdYgkyWQAKQSI5YtuGq7xJ3Abu1OLGYLYCFHuSeKiQJ8LkUgGbMWXyFDO+lpiUfcmq0sK3kmRDAMQFo525+8zzj97y2ADokgbBjOAnAFiFvR+xoNIqbbroJvXv3RmlpKXbffXfcdtttUJkfoqqquPnmm9GlSxeUlpZiwoQJWLZsWQsedY4jEmHd9jF+N7uAExEc5oGTBGCKkBIT5AB1BmHhWgBb0M31zqXA5N2ALUtb7hhaklQLQJ6gcfP7b9hu/J7XAtAhCYR1+5ILuEXIWwF499134/HHH8cjjzyCJUuW4O6778Y999yDhx9+OL7MPffcg4ceeghTpkzBrFmzUF5ejsMPPxxNTXl8U6YTngjjFAveUGOy3pVUed+X2QW8fJr3bRBWJDlxAci6xcJNwI7VqTmmXIRnAWzJQsCxotMzHmq5Y2hJkrUwHfwv43feWOemDFPIZIUN5/GzxskCyLrKC65LSnaQtwLwhx9+wHHHHYejjz4avXr1wsknn4zDDjsMs2dr1fFVVcUDDzyAG2+8EccddxyGDh2KF198ERs2bMC7777bsgefq/BcH5wb/7KX5+lf2vYBStt435fZBfze5d63QWiwIl2SEm/xxj4Anz0ceHAosG6uePl8hpfYlA1urkTaz+UDSWcBm7wWXAGYwH2TDb+JtOEhBlD0clRXrSWXmS2nRErIWwG477774quvvsLvv2uNpn/55Rd8//33OPLIIwEAK1euxKZNmzBhwoT4OlVVVRg9ejRmzpzJ3WYwGERtba3hP4KB64ZVYR4I6kLMYFxcmVhLMWoTlDoMYkWyuuhZugwTz2MfgBvna//+8moyR5bDcM5hNjzsRSVK8p1kz73lcnLEjVsBWChixqkVHDt/hcCDM/1u4OG9gFlPpPTQCI28FYD/+Mc/cPrpp2PAgAEIBAIYMWIErr32Wpx55pkAgE2bNgEAOnXqZFivU6dO8XlmJk+ejKqqqvh/3bt3T+8fkWu4LAOjsKOpHCAB2NIUVeifHa+FjTjkCcdCvU68l6FsEICW7PkCIelz78IC6DYG9p7eSR5LjuBUB5CNy5z5iCBRpNk1nOkuRwVC3grA//3vf3jllVfw6quvYt68eXjhhRdw77334oUXXkh4m5MmTUJNTU38v7VrM9RzNVtwCnx2mYihsoOpL0EBuLOA48tSTVGZ/tnO+uc0P+bGmf0UM61ABQfX/ZUFpYoK9Xok2kIvhvl3zxsLEw2dyFsckkDMbnleIkhMJPpIAKaDvD2rf/vb3+JWQAAYMmQIVq9ejcmTJ+Pcc89F586dAQCbN29Gly5d4utt3rwZw4cP526zuLgYxcXFaT/2rEU06EWbb1KRADStZxCAsj8xAdiwTbwfJxFDGGEtgLFrs/d5wNJPgLrNxmXtrlU0qD1oP/6rPq1QLYDZSiL3Wj6QAQvgb9WNGJDkXvIKJ4OAOTOblxEdu25kAUwLeTsaNDQ0QDbVJfP5fFCa3wR79+6Nzp0746uvvorPr62txaxZszB27NiMHmvuwBOAzI3psq2RYrYA2rkVvfDKycCU/Vs22zIXCbAWwOZ7ZuKDwOU/cha2uVaRIFBjsooXqsXJbVecTEMCMCXsagxiV5PRYvX6nETaumXp7yQVOLmAzRZA3ssiCcC0krejwcSJE3HHHXfgo48+wqpVq/DOO+/gvvvuwwknnAAAkCQJ1157LW6//Xa8//77WLBgAc455xx07doVxx9/fMsefLaScNyL+eZPQQwgjz++BDYvBDb8nJrtFQoBpmadZLLOmrG7Vqpi7Q5SsBbALH2wF6p1PNksYNN5e27GCoy640t986qK1lIBF9rm4ZQE4soCSDGA6SRvz+rDDz+Mm266CZdffjmqq6vRtWtXXHrppbj55pvjy9xwww2or6/HJZdcgp07d2L//ffHp59+ipKSBFqTFQIpintR1BTEANoRyef2SmmAtQCa3fNm7ASEqsAy0JMFMLso1ILpSV8P4+/+zeiBaGLO5a5gBDIK9Ny6wXz+VdXqMeKNFTGRSAIwLeTtWa2srMQDDzyABx54QLiMJEm49dZbceutt2buwHKZRGtfOcYAptgqkc/FVdMBG2AtSZg09VcEIwruO3GQdVk7sa5Erb+RSBCoWQd8fTsw5s/2ZWTyiiwVgAXbcSF11+Ojo3/C2reNHaO214UQQIH3WzZj97LxzV16G9EYFAOYcfLWBUykgUSr35s3Y17fICpSIAbz3QK48Rdg6aep2x5z/utDCl6bvRZT563HpjqPcVPzXgTevtg4LRrUpv3yGvDEuBQcbI6QrZY2ssgmBvOSGvSVWWav39mIIiQZZxisA+a/lj91Au1awU2/y7o8TwBSGZi0QgKQ8ECC/S9N6ynsz87sAk5FKYV8twA+MQ547TRNCKYC5vxHFP1aKTwxbidslDCwfblxWiQIbC3A/rM7VrX0EfAp1JjMFLqAo8w9Eustv2Z7A4qQgHWVPa5PbgDevQx45ZSEjzKrcGoFZ4aSQDIOCUDCPSlyAdeBSTqIBI0uYLfFVO0INyS/jVxg3U/Jb6Oqu0EAhqL6tWIfdHF4v4EOA8XbjwRTc02zhWmTgZdOcHalmt1baeKy0LXeVijUTiBuXMCturnaEntfhJvvl9rGcPIWwIVva/+un5PcdrIGhzqAZrguYKoDmE5IABLu4abyu7ixTTF+DWCSbBq2mXrRJviTLGunfy4UK0f91hRsRAJr3QgyYUyhqAL0P1rr1xzDnLkH2A/O4Yb8enuffhew/GtgyQctfSQAgCVqD/HMcX+zTmPvDUUBpv8HWC5ow5VPuBmnhp0mnseMYRGDANReiJrCCoqkJOMr5YD9fCUKzHgQ+O2j5PaTKbxaXe265+TTGJJFkAAk3JNoe6vSNuJ59VtMAjDBGEBeYeh8x1xyJREkGM5/MKpf41BEAc541VgP0GscaHBXfg7eIZuSHxlMtOC66WMcciOw5wnGaaF6/fNvHwDTbgdeOj4tx5ZduHlRtbNU813AkWYLYFMkiiciExM9OA0nK9f8V4EvbgbePD97s8xZvLqAue3iKAYwnZAAJDzgopgnj1ZdxfO2LS/c4rRJk4rsaclw/uua9OsZimgDuOrU7s9XJN58uCFldb6zCjuR11SbscNQnU6u+cHZVKN/3rkm9QeUrbhJyln6iXge82IaZl6SHvjqdwBAUziK3+yssW5wEjn11dq/0WCKrP/pxqMLmHoBZxx68hLusbtB7RhzhfZvvyPjk+4Mn6F9OPq/qReAhVLsNpG/89hHrNtgtnPqU7Pjn4PNAvCaN37Vl+f9BuwEIJCfSTlmy3dTDbBhvvY5WGNZPH049W42WbVCdfo9m0+xmU64sUDteRx/+t7nQ2QBfG7GKjSGovF75azQJOv6R95jd2D6RycXMDtOPjEOWDfXfvmWxrMFkGNMIBdwWiEBSLiH6wJ2YQHsNAj42wrgtJfjk56MHoMzWr0I7HU20KZ3Cg+ykPAoAHuPAwaZH3KSUIDHLIDv/7qRmcoTgA4PrnAeluUxv/g8NhZ48kAtPnDTgowdhuNzlZektXqGdV6+lB4R4kKADD/TOm3IqZqAY+JgI6bkqFBUQVNYGwe/V4Zg4+6nAJ0G6wt02tPdITq5gNmXjl0bgKcPcbfdlsKrm5pXoogsgGmFBCChs2G+9ma5/Gv+fG6MhsvMt/J2pgFOwg65OTaw76HAYbcD57wvXr/Vbvzp42/mTMxjCyB7DbxaACXZKvZMFkDWpRiKcsS9VxcwAIR22c+v3wr87xzg3Styp4+z+WEV62qw+D0trEEEKwy8csz9luunOA3hPHH/xjma9Yidd09v4Jc3Ej+2bMeNGPFzOkD1PgDwFwH9Do+PUZGocVvhqIJgWL8vftvnTuCSb+y3y8NJ5OTKvRGDjTd1I8D/d451GsUAphUSgITOW+drteVeOoE/n/fwT6LHZlRRcdLjP+Dm9xcB+14F9DnQZmFBAVuu2yQHAqQTJakCwzxrnzELmE0quOD5OfhqyWbn/fMsgJ2HGDOz7Xh6vCac5r8MzH3O3TotjejFJxqxfylKNNzhnxuBkRdYfu+Ov3TegzNYo1mPzKLonUuAXZsSO76sx8WYwDtXsWmSFB+joorxHrjtw8Wo3qWHOaiqanSvu73mTi9Sbl+2s4Xv7tU/JzokR8kFnE5IABI6olitnWubHxZJWAA5LKuuw9zVO/DizNXOC4v24+R+zDdYl7skAatnAs8eKV6eRZKtLkHJKArNSQUXvmCqSeY2C1iSAV+xu+NiiyZv+lW4WFYRDWl121Z+a5yuhG3vCTVRARj7nfvMAlDC8uE3IKia7gN/c61NuzqdvI45+ZpN78YCyBtLOHGSYZML+L35G/DTKj0jX1FgtM67LW7vWAYmxwSggQQVYO067V+ZpEo6oLNK6PAsNrOeAB4YDHx+o8ACmOqWVwK3psj9UWhvhgaLqwS8cjKw5gd360oCC6CNALTun3O9uaJG0lxnXmlJC5SqAj88oolqJ7b+Drx1AfCCqfSHErFNjKppSvR+ab4uJjGhQsLqARdhaPAp4+KH39G8mo34mPGgdVq+topzM07xBBhHvHELpDMoqmoUgGXtgfM+5i8cqgd+fgXYsdoocj76C2fDOSwAk27FR1IlHdBZJTSql/AH/8/+qf0785GEb+J3fl7nOGg6oggeqjwBmK19WFOB2QJoV4/OjKsYQA/7Z7fLm+bWAsjSkkW8F78HfP4v4LkjnJetZRJj2Psiam8BrGlKMGQido5Nv3cVwLzVOxEEI7Y7DNDcxYC99Yln7cvHjG0Azr9siX+uONPYMjC2ezrrbeCU54Gq3cSeioZtwHuXA6+dAcPL709PW5fNZQGYLCQA0wKdVUJz8T42ht+z1akGnAuue+MX/O0trW/t1HnruMuoTuJSZFXhDay5UCQ1UVgLoCQDxa08rCywADLnS3UaErgWQM6DU5KdY5p4tORDbtsf7pdlzyMrWh0EYDBhA2DMAmgWgDIemWY67tY99eW91iQ0BO7nEU5jgi/AT6rivGA6vczGx7I9JuiFuJ0ETPUiWESqKdYwkwXGU0+yFsACKlmUQUgAEsDmheJ57MCVhGVt6jwtS/L6//3CnR8fVMOCB5Ao2YTntikUC6DXbGdJtj7kJMljIo8KtO9v3YZlXwm6gHPlIcdahtje0w4xgBElwQz1uAD0mATiNjwghlPGds7icKZE8Xe8GMCokwuYt50ErrvZ65HLFkByAWcldFYJ+0QKgwvE+038WvRgV8uZa2u5huviymcLICNuJcmb2OU+hCSrpcF2/ypw4WfAbnszm0ihC7glH3JeHtLs38zWOXSIAYwkW6KIEwMY37Xa/Ln3AfoCxZXetp+vLmA3FkAeXAug/f2i8PaViIAx3wu5LACTtgCSVEkHdFYJe1ddMhbAvy3HZPnS+NcPftkgXNQ2rsZSvJiB6wLOcgugomhJNQunJrAuY61TVY8C0Hq7q5KEBWs9FAFWFa23M9PVRSgAeRZApwexKNYzI3gQZ+zfEWFEk0MZmGiiFsAYpt97CfS43XGhB/CX0GXA6Mv0Bby6zlr0/LcgQgFo/W2b6wCa4f/EmesuqgsYMcVgm18kcloAJonbTGrCEyQACXtLDWsV8WrGL2+P0mJ9YL3qtZ+Fi5rdKjVqmf4lUC7eB9cFnAEL4Lo5wNrZzsvxWPYZ8MPDWt1Fr7DuWlVJWuzWNkXwR7WH1mWx/fmZ34wXC+Azh9lfHzedZdKFFwsge94/v1H/7OQCVpO1ABotUtugx4CuUzvgbWWcUcx4zeot1CxgkQuYYwF08lY4WgCLKvgrBk3ud/O9kMsCkFzAWQmdVYL/9htzcxiSQGxu4mFncFu6tS135wZ85GtjIHutyog+Oxe1WwtgqB4IesiYtSPcqBUvfubQxILmk6m1ZngoeLUAWsVHY1iBD15cwC4FICT+tVk329jI3mzlaNEYwAQF4FKmxIdibwG0CMDD73S1u//7YBGOefg7KMz9OKzpSWP2bzO3vMfE9HrNqs61bhMxlk8DXjlVS2jj4egCbhZ6Jz1jnM6xoEYcXMDmXSmKilo2+1vkljfXZTRbY3MlPpaL6aSwwrqkynn1QunvnmFIABL8UirxFjwuYwDrNgNXWy18FcXuTPfPzlhp+F4LxgJo56Lm1gE0HWckCPynr5bpnAoLE/umnkif20SyY2MkYQGctXIH/jfH+ICMKCrkRAQg+zfw3DOm8jIGatbon83nL1dckMLzLtnHAJoF4NgrXO3uuRmrsHB9LTYFusen1YBvSXqBLazuWQDmqAXwpeM1y/r7VwkWcBCAMaHXbZRxOs8C6JgEYpx/yUtzcPKTs/QJxQILoNkFbIkBbEHreLKYVTErrIvdCEByAacDEoAEn9iDgLXu2Lkg+h7OfeA7ZcxZmPB/aJLLcEP4En2aVwFofjivm6NlF9esNWZsJgr7gE8kNiWZ7iVJxABuqldww1vGThsqpAQtgEwck8gFLBq06xkLaMSUdJArLmCRoJCklLuAVVn//S/Z62ZU9z4epwZvcrdyp0HedpYrAlxEDb/MlKMFMHYfm34DqiTj5vcW4qUfdVHt7AIG5qzajse++QOKouLLJdWGFovC0k3me8ESA5jj14aFHTNKW3tbnkgZdFYJvoiIDT7sQ9zOmjD0VO3fY+7X/j1K6wPp5C6xsP+1+Ge/D7FI7aVPsysnwhNg5vG5dj0zLwXxgYYHfAKuCVbQej0e9lqpiqf1w7CK5XBU9SwAd9SHEGVjpkQCUCSOWSumWZDnigvYTqjaCMCwxySQb6LDMO14PdZUruiAfZacitnqQHcbmPiQp/3lrAs4juh+cLIAysZ/m/llQz1enLkaN72ru9UdC0GrKk6eMhP3fLoUL8xc1bx35rpXduGv6FT2JddiACs6M19M5z/Q3Kqw5/5Aq92ct0UCMC3QWSXAHRzjApD5idi5h2JWrZEXADesBPa5GICzu4R7NJIPxqy5UvHCvIHBLGgN31MtABPYHisAvQoeswXQw/5DqlWQ1YeinlzAUUXBiNu+wH++YtyM3ELQvKLTzbB/QzaVHUk0CcQwXbW9pgpnyK3pfyr32gBakseOsC62S/weLc6Vnbwtz97jq2YAH1wDNHlIEspWnF6U4r9V429gJ6dzS1PY3krN7ur/PlgMwHTdu420P5b4zk090nMtBtDwsmo+/83fj7nPnbijLOC0QAKQ4A+OPBew2UXBwi5X1lZfJYH6fj7Z9CAusskC5lptTPu0HYgSgBWAiWyPdVtHPcZomWMAPcCzAHp1AUci2t8+o5oRsdxC0DYuYPb8mQPfcybY2y6T2aYMDOf3uvaA/2BI8BmsUTpYN6VK2NmoP/gTOj3HPaplnh58o/OyrBXq+aOAuc8DX92WwE5biG1/8LufON0rEt8FzLPYNjYLwFYl/D7kvCxggwu4dU/7Y4nx8kmmjeRYDKDdi3f8HNnECrOQBTAt0FklwLcANgtAtg6WnQtY8LCPOLhLYnSp0mPKLANoURmEtIQFMNk3cVYAmgO/nVBSLwA3q21cb0Nq3udytas+kRej6doFnEUWwESzgA2bkGwt5eZWe6GIgm0NYQRRxN27Ahk1jABMqKf2iLOAf6wBdndRlJ33297wM/DoGOCLW7zvuyWY8wxnYmIu4KXr9Yz12LlvCGm/36oyfiwv7xIZBGDb3kCnwfbHw91wDlsArTO1f+ySxVhIAKYFOqsEf2zkuYBtBSD/p+TWAti2XBMR63c2YleTyYIiqpsl2q+dAMwGC6DBrZ45C2CEKwCBuyOn45PoKJwf+lt8+lPnjMSQ3azZeUWKZrFrQAlw/ifAOe/p8TwGbFzAq74Hnj4U2PhLdsU1OT2I2Gttd93NlvJKXSxH2SHXX4KjHvoO5z47u3n3fMtRHXM/uBWAink52efOjcYTgOvnAFuWADMecLXvFof9G9bO1n5r6+farxO/9sbfwIwlesZ6OKpgzbaG+PWoLBYJQOs1Mgj/onLg6P/aH08MNiYzm+4VN9iNu/GvNuMECwnAtEBntdBpqgUW/M86Pe4CZpNAbKw1goeL2xjARRtqMWX6cux319f4YvFm48yqbuIVuR5gGxdwKkg2BpBdx+6ccveduDUzBN41krADrfDn8HWYpoyITz10UCdcPb5v/PuNYa1o9Rdd9M4u6Lkv0OcgvhiSZPGgPedZrR7gi8dzrk1LuoBTJQCbRf2E/wMOvRXY+7z4LAUSvo4OBwCEx/0Df1Tb16ZUISVkAYzyjk9U7NiwYo6WgWFhf3fPHan91ha/Z79OPAvY+JtdpOju2g9+2YBx/5mG6l3a9S0XlLjitgJmwizqUepe0Kz8Rv+cawLQcCYEMYCSBFf3PAnAtEBntdB5+yJg1hTr9CinDmAaLYAAcNcnvxm+Xx26Ap91OB/oMda44JH/Me73oH8a52e7BdDQRszjAzeZGEDVagFsUK2Fuq9pFn7Ffv2avhydgNNKn8TX7c+0bnjYadZpdi7gGI3bkRKXfMZgBaDNuY/dJ91HA/tdYzgPCmRcHb4S54QmYXX/CwyrScz216ntAQAfK6MTE4C85dyUH8o5kcGBDbFw+/fEXcC6GBkf/A9qmVqLj09fbliltMh4P/mbY5dVzphQyrTsG37XD1i82WU5KjYOMNcytO1emNjvZAFsMeisFjrLPuNP5yWB7BL38hW5zzyXgWF4X9kPn7Y/z7ptVlhIMtDTJBBjD9JQA7DgLVN3gFTHACYiAJlz4vWBm+IYwH9GLjR8v+zA3XHtBKsABCSsUzsgxItDb9ML+Mda4PDJzOKSu+Kt5r+hJZNAeG0PP78JuG8QUFdteqDZFIKOCcBYtxRmu1FVRh3K8AOGwhzpwArAI4J34ejgnfheGYLt9fqLl9sXKu5y3KLpJlo601RVgT++AmptxhonEskYjf1WmWu8QzV27DB7M0oD+v3x802H4ojBWtkTnvjepuq1/8LwY/Icj+NGJKS54VlE9QSzhVTGAFIWcFogAUjw4QnAr2/3vJlEysAYDsMymErGB5kkw+JCiA08398HvH2h9m98XioEIGO1S8i9zByDEgFmPQH89rF4ccOqqROAK7ochVWqsSZZ2/IApOYBuSRgHHQjiiKugVbSynRdXMb2pNo9nxSsAFS0F4gfHtLqSK74Bq4tgFGTAGS2G0sGUFTVItLYX3EdyuK1MOet2amvL/j9DuxiFANcC6AbAdjS1+P3z4CXTwTu49Q5bNgObPndeRtu/k4znN+q+QyaE9rKGAtg6zL9vuHdI9tQhdeHPI3Dg3cBABo5lndb5r1gnZbtosh1FjBZAFsKOqsEn3gSSGIWmYXra7BhZ2NSFkCAE8skyaYBnjOAzHhQq2H2x5ecLWaZC3jzQuCTG4DXz3C5b1YAetttyCQAo5yYQB+T9V0cMJ7XSFS1L4LL/lbcuIABzvnLEgugEjUWqZ56MVDNWGDcuIBj3VIkVgBq51RRtZqKht27uKAiC+BfDu1n+J6zAnDldPG8//YHHh0FbF1mvw3J5CFwQ3w58TUImV5m2RhASZIQq14VivDP4aaqYViq9gDQfB17j3N3bO9dCXz8V3fLZhNu6gC6fVEkAZgW6KwWKpEgsH2leH7cyuX9gbx2ewOOefh77HvX1xYL4Ng+7TxtKx5P0+cg7d+9z7NaAHki9fmj+C7IlFgAk3QBs+uEGJHB9hgWrpo6CyBPAPqZGozFpqLD4aiCTxZu0nevqlixpU7PODULQFcWwGyKATRZAM111969nPkiOO5wIxBsrkMXdwHr54EtB2Juk+hGAJpFY4zSIqu11oKbGMCWFoB2xMak5dPsl2NfPHwuLW2clxXVNPZtrdNd8SUBGaUmC7nc/PsPCgQgK8o9lfP5+SXBjCyvmenWAugG6gWcFkgAFirPHAY8NFw8P+4C9j7ILFivdw4wWywqOMVTu7URd/qID5SnvgSc9gpw+J2GwfqCF+fij+p6/spci0cKBEeySSXsOj7mGHdtti5rhn2wJ5kEEpWs50dmBGCJyQJYawpae+GHVTjkv9Nx8/vNbbJYwedaAGaR4DDEAEaNYhsAQkzGrqgo7+YF+mef1QXMloExW4rc3GlCD7xJjDQEo1iwrib+ArV2ewM+/20bb1Uj5r/ZMj/Ngt3N9sOm+928jkEA2rSRLGuvf45de2ZbZgHIUhrwWc55bBMiAciOhQvW16TgXGbTyxMHwzhpman9I0lanUknyAKYFuisFiob59vPj7s5OYPgwInAXucKV7VzEwZ81u0d2M/aASFGVNHevCOBCmDgMUCgxCDsVm9vxN2fCeKCuH2CUzFo2pU3cLM6sw5rTWzc4WLd1FkAI6r19rezAJqZ3Jy1/fKPazBn1XbTIC25dAFnkQBk4VkA2Wvl5nfkL8a7P6/HjBW68GJbgpnvk6QsgCYxcslLczDxke/x+k9aAtS/3l2I699ayFvViNPflQ3dKMKm7jHmY2KtRXZ9xC9gEuBiv12m61ATxOuWBnymJClAah4rn/x2BXedhIp45zJ2vyXWAujG85EzHYJyCxKABB87C2Cr3WzfyOwSPyTT9vbp3RZFfvG2fttUi5G3f4kznvpRn8gIQBUSmgRv3HwBkgUWQAgEoJtjMzzsVHhxA4VNLt9Gn7XAts8gAO2HB9bScfKUmfidtcTatYIzIIgNammUqFWcek3+8Rfj2jfm4+vftuibTVIAmt3GMcwu4N83a9bKSVMXYNXWenz7+xZuFrgFVdEyTkW/67R3o3BjATSVUDFn0rt1AbPW99hvtbgCOO9j/HbUmwjaCEC/T7ZYALfVG8tk9WpXhn1310Nekk2Is5Llosi2AxNjAXRTCYEEYFogAUjwsYsBlP2wG6jt3nSrSo1xSPvt3h5FPvHPcN0O7W3/p1WMdYwRgAokBHwCoZGuGEA1lRbAEH+6cF2TBdDDwBgTADeGz8cfpcMwu8tZlmX8LgUgT7T/ttkkABOxALakRdDgAlas7lDFo1iPux+tWcCANakgAOcH4fvz+eVRzBZAlvOe0zqNRN0M93Wbgbt7Am+ex5+fDXUCLRZAcz0d5lzIdn+zKWY1Rq/9sLP93raHsGZ7A04Z2R1dq0pwxj5aYkdD0Ph76VBZbLhPLHGZWRX/mmJUFcaseXMMYOxcSNnrBSgAEsiXJwqCD67REi54AkP22w5eYZvM3zam/plFfhnhqMf3EJMF0O+XAZ5nagUvWDzFLuBkLYBeu4oYrI+K9rBzOYDGBODL0UOxtevZ6CWXW5ZhLYB+G2HOy3SUDDGACZaByZaHgaqYuq7A5AJ2cZzN944qiAEMm85hgPsjNjJ71XbudDsBuGqbZjGLcDvBmIi1TFv8Ln9+uusEuooBNAlAs1A3JyOJsFnOjbWuqjSAGf84JO7VMJfoaV9RbIj7M8dDq3ZRhv4SF12CslhAirJ+zfMl2VVYwQe/bMDEYV0dlyO8QRZAwgHvFkC7wXOPjka3Y8Anebfu+0wWQL+H95issAAyD36vrbfMhaA9nDy2DExTJMqNJ2MFIABMOnIAztinu6vtS5YkkATKwGSTADQLC7YTjofjZK1+qiEL2CwAvVnXTh+lXxezC5hPCtxo2WABNAsjs4Bgr43tSwhzPkzWaruXWMMWmPvPfA06VBYbvBuKohos7LZjUa/9nXeezRZEx/uDdQE7C8DlW+xbJhKJQQKwEHH7Fi8aYBwsgLxaZS9esA9++MchOHbYbtirR+v49GK/bBEdjgR0y5UKGQGHWDUjKRaAyWYBe3YBm+IPbdZZovTAYqaXaVjVH1D1wQg3nsxvuhaXHrg77jh+iK2bPobEritJDu63ZrLJAsieS14MoOLNAhjLwBVaAM0CUPKWYFFRrAt6uzjalNLSnUIAqwi1fGfPo3hsMfz8PVoAnzpnpGVan/ZGi3qHimJceEDv+Pep89YbLYK9DhTvQND/fJPahvmWQwJQ2ApOcs48B+CjGMC0QAKwEHF0LTSjRPkWJh/f4hZVVJzw2Azc9uFiy7xx/Tqga+tS+GQJ/3fs4Pj0gE9GwIW4APQHKoormGmAX3A8go24X1a8EcHnBNZPJgmEZ6ViaEQRrg5fEf/OJgHUNIa5sZo+jmiTZQkdKl3UU2MfonIg91zAZve6nWXCxe8odn7ZJe1iAL2ys7EFxFg2WADN18V8TC4tgO//wsRTxty4zdfM3PWDdbHfePRAHDqok2V715mKcXeoLMZePdrg4mYRGDJts2HklcDEB4F+R1oPrsiaoAWYBGAW6z/n5C5vSSCyVyMB4QoSgIWI21IOahReXMB/VNfhZ6ZtlQhWYxT5ZW5pGB6XvTwXa7c3oB563UAF7gWkRhZkAYvKwHhOAlFtBVMJwmhQS+LfWQG4syGMBk5jX9GpLHPhYpQYN9pv1Q144ce1Nks3E/ubWzVbPLJFAK6ZaW+ZcHGcMX2tGpJAxHUAvWJu/5YReA/rSNA6LWFM90A0Yo3FVCLaPt+/Wuv1naALeDabWCb5MHf1Dgz7v8/xyqzVCJtejhrD+j6KBfGWrcuKDC9K7Su0zx0rS7jLh6SAFmfdtrd1pp//wmUo3p4t4RI8nCyAcdy5gMkAmB5IABYibgcOJeIpCcStG0pmthnwySgtcmfB+2zRZhxwzzQcPUUvHOqTot5cwCmPAUxkfVEMoFcLoP3AWYIgGqA/SFj3Y/WuIN6et86yjl/gthX1oGVhYwBnrtyJNTvcCIPm7cbEo3k/4SZr0H+6YPfdVONgAXQjAK0uYEUVu4B5nDqyG8b0aYs7ThhsmXfWmB648eiB+Pw6ly3F0sHPLwO3dwQWvp36bTfuAP7bD3jtdJN7PgKs+VHrj/v2hdq1YpnxoN5b20Y5GH7TkoyrX/sZu4IR/OudhRYLIEuJzXizZZf+m29XUWR7CPHrzxOpfr5oNCbyZLEJ0O7+MJx3cgG3JCQAc5kV04FP/u79AelFAIosgBxB4LbQKRvzF/DJOHHEbujfqdLdMQFY16D/bMsQRMCTCzgFb81pqwPoZlVmsHR4cy6RQmhkBKDfRZapKJlA1IOWRWLEYwQ+d2VHYucyltnNnltFAe7tC0zunpnYM3PdMleFbMXoLmB3MYA8DurfEa9fMhZnju5pmVfs9+GiA/qgn4d7x8LEB70tb/6732sOMXjrgsSPQUT1b0DDNmDZZ8DONfp0JWJ8cTILwO3L9d7aNhbAqGrMAmbrWtrFAIosgGZi10UU4xy//rxySYIOJuwLRG4lgYjipt0JO5kEYFogAZjLvHgsMGsKMPNRb+u5dQGLYgBlv+UGbwpH+f1HObDjYbFfRnmxH595sGJE4Iey20gsV7pghdoFAYeOFamnBesAstfOIXamBCEEwZbdcR5ESwTn0k1ZDNYCGIXPEO8mRDU9BNnfVbhB66urhIFdG523lSyWBJskLIB/+h/XAqgaYgCd75cebcu401+9eLTjuq7Y+zxvy2fS7ciOPWzxZyUqvoesGxHOMQxXss+QFR9M0AIYo2NlMcqbk3QcBSAvW15oAWQFYK66gE0WQBdQDGB6IAGYD7Bvx25wYXIHIBaKO1ZZbvBBN3+KTxducrVZsws4Edae8B4OC92DCPwt6wJO1gLoVUwaLGT2ArAUIQASpkSOwQfRMVikWq1IlnWK+OfSjVhhs4AjkG07KcSJnT/WArhtefNv2rulICnMAjAZF3Cb3nGBwf4VrAUwGDZu4+7w6QCAf4fPiU8zF06PTdt39/aW6cdmpE5amq1OonuLFXlKxHgcIgGoRC0WwCWKVrQZw/5ktIdLssHKHQyLr725AwiPLlW6gDN3P4oRipjCH1gELeyiOesCTnzMXKe2B+m/9EACMB+QPdbzTtYFXL3Esg1FBd4TdCl445Ixhu+sACwvTsx6d+C905nBsCWTQBJ4Czc85Dy6k1lRsuo720VnKwMAAHdF/oSrwldDJKIqS/Tfj+jhZhcTFcdkAaxRrYWmLZgtgJEm4OG9gAeGaC3J4tvOxBPAJMaTsQBKMqK8GEDmc22T0a39ePRY7N30OJ6PHhGf1rrMKgBLAvzf+wOnDRdaDGNsU5NwFwM2f3c6ro8gVCIaNh6HKAkl3GA5rOnKMNzU7z2oxz2KGX8wRbUl2RDCErRJ0HEjADu20gWgKH4teQugx7Es3ATUVXtbJ1FEx6aqwNzn9O+cc3Nh5zcN308K/tt7qTDCFSQA8wGf9SFhi2sXsCAJZJ9LwBNSNYKyFHv1bGP4zt7MrPhIFE/V07KhDIxQQHrMAhbwVnQcHoyciOvDf3Z1OKN6tY1/FnWUGNTVOeOUzXCNqDJq4EEA8h6CmXD78o4FcMywdrwOksRPAmHO0a4mqwV3G6oM39lafzFEAkSWJXR0KNdzYPB+w/eF62sESwqwqw2aath9sSJPibhzAYcaLBZABRLqfa0xZ81O49227iehBbBzK6MYEwlwALj0wD4oL/LhX0cNjE8TOTn0GEDOuUtHFvCjo7SY2h2rvK3nBSUKbF4sdgEv/Rj4+K/xyTWN1vuoTtJfUpaVDMFmtBVaUYnkIAGYD7gZfA1WpyTLwOwx3nCD79OkxSCKkkDMxYVZKoo9ilcOny3a7GHpFnIBz34K+PV/1ukiMR7cxU98cCHe1yodcH/kZIuYiPHhVXqXgeHdWxsefCJxce8pwxz3yxaa9m4B5PyGa9ZZl0snZjFud66droMkxWvKieoAfrHY/nf7yJ9GcB98dj2anSwldSiD4tPFxV/f/AWXhK7DcqWL7XpxRNchFQJQVbXMX32C/tEQK2sq0i0SgOF6iwBUm//b2RA2NmLb+ruhLE8T8/n1S8bg/tP037+dBXDSkQPxyy2HoRdTFFroAo4LQM71bN+fu44xscrjWBYLFVr2hbf1vPDJDcDjY4Fv/2Oa0XysW5cZpu5/zzS8GDmUt6ThMxkA0wMJwHzAafBtqgUeGgF8fIP23a1ocZkEUg3NwicqFWIeANl4sooUWAAVLz9jr25W7jY8Wu1q1mlvvVMvhqV7B88FvOV34L5BwPPHcPbtLADtsm+/+suBGLybURiyPWlFD7cuVaXc6QBwUP8OAIAIIwAjkN0JwHgZGM7vgLUAurVaJ4P5uti6gJ0EIN8F7CozuplOrfhuQDsB4ndRU1NlrK27miL4XBmFWyLnuTwq5hx9fYf+ORUC8JMbgIVvMbsSuYBdxgCGGmB+gY1dC7uXUgDYWqdZHK88eA/0al+ODhX6tXCyspp7aItdwM1/g9n6fciNQKc9uetEk3EBZ4Kfntb+nTXFOD1exN8YgqACuDVyNlYPvMQ4Mf5RO3dUBiY9kADMVaKM+8hp8F3wJrBjJTD7Ce27FxcwD0niWgLcjkcB5o23TPAwG8G0i3PC2zDIWXr1TGDjL9rnphrg/j2BqZe624abPzq4S/9sDmDf8LN1u/Ne0LJf1/5o3ZaLa2eXfct7eLGWWzsLkii+LJY5HJGMFsCd4HczMGBnAWQ71mTEAmi6ri6z2rlIsmMhaDtG9WqDkabQiRh2FkBX5TKYc10XjDQfl8sHbOw6qCrw7T3MNlOQiT/7SfPO9I9RGxdwqJ6/vV0bgQ3zTFuUoKoq/D7JMBI8FDnesNzUeesB6Od6VO82OKBve1w7oS9al7lIbmIQdUSMv3iZz93A44Qxr2wx94zcE4vfA969InXFvkuML58qJETgR7DraGaaQQECoDIw6YIEYK7CPhydBl/zw9XtwPHoPsDO1fx5HOHjplgwAPRoV4a/HNoPd5wwmJveXxrw4e9HDHB3jDA+YJ0XNh1j/VbguSOAJ8Zp8xa8pT04fn3d5TZc/M2sGyoaMp5/1soV2y5vsIvv03l/qs1tzcu6Vl1K6NcuGYMbjx5omR6zOhktgD7Ug2/BMu48NsJzjpn9jWeiBZmlDmASVkdJxvSlW7Qtqd4F4EUH9BG6Dm0tgC58ZYqkjwf1zQLQ9T0Uu15NO43TvcYhe9kXYMoCNiWBfPZP/vqvnGzdZPN/Plky/M1fR/fibiJ2rov9Prx04WhcO6Efdzk7ROJFGANoM54br1OCFkAvYup/5wDzX+aIc680H6upxV3s72GbCBhqfjf/S2Vg0gMJwFzF3BLMDnNGmZcHm6jEDEdEui0EDQBXje9rKW573YR+6NuxAjMnHYJ9mMQEALa9aF1bLwBYBk02K06JJBBP6UYAMgN6NGyzDscl9PtnWrHv+wdrx+pif3bnIyYQDuynuW3P27eX6wDr3VqX4qID+limx67Na3N1Mau5qtzUAbRxAYdZAZgJF7ApOScJC0tNUwT/fGeBtilmutvfqp2Qs48BdB7SF3c8SvvQda94/GdUdfkoiJ2Tui3G6W76PntG4AKOhJCo+NEsgNqLkKEmI/j3fbFNwodbRFb1eCiMWTxno7WLjcdNBMG4FZvK/snG12ttBum/9JDXAnD9+vU466yz0K5dO5SWlmLIkCGYM2dOfL6qqrj55pvRpUsXlJaWYsKECVi2bJnNFrMIw2uSQ5cENqNMcWhy73r/yQlAHtdM6Isvrj8QrcuKIMuSof9sJScbMn4oyVgA2cE30uQylsmrBZA5vmjYeR3WAvDqqVo8Te064PsHXIkSO5ERexg9ec7e+OzacThueNekB9eYVZFtU2VsWWWDrQuY6XBjfmmp3QA8eRDw8ysejtTlsQBwrAPoAJvdmEgMoJ0r3q4ThZuymqcsOxQ4+TksOPjZ+DT3L1ECC2A63JGiLOBIY8L7Mxbl1hEKQC81RgWILYDNR2Du+uFFTCcUB5jADW9bbNsNsXgIxTS12XtQxA93iP11VAYmPeStANyxYwf2228/BAIBfPLJJ1i8eDH++9//ok0b/Yd2zz334KGHHsKUKVMwa9YslJeX4/DDD0dTU5PNlrMFVgA6uMdYC2ASgycAQG4WTJxtuGkX5gXWpSxqUaaRhAWQFR6RoPG7XS0rp2VYWCERDdlst/lfXkkUoNn1lbgFMOCT4ta+Yr8P/TtXQpIkSB4fCG//eV/D99jgzMYnxYTOmKaHETzrI/6GJJ/+O+L9zYbSHyYx9vmNWvzke5d7OnZbDPdRci5gUfcPty8rop7MgL0ocfNzDCEADD4RE59ZHJ/mOpEqtgPz9WjckYakBIELOBJMeF+qqsX+aS+rrAWQ78J2U/PPCUcXsM/k3RDd/zwSGcsTsTA6CcCP/gpMmyxsYRe/XgIBWN9hODDuBuD4KVCZaxsLn6AyMOkhDcWbsoO7774b3bt3x3PPPRef1rt37/hnVVXxwAMP4MYbb8Rxxx0HAHjxxRfRqVMnvPvuuzj99NMzfsyeMMTHOAlA5qYMNyYX28Tr2ZomWItikc1DT1GTsACyD5lIk9H6Fg3zK/InU7svaue+irlDRQIw4uq8i2IARaLChdfQwN7muo7NgzNr3Yq5FDehHYLdRoPrwK/ajbEA8gSgjQtYFPifDOa2fElYABsi+jVmBblbV6udxWOoKYubxe1LmGq6DyS3SRyiWFQlAnxxM3DYbe62wxINAz89Y7MvGH/3kabEBWBzEog2tujbCKnpswA6toKzuIAz3NnIDUs/1e4H3u9k23Lgp6e0z4Fye7EoGL8USMAh/9IW+WFGfHpsTKEs4PSQtxbA999/HyNHjsQpp5yCjh07YsSIEXjqqafi81euXIlNmzZhwoQJ8WlVVVUYPXo0Zs6cyd1mMBhEbW2t4b+swEuAfLgxuezG2GDlYuD52+H9DTXnvBJm+s8W2fi2PLmAzQ8us5uJtQAuFViuvGYBs9fHTsR9cC3w88viB4A5g1iAyM0oEtHFCfRSHtpNEyHjB3RkLIB8F7Cwj7DKPIR5LuC5zzPLmsSYFyuJW8xZx0m85Jz59GzmG78TiB28ci7vX7kfbjiiP84a05OzhkaTTQszli27jFmdYbd/ajwLmLPCDw+53IiJWVOAT//O25l1v/HPiQpAxC2AAaaEvMgCmMi9YUak5eN1B01Fn+evr8WRD4q6/Ni8wNphGKcSEFMNW/kiHTBeG7Zns9Oy0MduxWD1s84nD3B6yFsBuGLFCjz++OPo27cvPvvsM/z5z3/G1VdfjRdeeAEAsGmT1re2U6dOhvU6deoUn2dm8uTJqKqqiv/XvXv39P4RdhhiAB0EoLltUjLWu5g4cdjGc+eNwhUH72GpOZcodhZAT48Cs2BjrTyRoFF8vXkesGG+wzZS6AKuXQe8d4X43CpRV9dOJDJEXVduPHogOlYWczN8RTx97kjcdMwg3Hfq8HjCQoSxorDu4IjohYMVWU6xl2ZrXDosAmzrudlPaXUbE0QRxJqZXa377dGOuz7PajS0W2tcftAeljpzLLwWZryH58qtRguqpxjAUINm7UsV634S7iqO+fonGQMYVVVsQyvMjA7Cd9HB2A5+i7xUJIGIMlhDUQWNoSge+maVYfpFL/6MJRtdGhfcngev5ysa0cpjsSx4k7+s4YXVIWzG3EK0+XqYLdLxw2i+X8gFnB7y1gWsKApGjhyJO++8EwAwYsQILFy4EFOmTMG5556b0DYnTZqE66+/Pv69tra2BUWgB9ljFizJuIDjmxEPKH8a3QMHD+iY/D4YbDMf4WVwM1sAza4l07nZuRroOly8jpvL4NoF3IzI9ejaBcwfLHltxQCgT4cKzPrneE+DbMfKEly4vxZS4YuVgWGsfnXQC0eHRRZAVtA6uSDVKLD2J60kxfhb0iQAGQtgHf8l0C2KIO7PLABF8WFuyrnw4FnKi/0+NJosgxtrjHHO7mMAFc3St35uQsfHR/S3sqYg0z3xjl2dTjEqJEBFc5cWCWeE/xXf/3n79sKIHq1xzevz48unxgLI//vu+XQpllfXY+OaOlzNRJp4qmrgpah/DDf3zjd3At/917QNQbKhKw+UfQygolqW1KbHCkGTCTAt5K0FsEuXLhg0aJBh2sCBA7FmjVbWpHPnzgCAzZuN7Zg2b94cn2emuLgYrVq1MvzXYnixQpndJ2xhYq/EBg8bIRJIw81qNxAHwYnT22MCUMy5PuYBUzVZAM3iq4jXzSIZC2DEedC2G2hdJYHwb+tWJeJabcm8Ycfic9hG9fWqnnjUGBIIWlXR/x5HC2AEeGaC5hb+5O/pcQFHU1TsFsY4THMWcOsy/TqIXLaJPvB4lnKemKxtMv7GPCWBbFue0LEJEf32RDGASbAdlVDiMYAAKz5Li3zoUGF0x6YkBtDm3np73jpL/GFSZa1EGESai+3PfNQ6jdea0m46D9P4FReAjAJkrYExCyDpv/SQtwJwv/32w9KlSw3Tfv/9d/TsqcXP9O7dG507d8ZXX30Vn19bW4tZs2Zh7NixGT3WxPAwOLLzP/m7Vlok6d2LBx5eseFksXMBb+X1vO00GPj7KmD0n00zHCyA5sGM92cmnQXscL2aagTbEVgA2/U1LiayAKag7R6PmFiJMA6FJkaUN4QEFgLWBewU+M6ewy1L0mQBTKUA1DFbA/t30t2NDYw47lqli+ZEBeD4gZrlPbZ651Yl3J/w09+tNHyPeLEABmwKfKe0LAkb5pKaOpBLle7YXNuE6l3Wa10a8FlehFKSBexwasMwC0AvSSDN908kBNzdG/h3FXB7J2DanablOOevYbv4vPKuoyi5w6kMGbs9iwWweRMiJ0EsBpAUYFrIqAt4zZo1WL16NRoaGtChQwfsueeeKC6276uYKNdddx323Xdf3HnnnTj11FMxe/ZsPPnkk3jySa2iuSRJuPbaa3H77bejb9++6N27N2666SZ07doVxx9/fFqOKaV4ESHsTbdiWlK7jarA7OXbMNbOApiCt2YzdkkgAPCr0htDZeahFqrT3IrmDLtlXwBtegNlzYWm2QFQiXLcGZxzm2wWsJPLpHEnf7ooBlB2Z0Eot6mlmAzxGEDmwdXI5P3WB11YAJ0EIPt3K0p6Cg+nUAAqAgtgt3YVqGd+y4O6tMKiDVq8F3t9EnUBnzm6J8qL/Nind1u0LS9CwCdjxK2fW5Zbs90YrN/Es6JzUYEAvyUgAO237bUriCsLYGqyXWtQjuVrdmLemp2WeaUBn0V4p7oO4PWH9sPiDbX4dJEeYmBOQEnIBTznWaBxu/Y50gRMvxs4mOmQwo45kqT1G390FNBtH+CiL9ztS2gBTN4FbCz9wmxajVkASQCmg7RbAFetWoW///3v6NmzJ3r37o0DDzwQRx55JEaOHImqqioceuihePPNN6Ekk5nKYdSoUXjnnXfw2muvYfDgwbjtttvwwAMP4Mwzz4wvc8MNN+Cqq67CJZdcglGjRqGurg6ffvopSkpctLBKJ407gO0rtDZlZj77F/DDw/DkhkxhyZadjRGc8dSP+KP/RQCATbsdblkmHS5gOwsgAFwY+hvuDZ+iT9i+QvvXXJfqm8nAM4fp3w3CImIVZ9wHj0fXFLvNqRdrTe/tELnoRW/rJgEojgFMg9sUgK9Z0LAiYoPaLu7qFFsAo4ifSydB99oZxvWyXgDyk0AgydjRoFtSLjqgD/5+xAB8cs0BhlqXbjp68PDJEk7auxu6ty1DebEfRX4Z/TrzExxYgqpLAagq1s5CLF7cgXFcWACn3Z7Adq00qmKDQ0mRz+JqTEUSCJuYc/5+vdDfdD0aTEWSPFkAY+fox8fsFzOPHbFWl+tmW5dlt8siFIAuikQLLIDgxgBaSyhRGZj0kFYBePXVV2PYsGFYuXIlbr/9dixevBg1NTUIhULYtGkTPv74Y+y///64+eabMXToUPz0kyAbLEGOOeYYLFiwAE1NTViyZAkuvtiY1SdJEm699VZs2rQJTU1N+PLLL9Gvn/dejynnxynAQyOsZvwtS4GZj2hFcI258vakoWbfmzWDgOuXYPao+yzzUu0CliV+WQwA2LOrFue3Ba3xSPQEfUbDNu1fXmHSbUy3FycByLUAJuECrt8iXi6+vF0MIM8CaDzfolpzpYE0uYCbB2cVMvZRnsNe4acRRFE867g+FAVO4PQSVVUPLmDmnChpEoApjQFkf6/MZ0mOW/wAoKzIhz8ftDsGdmllcDcmagHk8cTZe2O8Q1KWawugqgKBUvF8N+5AM24sgCmi0ebvTJcLeCcj+CuaRTnLatVYiULUlQTgSGVV0bKyRT3bY7BjkKokFkMrurabfnVe993LgJ1rhc8iURkYigFML2l1AZeXl2PFihVo185a6qBjx4445JBDcMghh+CWW27Bp59+irVr12LUqFHpPKTcID4ImQZA9g3MULTWQeClsI9q7MG2saYJaDUQoai1R2SqXcClAZ/wWdCtTanhgRqnodkdwivkzOJoAeScW69lYDyXYBAJwLBLFzD//JenyQLIipXqkG7NqCgOAGhEQzAC7HMaUNkJePE4fUUvMYAsajQ9SSApfFEStRwzHzf7YsOKjVRmPXasLMEz543C179txgXPz+Eu41oAznkW2G1v8fx0WQBTRCO/JDkAbZyxWABTMJaxiSWSJHHCWYw7jXh5LKuqFu5ix/R7tPqvMZSoy5aXJkTX9tN/uFv/gcHARH6tSJEAjFkAqQxMekirAJw8ebLrZY844og0HkmOEa+1ZxoA2YKh7A2dQRdwbE+xKvYhTt2xVFsAS4t8wjpRwppopa21f0WtiWIY3ow5MYCOLmA3FkAPhboBGwEY5e/PJCpEMURlRelNAjETe3jGu1PIptgwgwD0MMAr0fQkgaTQ4iQqAwNJxv8duydueX8RAOO5K2Xcjam0AMawi6MKu+3dvOR9oMcY8fxEBGAGLYBBQcFnACgtki2/ZafYYzeM3b0d/j1xEAZ20bwVAYE3IyHCjfb3wrblwLQ7jNNUBfA5jAXcJJBExL15u/xn0bodjXj/lw04cnBnw9Ms5s2gMjDpIe0xgF9//TUiEY8PwIJHUGqFDa5mK647JoGkfiCNPdRDEat1MaUDHIC+HSsRFfwN5gH6lODNWFs1CjixueuL3yHJyGABdJsEkkQZGDcIs+1ELmB3MYDpsgCKBufYtYmX3Og6AmjdQ1+AFbSeLIBKegRgCi1OrBXWIAYlGR0q9d8k254vXRbAGPaB9CmqPecmHsyya9G1T/24JWqTCAAlfp/hHBX75ZRYniRJwnn79cboPponzK2HZJ6yBwBghcIvSwYAePFY+xd8XjyxkqAFPRH3vhnBsd747kJc/drPuPGdhYYi2PEsYNJ/aSHtAvDQQw/F9u3b49/HjBmD9evXp3u3uY3IBcwOvGmwAIaKWrtYqjnjs9kCyCvymyoL4BuXjMHhe3bCf08dhqjgTzCLzZ/UAXhz8GNAx+auFkUV9jthM3TdJoEY6ip6zAJ2g8hiqDBJE8YdGBdjbusJA/X4otIUxDPxEImVgL+560JMABaVAVfOBa6ap31P1AWc6APMiRTqDaEFUDaKDPbcVdfqMYiVNjUbE4V3nZ45d2Rqd+LV2g1AKD4z1ee2mZIin+G9IhXxfzzsxke2r/nJoX9j2gnzUI024o1t/d37OVfduICdXnwTxOFZ9MactYbv8SxgUoBpIe0C0Oy6W7RoEYLB1AVb5yWiYsuGnouN/Ok8XArA7W1HYLbS335TMQEYswA2KzM2sDlVAnB0n3Z44uyR6Nq61FAolIXnAg6zatFRAJpiAC2DnJPgyqQLWGAB3LXRuFjzNSov8uGIwbr1IN1lYMzEfgdsfA/8RXpxbUO/XS8WqOy3AEIgACXJ6GZkz91ePVsD0OJanbLeEzoizilrV5FAGS678SQVbkJ9R94WH36m8zI2mMvApCL+j4edW3kX00FHgYwmuQwScx4k3jnxes6VqHPnnXTx+Y2eFg82GxhS4YonrNBZzUpiAtBmkTDTy9NLHUC7xVwtpfHdsq1oCkfjJQ5KDAIw9Q9nRfA38krORAwCkNPJo90ezIZNFkDzfsJNwMpvjYOs5yxgr0kgHl3AnYcYF2OKp7ICo6wowxZAnykGsJnVO7Q2ZKqqIP6r8yLozGVgUmUpSpPFKcrWBJRkgzuLPXcX7Ncbtx63Jz64cv+0HAevlEb7Cj1G9rzQ39xtyM6inZALOEUWwMou3vfNoCWBGDuDpAPeC/JloWuxSW2Di0J/NUwPiVwfLLYvmDxLXoJJICLYsA4nIk3OyzA0Nv9p6RLjhU7az6okSYY4CvN3gkP84WbTtSLExAAufMt+e66TQJyvC3tE/3pnIT78dQMA42CZjk4gokrxvH0Z3NK8JBBWzNUwLgeei/W9y4EXJgJf/luflkwhaDeIBvSty/gPxSPvAYboNRBjLmCfLBkERrosgKLYMksMYDPnP6eVe5Kg6gLckws4YhKAqUpycnEtu+7leatsj2RJlg3uLPb6tKsoxjlje6FNuduizN7gudHKmcSgRtVl/VO7mNaErkWqsoCTE/ClpjqA7ROxjrqAZ939VNkHY4KP4id1gGF6JKri06hWGaOmqDM/vter6DZnAavN9+G25fr44kV8t+nlbf8eiI1l6bCIExnoBKKqKsaPHw+/X9tVQ0MDJk6ciKIi4yA3b968dB9K7iB0AbP58Saz/+ZFQKc9+dtzbQGUcGP4Anxe/HfbZWK8PU8vAcPGl6VDALYt58dEObqAecIiJrC2rwA+uIaZzsmyjQ2uMx8BDo9l0yVRB9ANIpdOpBFY9A4AIKj6USw1/x3lHYDxtwAL3tR2xxRP9RuyTNNj0agXFHqOWYLN7vttjQoQ0xqJCEC2gwiQWQugyHXWpjewYyV3VlTV11ElUwxgBl+GeYZaH2Otj7p1w6daAAr1X4ZjAAM+1AX133LHyvQIwBIPxaXDUQUvRA/HGrUj+g85BH3n32ldyM4FLIphZn/HSgR45zLNkDDxQWDv81wfn7Z+6sqMmYlZz+16wROJk3YBeMsttxi+H3fccYIliTiiMjCG5APTQFu7IWkBCEnC72p3zIjuif18i9yt04yhiG0aXMBXHtwXy6rr8M1SYyHlIs6+IqwFsPtofF9yEPZv+kafFhN1y6cZVxS5WM2kvQ6gzRt9UMuQi8CHYsQeVpLBjRZ7a5ZlySCQ02UBrGnkP4BELmCDFSMmxj2VgWFcx0BmLYAiF9Yl3wB39+TOYkusSJLPIPoyGdzOs9SyLwhRt6Vg7FyO6eoFnAIiggLpMUoDxmvTriI9llgvYiYcVaBAxlfK3li/VkFf3kJeXcDRkNECGA3rXqTv7msWgM7JZu72nxyxsYIsgOkh4wKQcIPAAphoc3S3FsDmzduJP1GJEdbql46A3aqyAJ4/fx/s/s+PDS5FvguY+XtlGQ9U/d0kAJsFi/mBqETgWdC5ygL2KFBcDKiGYs+SDF7SgSwZYydblaTndq8QCMtYuQtjkVfVWKew2T2+viaI3bzs1KsI97zNZk57GXjjLP17jaCCAccyeOTgzvh+2VZEQ6YYwBZ6lvEEIDst4lYA2oU0JGQBzEwWsLnnrpmATzKcj/I01c30YgG86T19LP5t0y5w/wSvSSCRJmMWPetNSuT6pVEA6hZAEoDpgM5qNiIsA2NjAbTDrQBMwh21YotejT4dLmARPo4F0Bw4bbZA6VYn2Trd1UMn3RZA5wHdsFfJbAHUXcDb63VrYts0xZZNHNaVOz32IvDw13/go1+1TOWVW+uN4nXHKgDA2z9vcL9DSULGLIAlVcbvjdutywDcoHqfLKFVacAgrGRZxh4dHDLT0wQvWYe1ALruQWv78plKC6BHHO5duxZrQCw+Xf+ersLpKXdn2tXn452SSND4whJlBFyWCMCG5p7N05ThAMgCmC7SelaPOOII/Pjjj47L7dq1C3fffTceffTRdB5O7iB0AScY9+RyWZF1z7gMH1ZjpcMFHMNsXeTFUDWGjA8oSwZxqA6Y+wIsDx7V5FoU4aUPc3y7HnAV1M12lzD+HU2qJvR8PmMMYLqSrwI+GRcf0Nsynd33Fa9qMb4RRTVkxWL51wDc/fZ0pAzGAEpAGdPKcvRl/HUZAfjhCK3vccCnlXwxuFYlHzq2KsEn1xyA7244OAUH7R7e5WdFYcTt4yBiU8YrITEuuH6er6uTAHSurejLQNa8FwugK6IeBVgkaPwxGNqKJpAE4rXKgQv2Dz6IE4P/xg/KYADp6YxDpNkFfMopp+Ckk05CVVUVJk6ciJEjR6Jr164oKSnBjh07sHjxYnz//ff4+OOPcfTRR+M///lPOg8nh3BRB9Ay0NrcIB6zgN+KjsPJvm/5mxLshxVZ6azZVFUaQGNYF3g8qwYbyA2YYgJjfHA1cOzDxmluLYCes4A9DpAusoat7d707w3N/U59koRjh3fFD8u3YVy/9t6OwSNmK6sk8RN0eK0DAY8CUNLWYNdOCbzrJMnACU8Ar5ysfe88FOi2D7Butmk5XSwEVW1Y9TdnYRvarDVbXmJtwTIJ716REnEBz3pcPC8RAShcJ9UuYOfHXSbKwCRjAeTWAfTaoSMSFIdQZIkFcDtaYbuq3yNUOSQ9pFUAXnjhhTjrrLPw5ptv4o033sCTTz6JmpoaANoFHTRoEA4//HD89NNPGDhwYDoPJbcQuYATvVE91gG8MXw++h94BoYMGQY8vq+rdcfu3i6eoJFOF3CrUj826Z2CuA+1BpMF0FyGJI75vLiNATRsw6PFMEVYBBMzQMYa3suyhGK/D/efNjzl+zdjPseyJMH8M2gKRxGKKtwHseIQoG/EbAFMowtYkmC0tspAKaczAxPYF45qv7/igFbzz2DxbKkAQDi1gvPgArYjIQGYIgugkwtYtf7uLj2wD6ACh+2pdcxhh5N0WQBT/hMI1vGniyxzkSaxBd3r9duxCtiyxNs6Htmza+ZflgqFtI9GxcXFOOuss/DBBx9gx44d2LFjBzZs2ICmpiYsWLAA9957L4k/M4lkAdvhoQwMADShGJu7jgeKrTeeyFJz4f66CzCd8Rr77WG0ZPEE4IL1Nbjx3QXx7xHRQMiWgAE8WAA9DpgpEyg6dhbAmAvY6YGfSswWQJ8kWdzzj3z9B0IRBSpkvBwZb5jn6VFviQFkPoebgFdPB3562ssWrduJ70u2fjfF+9XufaXhe7S5P3aRTyv5YogB9FLuJsWYb5UjBxt7zHJdwH6XtQFjZJsF8ArdUstzAZcX+THpqIHYu2dbAEZLU7piAKtKU9zmTyTAVEHryGjION3tc4V3fzyZ3jCGvh0r8Paf3RkhCO9kfDSqqqpC586dEQikvtdl3mFXB9BLcWGXy7LiLqqq3KAhGfwBgn3+d0hT/SwAuOHwATh6qF7xX9SF4uUf12BXU9hybLYIe+2aSLcL2AUWAcjsg3UBZ4qwybUry4DPZOp4ZNof8QztTWpbwzxv1ifJ5AFm9v3zS8DvnwAf/cXD9uIb4u+LPY2SbAig/0f4ItSM/YdhjaCiF6/1yZKlDmBLYX4hePD0EYbv7HHGcWqlaCaVAjAVlvMOemtLnuXZ7K1gx5N0Zc0X+32YOekQnDuWXzbIM6LMdF5dU6DZAigYw7xeP1FSVIpoW16Utp7MBGUBZyfCTiDpdQFHfPrbvqKo3MzGAPhicssuPTBcVBYkFZQW+XDD4fqgbidyVmypx+RPlmDt9gbhMgZEA6YFhwSErX8AC95iAqpTLwAtMZ8RvTc06wLOFObMa54LGNBjAGPHGMNbDKDJAsh+DtWbl3aP0AJoSrhh7osFSm/dxbv/dcDAY7GyROvmUOyXLRbAWEH8lsAsAM2W+ijvcVDsVQAmINqEWcWpTQIJcwSgObmA/VpZkj4jRZeqUuzWptR5QROfRPexTmzayV9Y9OJvjgHkWgAzW4RbRDoTCgkSgNlJvBNIZl3ATQE9timiqEBFJ2CPQzE7MCo+PYAIzh7TEwf0NbpiDxnQEaUBH8b2aYd0w76124mcPz31I56YvsJaBkZEqgpBP7I38PaFwJL3mxdJvQC0CKaS1vGPTWjOAs7g3W1O7vBJksUCCADrdmhCNWhyx1ld2nbYZAEn1eNUEAPICieTC1iFpCdATfg3cNpLaGqOiS/yy7jx6IEG12o6+mS7JezQV5ZbCDpRC+DLJwOPjhZbp1hCghi2FFgAt9bpL6bb1UrrLkzXnHUBV6TJAhgjkRCNz5RRODH4b+PExp38hUUejUjQOD0dNTVdoKjOf38mw1gKERKAWYlAABoKQZsG8w+vBd44m/827VKABAN6zTMl5gI+6y38u+KW+HQ/oqgo8Rsyff951AC0LS/C3Jsm4JWLRrvaVzKwb4Xm9mZVpQFUNg/c9SGPLYrcZrO5LQS97ifr8imCFUwnPDYDL/+6Cx/u9RSODd6G2O8nky7goMUFzLcA3vK+VtjWLACTsgCmSgByLyUnCYTZhwLZEmIQs4YW+2Xsu0d7HD28e3xeoAXLWThltXJjAD0LQFUbm/74AtjyG/Dbh87rNNWINuZ93zE6DwWOuR9PTF+Ov4YvxSKlJ/4dPtd2FfMu0+UCjpGYuJEwT+1nnNS4g7+orQWQuV/Z7jbhRuvyaeLQ0D2Oy1D5l/RCAjAbEbqAbSyANWs1i1NzXTXjeu4GUlYAslmdbImXACKoKPYbrHDHD9d6OJQV+TPidgwwlqWSgA/T/3ZQ/LtPltC6LEHXjVMSSLx1HOeNeemnwHpBP+s0WwB/XrMTN767EBta741f1d3j0zNZOsFsAZQlIMwrv9NMUDUWpU7KAsheD1GvXle4tQDq+1BYC2AzsXMRc7GWFevu7pYMZ+rWpsx2PrcMTInHDExVMb5IfXKDc506kQBMxgJ42XfAyAvQFFbwVvRAHB2ajPXogNG92+KZc0fGFzPfIlVlAZw2sjv+NLoH2lWkL5YZEMcve0ZkQRUlv0VNLuDHxjDzQsDONak5Lhvm+kdguerc+4fnRSBSR8YDUubMmYMlS7SspYEDB2LkyJEOaxQgcRdwAkkgW5YCfQ81recyBlDWBzxWALK7LZYiqCzxGzpwZLLzB2C0ABb5ZXRqpccuNoQiaJ9oD0+nJJCXjgf+XQNF0VMWolEFvq3LgNdO0yb8m32Yxa5j6pul8wST2dWdybfnYMT4N/pkCbuaxA/+pmRcwJIMoQXQl0TcFjcG0MkCKBaAsfZVkk8XVkVZ8jzjZeo3gJPxW+axfqSqWH/vC98Chp0uXqepVjAj+RhAcwWA0iIfxg/shAGdK/Hbpl0Ysltryzp3nzzU434TI2UvyyKrndACaE4CMfHDI4IZKXAP+4qBI+/GXd91Auqct0cWwPSSMQG4bt06nHHGGZgxYwZat24NANi5cyf23XdfvP766+jWrVumDiX7SaoMDOemcikA2SBwkQUQ0Cx9rCsr04G65r7DbJZYU1hBaaLlG9yUgXnrAkR2bEBMYjaGIqjYsdp+nUzUAQRwz6dLDd8zmQRidgFLkoS+HcXuwyDMIt2jC1h0L7AuYEEmu2H+lt+AtrsD/iLwLYCyYwxgVFHRGIpi2tJqHNC3Pb76rRqALrIkn/63RkuN2c+Z5tWLR+PWDxbj9uMHW+ZxM7HLPB6vqljDUJrb/QmJCjqLpMBybi4CHxs73rtyP6zcWo/+naxxgZkiZSEaokxcYRawKQbQTHCXu/267EG8UW2LLlLzMZa3B0aej13ffwvAeT+8Vp9E6sjY++hFF12EcDiMJUuWYPv27di+fTuWLFkCRVFw0UUXZeowcgSBBTDNhaDfmLsx/jnKDBzmoUIrb8EGtmfWrGEQgH7rAJFw43BR3SyWhW+jaP3M+FdZVo2VXdkBV2TJTQGqiwDqTMYADuhsfJD6ZQlHDemCG4/m1/hMLgkE4jIWrAC07VkL4Nf/ae6vN85s3oygDIxDDKCqAje+uxCXvzIPQ/79eXxeUbPlT/L5cWjwHhwdvBMqp7ZmJtl39/b49NpxGNnLpbBLRACaLU/1W53X8TJdwNLNVleo2Soei10u9vswoHOrFu0wkfb3M9F4ZukEYiIsyqRnDnjei8AD7iyl+wcf1L8EtDAEt+5vsgCml4w9uadPn47HH38c/fvrJTz69++Phx9+GN9+y287VrCIOoGwA6LTw020ng2sBVBhLYCmQTQgS4ZsxkwLQGOtLqvLL+FWdG4LQbPHsu4no+jgvRWnJQbQmZTFGLngX0cNMhS4DfhklBb5cNEBfbjLB9UkkkCiIePvX2QBdOqpPPsJ7d9lMdHmxgIoWWIAo4qKt+ets6waexHxyxKWqd2wSO2V8XslaRLpx2sem0RJCvFVUiMApy+ttkwzZz63ZBa2GV6rxJRiZwG0O7eL3xPMYLb1/lXArg2uDoPNLldKWuPWDxZj0QaR299IJsewQiRjo1H37t0RDlsfjtFoFF27ds3UYeQGQhdwAhbAumrgu/+6WpQNAo+YXMBXhK5GUA3g0tB18Sb3MVriJv3nUQNw6YF90Jfjwkn4eNwWgmYonjPF0AfW6M5KnwXQTeHkTLqAq8oC+Bdj7XMKCzBbALk9TgFgL2vmJoJ14kxsLwLQZ6pFmKIYwBgxFzD7e8x2AThP2QMA8EV0bzR0HAEMOs7bBnguYKfffxoLQYtcwNlAeZpazcURWgAdYgAToef+3MlnhiYZvm8KFePZGStdb5YsgOklY3fDf/7zH1x11VWYM2dOfNqcOXNwzTXX4N57783UYeQIoiSQBOoAfjPZ9V5ZCyA7cCoq8JEyBoOCz+IzZRT8PsnSbzfTXDJud0w6ku9e5LV++yzqItnIbR1AM2zmaYQTz9RCFsBMj51sWYuAQ/ZekykGUBb9RX0OAroaO1agQz/jOZ3zrP6ZbbXmFKPkN2d5urQAMokmKiRc9MIc63pgBCCzfsLW6QxxWuhmjG16GBeH/4JlE98FvMYs8lzATr9WYS9gb/cN7yXCPBYE0tim0ivlaSyYD0DLAuaeQ9V1/J5xNZvreN6HwNDTLJNnKEMAAHVVWuma2a2P9rRLygJOLxk7u+eddx7mz5+P0aNHo7i4GMXFxRg9ejTmzZuHCy64AG3bto3/V/CIXMBuYgDNN6mHuk6sBZDt7LCmuZNGzJRf5JOxs8HBupJhWLETjlgHqsvC12J40xP2G0nABQzAKPrYz6mOAex1QPyjX9CSj6XEn9maI+w1CHBiM1nMLmChBVCSANnk5g+UGc/pd+wLJLMdJwuguc+tMAaQ/SprohTAVrUVNqttsa2ev5+YC1huwYQpr4Thx0ZoxdwjigIUlXvbQCIWQFE4SyqSQAQxgNlAWSYsgKLxLJLKen8S/z5l+Ong14ALv8TStgd72jJZANNLxrKAH3jggUztKvdJKgvYhIeyGGwv0FjszML11hpdAb+MIwd3wbSlW2wzPTOJJOm14YKmuJ9Z/xyP0Xd+hZ1wyPhLwAUMwJiFxxZVjZEqAcjUV+sub3FcvHMVp6xHGmFdnX6HN3dzFrCox7T2cDFtSxVZNmCc7igA3VgAOS7gXvvjhzFTMGl6A7e9WIyYBZCNoR2yW5Vo8awjHFWBgMffkKpaLYCqqmWWLvsC6HuYtb2cqFwJ7xqPOAv4+WXu4k9HjsJpvmlY3e1YDGmeZnYB88rftBRpD51RouL7JBELoChhJuYB8YnvhU//aMDBw0dBWbjEMP3B04fjsWnLsXSznhE8cVhXfPCLFl9IMYDpJWMC8NxzObE8hD0WF7DNPBE+9zXxIhwX8C/rdlqW88sSTtq7GzpXlWBot+x4oMkS4l2KzUWJXfcmTtQCuGG+/nnh28yMFFkAx98CFFdq/YU9MLx76+T26xHJg6vTGgMI/KF0xR6yKbBckjkCkJNowM6L4egCdmEB5JWBAbCp4wFYrf5iu/mYBZA1QnVva1+MOZswiydXmAtBaxOBty8Gfv8E2PME4JTnjbO9WABtOr1sRluMCD6Jf/QfHBeA2ZwEklIXcLu+wLZlxmmqjQDkhao4Ebs/Vkw3To/FQNtYAN+Ysxan7dPd8o41oHMrSzu+jpX6ixlZANNLxgtBV1dXo7q6GoopNmPo0MwU38wJzA+8GK6ygE13mM1NaYZNLIgNnO/Pt2Z6xZJAxvXr4Hrb6UZi2oOFOEWJXaFE0RCKwPMjesYD+udpd1jnJxvMfsD12r8L3nS3eN/22LtnGxw7LLPJVexp9poEIkPFvZFTMaXoAeOC5k4cAAA1NRZAy31mvU6v/bQWVWotjjKt46a9dCzhwNBJJ4tckE6ERZ0k7FAVawcKVdXEHwAsescqAL1YACV7t2kUPsiyhO+WbcHnizajLmgUo9l0/vt2rMDZY3oiFFGwtS6IY4Z1wXVvaC8VHSuLUb3Lg0jb+zzg838Zp6kKhB4Np3vDjhePNX6PWQAd2jD+tnGX5Wh4Y3MXxnNRlu44yQInY2d37ty5OPfcc7FkyRJLtp0kSYhGWzapIKsQxo4lEAPoxQXMCMBYDOCsldYio9nkRonBjiMh01u/656bSgTrdzSgb6oOKhUxgIcxgpLZzrvRfXG87wf+Knt2xtljeia+zwRhz7NTiYuQaeiRoOBTZR/OknwXcFSJ8hqXmSyATgKQ+V3c2w9SwzbLIlO+XYl2qMVRcaOEto4o85cHu2wuubTWbW/Ala/Owz9G/RPdfrrT3UoiF7DtOh6ygEUvxwyyBJz9zGzuvGwSgJIk4TamIHf1Lj18pGe7Mm8CkOeqt3MBJ2IBFBETfqwLuNNgPB48AtikTyoJyNaSYqYXxTP26Y7T9+mB2z/SXMU5dLvkJBkTgBdccAH69euHZ555Bp06dWrRApzZT0w42MUAit6aTdM9uIDZWmzhqIKmMH8f2WiWZ8WHOQnEvQUwAsip79qRsAA85Xlg0PHc7axSOwtXK26hhxx7moscXW2SzTd2BscCqKpYv70OPXjLGyyAHuKc6jZzJ6uQjDUKY9YOFz+TsuaONF7EYjZx03uLAAAfYk+s+vuvwIMuvDS8JBChFSoi7gMc25YZswAcdRGw7Q9c/due8Ul293vaEy+SgM0Wb13msZ2lj9O3WFXEv1NR95VEiF0T1tt0zP349hMFgP5SVRLwodH0TDG/KE4+0fgbi7oxtRMJkzEBuGLFCrz99tvYY489MrXL3CU+yCVQB/CPr4ARZwMVHbXvCfZGjURV1DbyH6DZ9BYdgxWAVgugy4246QTiiSQtgG37GMWPy+20lIXWYAH0WL4hlgQShQQfew14MYBQUd8kEHdeXMAuik8rJgH4r3cX45rzhzuKuoP7d0CH5lim3H+GSUAblxZlXhkY0bl68Thg9ff22zIjmwRceQfg6P/i/X98pB+tjXEhqwUgM1B5zlbmuV9tLYAprOIQTwJhnzWSJbavJCBbyocFZMnWQGzO4iZSS8aeFOPHj8cvv9gHTRPNxAawjb+KRZ/orlk9A3iEqXnnEJfBwm5xycZa7Aqag7k1slEAskO+OQlEkiTblrBxlCikVFtrajcANdYuEa4wxztluQBk4/681luL1QG0Frg2ZeECgKpAEmUNexKAbjAWqFmwsQ6TP/7NUdRdfrD+opurFkAvfBMdpn0QJYHwsBN/gDsXMMclbNcCMeE+4RlANhQM5/8NQmFoFsaA/QttSu6NZiRODKC/2HKP+GUZ9aZnipN3pmvr0lQcISEgY3fD008/jXPPPRcLFy7E4MGDEQgYLVPHHnusYM0CJDaoheuBn18C9jqneQZzR9m1gmuqAbb+AbTfQ5y6z4G1dPyyrgZzVvGbjGdTJl0M9s/cq2cbfPu7sUyKLEmG/sZclIi4Hl0iKBHgPn6xaldIMj74ZQN6ty/H4N2qXAvAhHshJ0lFMdMKzmOYgCQ1C0BVBqQoO4MTA2hTNsaLC9jFISqqBJX5cSmQsHhDLfbq2cZ2vdZMW7wC0H96/LAoCSQRuC5gc11G60W0G/LKAtlrAfQb6kXy72G/TwK3Bj8vNtK2DEwiAlBwHXlJIEXlgGrsKRxVVYsFUPR3Pnf+KHz7+xacNrJ7AsdJuCVjAnDmzJmYMWMGPvnkE8s8SgIxw4xgMx7UBaCXOoCPjgJucejBacLcj/XDXzdyl8umavox2Lfn/54yDKPu+NIw3ydJiIoGsB5jgTUzEy8DIyJkbU7vhevfWoCpa7WaaavuOtr22AZ0rsRvm7RaWq7L3qSYyhI/97MbpLgF0Pz05gjA5sg8Lim2AJpjABXIWLp5F6prOfUeGarKdAFoDnzPRxRWAFpcwAmGQLiJAeQIn0abLkXZ7AI2hlDwVazQYsYTgLZlYOx/v56QOC7gQJnFBXz+cz9ZVhUZEw7u3xEH9++YskMk+GTsSX7VVVfhrLPOwsaNG6EoiuE/En8m2FdYNlvLSy/gBAZdswAUDUJObb5aAvZIO1RaA6JtD7mik/avEkFKYwB/ejqp1eevMzVMt7mmE5mSL306tExxblb0DeraytO6MRdw1DwkcS2ACmThufCQBeziUqumxWLHZ7Ywm6liLICOlucW5vEz90p6G/p149Ro3LLU+L2W/2JpIUEBWCuKDwVQmsUC0OeiY4ww/IbnAlbsOoEkkAQiysCODa7sdS8qd/Uu7ZeFTSCJDJCxJ/m2bdtw3XXXoVOnTpnaZe7C3mg1a/XP7IC40GVRYA8PH/PDd9pS/kMuG13ATqVebOfHCgIrSmpdwEliEUPMtTT/Nd3alGKvHq0xfkBHtK/wmEGYIipLdNHTt5ND1xUTkl0MICcLOCUxgJZYNc4ipuOJXxOH31sx04Yvy/UfjhzSBS9cwCvBo7Otzl4wxC23igK8+2fjzJo1xu/11e4OzIUAVDmPsAe+XGaZFqMsi2MAfS6SqIQVGHj1Ee065iRkHXfYN1tYvajc1UiajRUlComM3Q0nnngipk2bht133z1Tu8xhBDdFIq4Up3Xa9MLO9iPxy2+/43e1G3eR3u3LsXKrFs8hSdlZy8wp1NEuMDzeEsyFIMgkVgEovpZ+WcbUy/dL8xHZ06rEj4FdWiEYjmJwV28dYmJ2AHN9QK4FECosdoNQA1Bk6hHsZOVwcb01C6DEfLf/of3t8P7Yb4/2xm1kuwKEc6LK54s34wy79WO/1erFwI6V9jtzm4HqQgA++8NqnLevirblRdgu6MnMktUuYBdJIEILoCgGMJVJIEILYPM9W9aWmeZz9buXs/BZUkhkTAD269cPkyZNwvfff48hQ4ZYkkCuvvrqTB1K9sOxeHhJ5jDAKW4b42dlD8gTXoCvdXecu0CckccOmgFZzsoajk7HZDubEYCBSL3NgpmlGCZXlo0AzAZRLkkS3r9yP0hwLgRtJibozL1135m/EYOr643FuVUFsjnO7OvbgSPuNJrbnOKcXAhAifk/oIvy9TsaucsfNqiTxfr554P2wAe/bsQpI/kvWNmAU9s3c2a9mbgF0M3YEG5wd1AuBOCGmiBuem+hK/EHZLcLmMUnsgCKvC88F/CameKXoDrnXuIANOte7F5z6gW8+yHav201I08BhL7mPBnNAq6oqMD06dMxfbqxl6AkSSQAWcw32rQ7gENuTMwCOGuKcNaUyES0Xari9FHGO/WAvu3x3bKt8e/sMzUb3b+Ac60/W4EUE4D11eju1j2VAczt0uwertkgAIFkSgQ1C0DVZzCAvzlvPUp9DejLPt9UFT3CK4yrr/y2eR5zj4QcxLwLAeiDwo0B3CpwifL+/s5VJZjzrwlZbe2IOrR9cy0A3aRWB3e5OygXAlCBhFdnrbEuJyCbLYAsonFW7ALm3Hdsi0oztS5LUx37MPDe5cZ9SLLx2jS7gNWydpBuWBl3BfP03zuX74tHvv4DX/2mj7O5YCHPVzIWA7hy5UrhfytWrHDeQEFhusm//Y/2b4pvFAkqSgKyJUh9ePfWhu+se8irZSdTJBUDyKui38IsVnpinWrKgivVS498FtVqPVbLWj/mXI+lEVkAtWg/099mbnoPAEqztZR9MDlZmuxKKcWPSzFmAav2v39Rhnw2iz/AueCuubi6mbgLWHHRfcVJmMfgCMCIajyP1phRe0r8uSIA+X+XaPpHC/VONkGfOAlss9ra24GwlnZJ1mI8zddFlnHHR4uxz51fYUu0XAvFALjPq9IiX9YnRRUSGX+ah0IhLF26FJFIdsVbZRWiGySZnrIcZCgoCfgsZSraVxgFEZthmo1FoAHrA+ziA3oDAM7btxcAhwewh2LZmeLpyJHWiWV6bNlitRf2Dz6AM4ofBpD9AsMJSSAAAV5pGA4xa57BAuggAEXtFBlkySgALXGZJrLVQu7Eng4xm04u4vjceS8678zFedeWs453j0xbbvju6rfBkCv3iaiYu2j8feWn9TgzNAkPlV+FuSFuk0QAQFD10BlqzBXGa6BEgS1LrMtJPjz13Ups2RXEyz+uBqC1cDPX/AOA0oAP2+pSWISaSIqMPc0bGhpw4YUXoqysDHvuuSfWrNHM9ldddRXuuuuuTB1GbiB8i07tm5MMFaUBn0U81ZmqtR81pEv8s3OP15bB7KK6ZkI/vHHJGNwycRAABxfxztVpPLLECJncv4qiAiMvAAAsUrS2XOvUjli+Q/u788cCaLTQWHrxiogVfWZfnsLJu4C3qlWGu87J4uS5hVeW0Lt9Od6/UpxE5PTzqoCHunJuX2Q5y5k1havfRg5xyt7dsGfXVpgwkF8DTxQDqELCDGUI7ts21vYlJQgPFQL2OsdoJY8Ggcf3tS7HxB+WNBfaPvqh77CsWquDyv52Sot8OHusNn6NH6D9jU3h1Bo2CPdkbLSaNGkSfvnlF3zzzTcoKdHTxSdMmIA33ngjU4eRG4g6GKTFAihbLIA7G/Q3tDZlAcMNnK0uYLMArCj2Y3SfdvHkENss4G6j0nloFhYpPbGgeITtMub4v6iqAn0n4JG+z+LU0M2W5Z1c4NlOAzSrs8UFrLoUgLFkJ/YeMbdSNOMgAFcMugKNKLEUgrYjWy3kbhjarbVwnpOLWNiZhYequAtn4bjozRY/ry7gbOc/pwzDR1cfgJ7tyrnzRb+vKBOaYHdOLHHFdkiSu+YDTAmaimLtc6woPWBMBikN+HDK3t3w3hX74dHm+pO7bOo2EuklY3fPu+++i0ceeQT777+/IWNzzz33xPLly23WLEB4FkDF5aDpARkqinzWGMABnfUivk1hxSAustXFFYzYu5Vss4QHHJPio3FmUdFQ2/lmC2C0eRRdU7wH6mHtjynMDswC/npYP7QpC2BAZz079p9HDTAs83T0aABWAbgBbd25+WJdVwwCcD7w7b3idRxiAOvLrFm7UYdjyebrkAyKqqbO2qZEXcVf8lzFZuuWk0s+Vwn4ZOzZXEx9JNN2UJTEorgMU/AkACG5euYogbL453KHLkTlRX5IkoRh3VvHrYWinvNE+snY3bNlyxZ07Gg1a9fX12dlWZEWJcq5ISKN3iyAbFFOATIUyLIUFxcxjh+xWzwOsG15kSH5tHpXAhXkM4BTyQHz32jA52VQTA3vlZ0M7La3cH6TanTVxCwwolisbLYAXnlIX8y98VB0a6ML10MGdMSDkRMBAJeErkODXIEiv4yQqj9ALg1dh7VqJ29WHvM9Mu128bIOFsBoc8IBW3NQ9HA9ekgXXDquj6EAdD6xtS6I44K3pmZjquKu5uacZy2TmkwuTK8xgLnE1Mv3xdwbJ6BTK30sjwnAs0KTDMvG7hG/zEmaYojA4+/TRbxmxKcLQKcsa14MZmkW92fOdzImAEeOHImPPvoo/j0m+p5++mmMHTs2U4eRG/AsgOFGeIoBFInFvofHP8qS9k5vLgLrkyXccER/DOhciSln7W0QF7uacvNtzTaLkVdDK80EVR8w5FTh/JhLNEa0WfiJ/o5sjz2TZQlXHaJV85swsBMACfdHTsbgpqfxuTIKEiSUFfkwR+kfX+czRXPNu7Y8RcPeXpIcBWDzsTPuTZEYvfOEIZh01ED3+84xlm7ahV/V3fFl1D50wRW8fsEueTN6ILaouoci32IAWYr9PrSrKDa8gJcGtBek75UhuDl8bnx67MWk2C+nzi0uSVBdWGqjAdZd7f16PHfeKOzRsQKvXjza87pEcqQ9/fGQQw7B1KlTceedd+LII4/E4sWLEYlE8OCDD2Lx4sX44YcfLHUBCx5eDKBi09ibB+/G7XMQcPqrwG3tAGgPNkUFWE3x6bUHAABOHdkdp47sDgBYvS17iiMnim0dsxbIAo6qsE1SaITZAqgdv8gCmAuux2HdW+PHSeNRVRrAxhqtkHIdmq0HElAW8OHxhmNRjxJ8owyLrxd1KL0SJ9xok0GvAmtnAW16A5Vs72ebzTVbXdn2gK1Ki7B7+9b4Ze1Ow7JZ2B47pWzYqSV5RIUWJA+/P7cWQA5NKMbxwdswo+QaAICiZv/vPlnalutjAWthY62hrOizcwF7Fcwf/boBTgEyUb9uAVRU1d7bwmF0n3b48voDPa1DpIa0D1vffPMNQqEQ9t9/f8yfPx+RSARDhgzB559/jo4dO2LmzJnYe2+xK6wg4Q2OahSbapLMtGvTC/DpYkeGdrPGbti9erQ2xP/F6NamjPlsjT/LBl66cB90rSrBi4KepvYWwMwLQEVRgS7DhPMbVZMFsFnYhJv/jp7tygzzszU200znqhKUFvksLmsJQEmRDyEE8HT0aPzBtCWMuB2mwjZhEovfBZ49HHj2MH2ag3UjGNHOOesClmQfjmXKIsXIlkLc6WJTrTb2mLO0E8JtDKAAVuC4sXa1Lst8iEcq6dpaH3PZTiZNzBgROw+K6iAAPQlmCb+u3e641LuLa/XjUNX4GEVkPxl98u2+++546qmnMrnL3MTPKUysRD3WTlSt1hDT99VqJ+yuqHEXsOgh5pMlfHrtAXjgi2W47tB+Ho4hcxzQtwN+mDReOD9mAbwydBUeKXrYODPDAlBCc0zi7uOBU18C3jzXIlwazS7gZpEes0qZm9qLmsdnK+aQRUmyC3B3+bc9vi/QsJU/b8U32r87VjEbtr+fQtFYDCBzbWQftyRKvgjAKWftjcteniuc7zmGjIeqJCUAI8xjS2Rr6lBZjC3N8cr3nzYcb85Zi/P3653wPluSjpX6WFDCxMs1GiyA2u9PUVUoop698FhITJKsPbc5bG7Sj+nez5bioP78EjZE9pGRJ9/ixYuxadMm22WGDrXPiiwohpwKLJwKrJimT1Oj8EVc9tCMYXrAbdjZgK4ANp70Lh5+/QPMVPbEwq+XxeP67BIJBnRuhSln576l9kNlLB6BUQDuCkZRKVg+XSix/s6DjgXa9gG2/WGYb44BjLl+w81CtthUKDYXXMAsVgughLIAfzhyLTpE4g8AGndapzkIwKDCsQBKVusl4FBmKIc4YnBn3HXiEPxj6gLufJEL2JOwSMIFDAAh5hhEAmX/PdrjnZ/XAwB2b1+Bx87M3bGrAyMA2fuefUmMWf1UFYjaCEDPhbNF5X32vQr4QRtH34zq7ttV2xqwdFMtfx0i68iI2WD8+PEYPny48L8RI1IQWGzDXXfdBUmScO2118anNTU14YorrkC7du1QUVGBk046CZs3bxZvJJMESoBz3jVO++iv6PLTZG/bMcUSfvf7FqzaWo+GzqPwalSzlrFJHflixfDKgfdmPgY1qmiukupdTVy3paUOYLMYqWnUrqnZrZXL9ecArVisqBxESoLaG3fon1UVqFnnwgJojQGUfPltAQTsa32G1VRYAKNJCUDWAuiX+JbE8mL9OKty3AU8smdbtCsvwpDdqgwvH41MpYBo3AWs2t4vZs+CE1yB3WEAMPzM+NdNaGuYvb3e+NyJCdgT99rN076J9JMRC+CsWbPQoUOHTOzKwk8//YQnnnjCYmG87rrr8NFHH+HNN99EVVUVrrzySpx44omYMWNGixynI3984X0dUzaxBBWbapsMQcUs+fQQ88L2+hDgXDUHv7Q9AsO2f5r0/nyIYll1Hfr+6xMAwO8do7ozZ+JDeGX+NqjLjIN4rAzMhubkie5tzDGAuSUAzeUgJEnCko18y0FK3I6xOoEA8OUtwIwH9e8THwQ+uMaySiwGkBWAfp+PW7Yqn0pZ2cWTpswFnGAWsPkYRBbAOubFttKhNl22U1rkw4x/HAJZkvD09yvi09kkEJVxAdslTb0T3R8d5V0YJnH6aZuRJPh4FkDZD3QcCBx5Dy54rxrmBKDr3phv+P7on/bChp2NOGzPTs77JDJKRu6MHj16cGsAppu6ujqceeaZeOqpp3D77Xo9sJqaGjzzzDN49dVXccghhwAAnnvuOQwcOBA//vgjxowZk/FjTQumeoKr1M4YWOTPyVpy2cDWImth4EToL68zfK8PRvShfO9z8dOynwFsMCxzwfM/4aEzRmBngybqdzMl4+SeC9j43e7oU1Lsl405Y8UfAHTdq/kIjPdFMGp1ActS/r8o2cWTBsAXbp6yS7+6FZDdW+Xeie6HvdsG8cRW7SWeTUThChQAtYwAzJX+v3bEYv/YMG5WAEZdJoE0oARnSXdgAcQlqFhkifOsiJXNGn0pvn7nI8tscyvRtuVF2Kd3W8tyRMuTW2YDj1xxxRU4+uijMWHCBMP0uXPnIhwOG6YPGDAAPXr0wMyZM4XbCwaDqK2tNfyXVlolaTKP6i3dno8chmeiRyLgtxZ+jpHvD7akGHYGvu1whmHSOrU9f9n23hJlJNNDjJexvGZ7A45/VLdOV5YY390CuZYEYhYMkvVvipESAbhxvnie7Ac4cVPBZq3DCkC/LDv2xc117MaBLtI2/Uu7vonv5IubXC9ar5bgpX4P45WoNl6rzO8hFqN24ojdMLZPu/j0HUw7y3yCfXlvNGQB69fMToxHIXuQ6taXIgCek+ZyvU95PpP2p8aBBx6IoiIPDahTxOuvv4558+Zh8mRr3NymTZtQVFSE1q1bG6Z36tTJNlll8uTJqKqqiv/XvXv3VB+2kct/TG79h/TYyjsjZyKIIq3si6BWWiFaAFf2+ZO7BQ+7HSFJH3A3q62xRW3NX9YmCJu7OHM9IlEFizc4v1iYCz/ngwVQ9KAQ155zydrZDgfj4xYDj2WO72Ja7/lkKa/cvTzsXMDFEhNW4vF3ngwNIb7lMWYB/MdRA/Dc+aNwwojd8MifRqC6Njs7FiULO3Y3clzAAOeFqe3u4nkOVKttrBMlb/cjGRayl7TfwdOmTbMIrXSzdu1aXHPNNXjllVdQUuIiuMslkyZNQk1NTfy/tWvXpmzbXEpaARWdE18/0hj/GHcRKEBU4btNciyMzBPHD7fWbgOAwxcfzp1u5ssl1VjMxKjVqvxm7QA8D5CsBXD+2p1Ytc0529s8qObaW7ZZRNmJKteFoEWs+s529rRl2/kWwGZP1mK1Fx6MnIAbwhfDJ0t5/6JklwRSDN2ytq1BF4Pp7MghQbOA84gJQL8soyTgw/2nDccxQ7sK45xzHXbsZhM6iqFfC4vIY36vUZUfw8pFkvBG9CA8HznMON2rBTDHXk4Libx85M+dOxfV1dXYa6+94Pf74ff7MX36dDz00EPw+/3o1KkTQqEQdu7caVhv8+bN6NxZLLiKi4vRqlUrw39pJ0Vv2WyWmCgGUDQ9H7jv1OG452RjIlB9WTeEXDZHv/6tBYbuD2G78FmP7th6xrpx8hRxCAKLWQDmmlWKVwdQhKgQ9FqlA/4Sugzod6RxxoR/mzZuL8hv+uA37jJBxhV/f+QU/C96MPw+Ka9flAAgYPMywQqN6jpOx6I08Ud1HXd6zAVsFhn3nToMB/brgKmX75v2Y8skESZ8h60UwIYpWLOAWeugZHuvmdeLwI9/R87DglKmwL7H1plkAcxe8nIoGz9+PBYsWID58+fH/xs5ciTOPPPM+OdAIICvvvoqvs7SpUuxZs2a7OtLnII+tdrbuXYTRm1a9azd4bHOYA4hyxI6VBhLIDQq7t9kVdOtErJzS3q0AL4Z0drvrVHcZ8rnuhWK1wlEhKisxTJ1N7ytjLOqx9F/Nu3M/npEVb4LOMjxOvoL3AJYBD3A33xPpAsJKmob+WIzZgE0x8D27VSJFy7YB3v14Lgwc5go85KuQkb9kHPwS9lYLFP1eHGDBXDM5UYLIHwJ2WoVdkzzHAOYlzIjL8jt/HgBlZWVGDx4sGFaeXk52rVrF59+4YUX4vrrr0fbtm3RqlUrXHXVVRg7dmz2ZQCn4GGjMjevoqiGt0iWXCsl4hXzqdzkQe+aC6guVHpjkLxasLQ3S+r9kZOxXu2AuYoeVN+2vEgrTyMg19+qzUcvSVK8I40ZUekRYVFbcycdB0EegQz4rJbgWBkYw6ZlOeesrV6xc9mxMYBRQ+JBOlHREBbFAGrTc/1+cIs5fnvHIXfj3p0LgO16EXSDABx9GfDHV4Z5ZUV+wE1XUeZ3riYhAAvl2uQiGXviNzWJf3EbN27M1GHEuf/++3HMMcfgpJNOwrhx49C5c2dMnTo148fhiEdrkhN2SSBF/vwWgOaBKOTh/ScmNo4J3o4nIkfjrsgZlmWmRCZi3cALgZIqT8elQsYb0YMN/W+dei6zVqiXLuT3P85mzFY0u2eEyAIYn2623pkFmpMFED7AZ40Za4xYY2X9Pinvs4Dt4kmfiBwDANjc4yjDdXk4ckJaj0kwZDExgHl+UZoxe28UxZogY7hfZJ/JAiijwmVdRHZXUYlZh7KA84aMPfH32msvzJ8/3zL97bffzkgbuG+++QYPPPBA/HtJSQkeffRRbN++HfX19Zg6dapt/F+LkYIYQFnV3TZRVTW4EVhyrZSIV2Ltur7za3FBUyITXa8bG1QXqn0wOXIm6lBmWeauyBmY0+8v4qeVB5yC2FkxK+qhm81Yf9Z2xYf5v8u4pYMVb3tyhIjDPSSyAG5vsFqdAj45b9q+ibBz2b0UPRTXtX0UlzdchmXMC8titRfuDp8e/z4jumfKjsfubPskTQDmQ60/N5gF4Pj7vsHc1TuMyxgEoLHEURQ+Q5cU230x49iWmnp9Rn21hyMmC2A2k7En/kEHHYQxY8bg7rvvBgDU19fjvPPOw9lnn41//vOfmTqM3INjvYgkkRWpqhC6gNOYyJcVxFx3t5b8FZGrfsHnyijX6/KyHHnTttalpvyEucwLy0sX7mNIRMjFGBurC1i8rNgC2LwSKwBPfk77t5cWVwl/iSsLoMqxAKow9mEFNGtGvruA7crAABLe2dAGc9fV4bbwWXg5Mh4nBP8PAFDPZKV6sa4nwmylPwDg3eh+ad1PtmEWgGHOy7xhiuQDTCViJEnS7w+GmdFBxn0xG2K74WD7Si+HTBbALCZjMYCPPfYYjj76aFx00UX48MMPsXHjRlRUVGD27NmWeD2CgWO9CMMPPxIrdBpVxEkg+X6bxt5Eo/AhWNENwCLX67ptor6rKZKSuM2AwB1/8t7dcEDfDpj++5b4tFx8w+YlgYgMp+IYwOZzVKYXAI6f+yPvAR4fCxRXurAA+rC9CWhnmq5ARrvyIjSFovE+xQXhAnYZC1yDCtwYuTD+nRXqbrPr3SBxIgxPD92ECjSgFhUp208uIHx5Z2BfTH/f0oB+BgugjLmrd2DOJc9h5Ko9DOvVm/oEX/LiXKB5muFlt3G7p2POxfGpUMio6eDII4+M99tds2YN7r77bhJ/TnBiAMNJFMaNqioWbahJ5ohylthzLaqK4yBFuC2gGlVUIGB1D3tFZAEsbW4JxbohczF5xyIAbZ4RonMfn37AX7R2bkf+h9lg8zwlqvWetSEKGet38ZMMWpUG8J9T9BAVrRNIfj/QQkzs46N/2sv1ekYBmF7bggK54MQfYLUAOnHyE7MML6+xe+bv71hffhtNAvD3zXrpnWSCWvLdYp7LZOzJsXz5cowdOxYffvghPvvsM9xwww049thjccMNNyAczlw9qZxDYAFMlBd+WIXHvlmezBHlLLGBKKqI4yBjTApfaPjuttBtWFFSIgADPglHDbHGpJYEtN8D+1adi2/Y5meC3XNNVAhatwC2BS6ZBoy+BLVNYRx2/3Tc91Xzb1xVLD2xLduHjN6StQOQosqoKg0YHmB+n+S1zGPOsXuHcgzq0gpH7NkZRw/t4nq9aNosgPbs06tw+syev18vT8tHIYNNZo9doxpOWR22tRxgHPPSWeibaDkyNpQNHz4cvXv3xi+//IJDDz0Ut99+O6ZNm4apU6din31yL4sx3WzY2YhTn5iJGk4xMpFLzA3fLN3ivFCeErOaqaq1nIKZb6NDUaOyQs5dDOD6HY34egW/aK0XivwyHv3TXhjWzZhRHLMAdqjUY9bsY7ayE7MAbBKU+QBcuIAZ3pqzDr9vrsP7vzZXFlAVICKuQBBVJaiQUSk1Wuap0PoTsxa/QAFYAP0+GR9dvT+mnL23p/VYS1NITZ0FcIYi9hJ1qCzGyxeNTtm+sp2h3Vpj/s2Hul4+Ctlwn0RV7V7aWmcNIdrFSWyLkb8tAgqbjAnAxx57DK+//rqhLdy+++6Ln3/+GXvt5d7NUCjc8dESzF65HSu3Wx9eyVgA7cjz55oeA6ioUAQmp5qK3TGq6TGsR4eE3Fgf/roRq3elIAbQpwVrtzMVry5uFoCdq/QyMUFOuZJsRzKJ52BY/DcEBdak3xWt+O2tHyzGczO0wPSYMTRujQrWAl/cJNy23cuUCglFPtkQ86fFAOb5jQKj2+6QAR1draOoqXcBXxy6Hu8r4uL8VaWBvC9fZaZ1mX2FADZmMgof1wUMAIpq/B3XqmW4M6yXtxJZ/X4Y+ySCEfELG5E7ZOzOOfvss7nTKysr8cwzz2TqMHKG2ibNRM+rth9W9YdWUE2dqyXfiT3Toqq4GHawqA22oDWAxIX2BtWcTuCdWAyg2b0bE64VxX50blWCimI/erRN3uWcacxe61BUgSqwyooE4Gq1EwDg2Rkr8X8fLAYAlDXXOHPbpSLaLACnRvcHAHwR3YuZJ1sEn1/mpSTkN/efOtzVcqzQSNVL6hfKSNg5gXMw+iGjRCFDiepijb2XzLHkTShCELq4ZH/nrBj807QKvDRTVASfyCUy3glk8eLFWLNmDUIh3QQtSRImTnRfk60QiLn6eAHwEeayvR8di1P836Zkn2arTL4RE1OqTTs8dtgLq/6EUqNfjB6GYfIKHOP7MYGj1IgldphLKJQxRVy/veFghKIKSgK5VweQZ0Xbb4/2+GShNRaPfSixRDnWu9i5EMUNmonVGJwUvgjdDr0Sj3/yGw71zWue59OSPphr4PfJqGuyjynMN6rK3L1ksmOVSLSnmkKwxnolyhgIFEhAVH/WNjH3UgQ+FDOt/ZarXdFV0juKGDGe5++WbcVFB/RJzQETLUbGBOCKFStwwgknYMGCBZAkKf62Hw/Mj5JJmSVW3JdXfoR1W+1AZcaOKdfxMUkg5rZjH0f3wVG+2VjS+3xggzbNyYohkpBBFOHK8NUpEYBsXcEOlcU4YYTe87PIL+es+4v33L7rxKF8ASiwcvPct5Go5kp2W7YnJiKDKML2tiMQxe/MPBkBU9kXv0+KW+cJI6ohBjAzApAyTK00GV6YJEMMLCvM2Reod9pdgmnrh+NPvq+M6wpoUxbAjD9EYlGHagBmNxl7elxzzTXo3bs3qqurUVZWhkWLFuHbb7/FyJEj8c0332TqMHKGYn9MAFovERtfk0xCiJlrJvR1XiiHYbOAzS7gK8JX488dX8L6jgfGp6UykxEA3ogcBAB4JnKk47IxYbeNCdZ+8uy9HTuE5Aq8B3dVWYCb0CKyJpl/+6qqxkuYuBWAbJcRVVUNIiYKH/w+2ZIEYleku5BhLYDpilM2Q/rCSpPZYh5hi9Ozbnr9/vm46jStILrgvjG/7EZV4MynZzkeS2VJxp2MhAcyNpLNnDkTt956K9q3bw9ZliHLMvbff39MnjwZV199daYOI2eICRRzoC5gfPAlUxMwxk3HDMIvNx+GMX2Sj13LZnQXMCxJICpkbJHaQ2VdwCkU1wDwlTICQ5uexG2RsxyXjQmhCw/oHZ8WeynIZ3hhCKyYiKqsQDMOX1FFRShuAfQWAwhopWhY4RiBjIAsGayVfp+EicO64thhXePTCqkMiVvSXQcwBrmArZgFYGNjPXc59rf/xeLNlvl2ZWA++GWDq2M5fZ8erpYjWoaMCcBoNIrKSs1d2b59e2zYoP2AevbsiaVLl2bqMHKGiKI9yHgxgOwDMaImLwomDOzoOs4nl4m7gJlC0EV+Gbcep/UtjSiqoRtFKq2rMbTitc4PrZjrpFsbPcGjOFB4lqeuVSUoKdJ/mw0oiX82//YjincLIHt//VFdZ3jQKZCtFkCf5nZ/6IwR+HHSePz1sH547Kz8r2Jw6shujsv4oGdyZ0wAkgnQgjlkohj8kAXeC65R9HnDbO27ZeIgXDehn8etEJkkY0+UwYMH45dffgEAjB49Gvfccw9mzJiBW2+9FX36UDApy0s/rsZ78zWBzLNksFnAUcg4Kngntg04M+H9FYJlCWCygBUVkeZC0G3KAujenEUbVVTDoMc+0Nj1YzgVR52nGFstrVQ9FNVtPpBSJsEjF5M9PGM6pZIkoYJJfGlguhWYBXpUUeP1BF13bmGSRf7YUmc4gAh88PskYdHtzlUluPKQvmhvKtWTj9x14lDHZWSDAMxUEkhGdpN1HDaok3BeHUoN30UCsFYtt0wTu4CdT7T5PjhycJecjVEuFDJ2dW688UYozVatW2+9FStXrsQBBxyAjz/+GA899FCmDiMn2M7EffHe0tgHnwIZi9Ve2Nb/DMtybikukJs09vBWVD0JxCdJcWubZgHUJaBsEoBXHdIXrT1YSi8I/Q1/CV2Gk4M344LQX7FMdbaixIglM5QwVr9CuE68B3qwpEP88y6mOLdZAEYUFfd+riVxuC0DY4kjZD5HVbm58LM+rVCD2t1Y2gwWwBQWgmbpUlVi+F6oLuCHzhhhmXZwf+0++UYZhlnKADwfOQwA4Ac/wfKa8BX4Q+mKK0J6CJao9Isba6DZAligt0pOkbEIzcMPPzz+eY899sBvv/2G7du3o02bNpTJZcLvY60Q1ktkdFNpn//Y2ohEje2F8pYWE4DhqIqHv/4DgPZg0wtEKwYXsNkCuFvrEuxscJ8BuhOVeFsZp33x6E8JNwtA9gFXCALQHAMoy4BaUoUTtvwfQgjgjoBeM5QXAyiaJ8IQThFVDBb3mAVQMrmACT4+Sb9f3J5/r9wycU/8sHwrXmyuQ1eoIqMk4EPfjhVYVq13HbrhiAGYtnQLIvDjtNDN8ensKepSVYKNNVpW8O9qd0wI3Svch0gMimAt9ZYdE1lJi45mbdu2JfHHgXUz8eLQzHFKAPDc1wsS3l8hCAvAKKZiQc9+WYK/ubmr2QJoFoCZdPWForEySfq0fHbVHznY2vcY0K5ZRUkAP6t9sUjthTpVtwCZM00jioKe7TQLodsYQDZgPhw1hgDwYgD9Odh2L1PIzNlLV+/YsiIfjmB+K4X8/CgtMo4Hop7gsqRfl+4OReOTcQGbBWAg35tm5wFptwBecMEFrpZ79tln03wkuYOPGdR4wdQSZ6ANSIkXp/UXiFWD574zWgDtYwCrSo3u33Q2SI9ZALswLd9yseevG7q1KcUjf9ISKczPcwlARbH+oKtn4pt4FsBYbKfba2MojKsYr3csC5j92dBDTYzxfknPb1WWjJ1ZCtUCCBjHo+OGd4VDe3MA2rOlQ2UxtuwKOi7rdXxjBenRQ7qgTZ6UrMpn0i4An3/+efTs2RMjRowQtnoijBgsgJwsX54AnKUMTP+B5Tg86w0bA7h6WwOe/m5lfN5itSf6Yn38e7nZxZFG9uzaCgDQtrwIUy/fF6UBX95aO1qXBeK/efNfKEkSSgP6ea9ns4DNMYBRNd6jlJvBLfkA1RgPxWZMRqKqwYoVhQ8+2Sg4RFYWwhgzW93cTjERGtUilEoh7jxZMv5GCjUGEDB6bobsVmUpbs/DJ0sGA4MZt3UAY9xwRH/c86lWxaMD4yF5mBOjSGQfaX+i/fnPf8Zrr72GlStX4vzzz8dZZ52Ftm2pbpYdxhhAngDUibm6eG2xCCN+jvXGJxuzPNfvbIx//nf4HGxXK/FmVCsOXVaU/nM89fJ98fumXThqsJ4xvFePNmnfb0vCXhezyJVgtHzWMy5gc7s3LQs4Vj7Jh1f6PogzN9wB1FdrC/iKgEijYR22zVwoqhhETAQ+i8WJXMBiWAvgj8pAvBE5CKf5v/G8nfsiJ+NfgVfxXnRfyzxJkgwJKYUsyGet2B7/7JMlVwJQNlm07WDFYKPKD3/Zs2tV/PMeHSvw8Bkj0LmqhMrz5Ahp92c8+uij2LhxI2644QZ88MEH6N69O0499VR89tlnZBEUwA5qTi5gt7FOhMACKEvCh/oOtML/Rc7FYrUXgMzEAO7ZtRVO36dHQQ2grMCzWgCN1411AZtjAL9YvBmNYd3Ct7zVPkB/puuK3+qSYt3IkahisgDKaF0WAPveQEkgfEoCssUFPClyEdYoHdDYqrdwPR5PR4/CscHb8LfwpZZ5ZgtgvlrF3XDJOL18GhvLbIdPcl87kX06Pxg5CUuUHrglfK5hGbYrTpFfxsRhXTGKCqPnDBkZzYqLi3HGGWfgiy++wOLFi7Hnnnvi8ssvR69evVBXV+e8gQLD75AEYhSA+iX8Mkpmdzt4rg+fLLkq7XHayO4ZcQEXYoyZ3YNLlowPtnrGEmGOAbzj4yWGTGBFVQGJWcZnFYAdpJ3xzxFFNYiYKGS0LS8yWgALSJh7oTTgw++mMkcKZBwcug97Vt/maVsqZPyq7s6tJeiTjVnZhXw5xuyud26SZQn9OlXgmKH2tUbNHg8zZpPMOWN7AgC2oDWODN2FF6KHG+azL2/0cpR7ZPyKybIMSZKgqiqiUX59okLHxzzweGVgWDcVa6a/Mnw1zgj9y/V+SgM+PHXOyASPMvfgvflqA6LzbTC0e5XjMqmgkCx/MQwWWEshaGOZIrYvsFOnlqiiGrNKZKugKEdT/HM4qhrurShk9GxXbkwCoYccl9KAD98rg3F96DIcHbwzPj0Kn+u2fG6QJGNrvkKOATTEpkqaMH7kT3thX0YY8tZZva3B5R6crYqsGC+UcmL5REauWDAYxGuvvYZDDz0U/fr1w4IFC/DII49gzZo1qKioyMQh5BSslYFXCDog6cKZdQE3oRgzlT1d7+eGI/rjUJuK8oUAmwRiB1l+MoP5gS7BeH1KoScH1MK+pEVEMVkAdxn7l4alIjwSOV5f3hQD2L1tBdqWFxkechQDyEfrUiNhqjIOi5pDJtKBNQkkbbvKetj7gn1xtBNiXmImVYjDY+L7ZWaTAMw90u7Tuvzyy/H666+je/fuuOCCC/Daa6+hffv26d5tTsPepGFORX3WTZXM23UhB1DHKPLLrs5DIVsa0k1jSH+hsZSBkYxliiol3Xrh1O3jtdlrMHmcYJniKtzS7318+JOe5R02xQDGLCk+ygJ2JFNtCi0vCAV8X7K/Rb/hs01IhcPv15wF7PTiy16PIrKO5xxpF4BTpkxBjx490KdPH0yfPh3Tp0/nLjd16tR0H0rO4BQD6Ide8y+ZJJDSQugt60CRX3ZnAeS8CaezDmAhsatJXMNSkiQEmOvzaXQULvJ/gmXKbu42LgkeSsEaSxZxOKoa7qeYuGCzK821IAkNc1HidCFLEthqnYWsxw0CkBFfdvVCAzYnrF+nCmCr/l2Fc43YCqb9G1kAc4+0C8BzzjmnoN/SEsHn5AIW9HZ0y5UH74Eflm/FxGFdk9pOPuCXW84CuHuHcizfUp/y7eYaYaYAs/ksyxIQYB4sc9QBOCJ4F9apbr0I4utmLpsRURTMU/vh2+gQrFQ7I/bs69iqBMV+GaoKDOzcyuV+Cwvzy+RurUsNJZVShSwDqkoWWcDGAmgj2uzmtS6zJkk5vRy3YdYp4EuRs2SkEDThDdba1IAS6/wkBeBfD+8PoH9S28gnXJVPSPHo9s+jBqAk4MPN7y1K6XZziXtOHoo7PlqC/5w8ND7NUgdQsj6EflN7WLbVvqIIW+s4xYNFFkAAUbMAjKpQIOOc8CQAwLnNx1JR7Me3NxyMEr+vIJN03GB2AafLGiRLkuG6FbJxQSQA7ax8dtZBc51TFfYZw4DRIl4fpKTOXCNzrQ0I17DWpkaV81aWpAAkdFRVhc9FYH+qk0AuPqAPXp61JqXbzDVOHdkdp+zdzfAQN5/limK/q8zbsiI/AJ4AtCl5Yap5EWu/p6+qr9uplfVFrNAJ+CSEm1vvmV3A6WpbKEsSGANgQcfm+gTJSXaJG3aCrrLE2uqSdx3H9euAdTsacMyQLobt7dam1LIskd2QAMxCQhFjKQozRXDf9/fD6Gg8FzkiJceVj6hwJ+54DxrWFeUVSZKgKFQI3Wrx078P6FyJu04cihnLt5pXsyDq0qJC0kXlwf8Cpt0Rnxc1nf+QSQAWsnvRDayALjZZ/NxY1RNBlgBFMn4vVNjfJ1vKytYFLLguJ+61G04YsRveW2g8obwSWR0ri/HiBfvEv39yzQHYXNuE3TtQRY9cg6I2s5D6kC7w2Gb1oRIt7mm6MtSyDo81SgdcGb4Gc1Vy94qIKqorAZgOMWAWIATAPrs+vXYcerUvd2UBFGahsi7gIacAQ08HADS2GYCIYhR8sTZyMQpZXLiBjaE0F1kPpMkFLJla8xW0BVDg9rUbz3gWve9uOBj3nTq82Yquo0LrHOK0jYFdWuGg/h1dHjWRTZAAzELYWIpvlOH4VemNrf3/hEVHv4dJ4Qtxb+RU2/U/i2rFnZ+MHpPW48wHFFV1Je7SIQDd9O4sNHjdWszWJR6sBZDdBJvV+38fLoF69L14otVVGLfxany8YJPtNinezx72/cV8rorS5ALWOoHo3wtY/xmEnjEe0H0SyPn79UL3tmWWbQDiKgdkGc8fyAWchYzr2yH+OYgiHBu6A2/vuy/CUQWvRcejmBfrxHBl+GrsEVmPJUyw/Bn7dMf8tTW4ZFzvtB13LjBhYEd8uaQ6/l1V3QWSOw16V4Wu9HwspP+s8OIx9+rRxnE9VgAO794aP6/ZCQBQGQvgZ4u34Pw6HyZXj3V1LIVsXfKK+fZIV8cUWTLuq5CvESu6/YaWbOJzYmcd9EmSq7CWQj7n+QZZALOQHu3KMHPSIYZpiqpiZ4Mm/JyKP4fhxxK1J9iQ+t7ty/HJNQfghBHdxCsWAI+euZfh+85GezEdIyYAK5h+wKx++0DZ1/OxmLNQCb4FsHOVcwJGKeO+6lTJLq9vT4GEuqD7+FnesRQyb/95X4zsyRfj5hckrwIw1sf8Z2UP2+U08cFYvgr4GrF/u6hbzdBuxhaWZusgEyGrldhh5qmQ4ONcRxKA+QNZALOULlXGjKrXZ6/F2/PWATC6tSRL+24+bvrdFgLFfmOsmNu6brHB9tNrD8D+d09LybFQDKAVntvVjZgoDejLsILx1/W1iEl+FRJenLkqqWMpZPbu2QZv/Xlf9PrHR5Z5ZlHgVgBeGroO3yuDIUHFRGUmPouOsl1eMlsAC3hYY63l7NlnRV4bU20/uwxhrci2ZJrG2S/dF3lDAd8+uUVM/AH8zGAnqJctn78fOcDVcrFBr1sb+/6zXmCzgPt3qsQ7l3u3IuYbif5O2QD2rq11AfjtH9vinxVIeP2nta63SbeMe8wCsMjvfPK2qxX4RhmGepSiDmV4LToe22H/QiZLkrFsUAFbo0QWQNYF7JclrFW0kKJ1antb9zBP2PGcFCQA8wcSgDmJ9xuQblo+7SuKXS2XniQQ/fNn143DCBexbvlOopZqtg4dW45CYdq9OfUOthxLAYsLOx4+YwQuGdcHe/VoLVzGqQxM9XWbMCr4OIKw1jm1wydLphhAT6vnFeyYZLAAGtrCyTgrPAmvRQ7GmaF/Wu4vyXAurUkgvEQ1cgHnD+QCLhDIApgc3LfjJHsBUwyglURzB1iXYyyrETDGNHntm00uYD4Th3XFxGFdMWfVdpw8ZSYuHdcHEVM4g5MLWIGEKKfNpROSZIpbK2Axwo5J7HkwZAf7JKxWO2NS5GIA1gQR9ptPtrqAeWEqacrvIVoAupQFglNT70Ln8+vG4S+H9hPO5wnA2yJnI6gG8N/wyQntc0DnyoTWy2cStbqx67UuDXCX8Sq3C1lcuGFkr7ZYcusRmHTUQMs8swv41cjB8c91UjlenZ1YFxwJkq3VqpAwuoD16cVMTcxvfqtmV7EmgTDrme89FRJfABbwOc83yAJYIJAF0J5+nSrRr1Ml/vvF79z5PAH4m9oDg4LPWiwZsmR074o4cnBn3HHCYAzr1jqRQ85LRK72A/t1wPTftximnTu2J16YuRoAEIzotTNbCQSgU/a8GbplnDG3gIthTrb6Z+Ri3BS5AG1QhzqUoOmrZQntr8gnG651IWsR1kLN1sosZ65JfcjYNtQuCcR8LlXwa5WSZTx/IAFYIFAMoDdO2bsbvliyGTsbwgDEb708N5bfJxva+YmQJAlnju6Z3IHmGaLf6XPnjcK2+hBG3fFlfBrbe7SBedCxXUFYl5ZXlz3dM4nDa80XhQ9bUcVZ2j0BvwQ5RGVgYlw3oR+21QfRt5PuTShnSlUFfBIiihpP5jBbx9nkEc0FbIT3Ilvo5zyfIAFYIJAF0BsqjO4lL2KgyKUAJKyIzrMsS2hbXmRaVrd6dBM0omcfaZ5jAOlB5xqzoYgVIakk4JONsW8FPq5dM6GvZRor0Er8PtSHIvG7oGOrEpw2sjvemGPNhud1AuG5gAv9nOcTJAALBLJmeENVjS5AL+evJODzVHCY0LE7z+Y5flnCPScNxcaaJly4f29srQthUFdxGRFyAacPs6uwVNSbOUn8siTMfiU02CtR5JfREJbiCr1DZTEmnzgkLgDZ88erA6hwk0DorOcLJABzHLe3YrpaM+UrKlQgwWxDN71rCT5259k8S5YlnDqqe/z7PxxqOnpNAqEHnXvMAtAu1iwZJEkyeDMoj95KFePmVVSjpCv2y0YLns1L7m3HD0Z1nfVFllzA+QM9qQoEeph5xGQB9PJAKwnQbZUoY/q0E84zF/31Gtbg1QJYyEWGvWIWgOk8d2QBtGdUL72eaFRRDdfGfM8YS+oYt1NZUsS1AJILOH8gC2CO47YVHMUAesMSA+jhgVaSJvdXIXDxAX1QWeLH/nu0585nM6y9WiIoCSR9mHVCOq1ETkWmCx1WfGsCUJ9n95vWhJ2xtAyvfFiajLtEC0B3Uo7TrtxdJX16mHlDVVVjjSwvSSDkAk6YIr+Mc8b2Qh+mmwdLook5QCJJIJ4WL2hUxsrUtrworcWCfQIXJmHFXGze7p4xi3YJMs7dt5elXik9S/IHelLlOG5vxnTF5OQrsmxsg+Rl0KN4y/SRqCgHvFsAKQvYPQqT9P7dDQen9dz5DS5gukY8JgzsBAA4Z2wvw/TYPTN4Ny1Z6vgRXS3zYkiyhKrSAD69dhwuO3D3+HRyAecP5ALOcVwLQHKbuOLvRwzASzNX4S+H9cf3y7bGp3sZ9CgJJH1o7i1NmLu5Jj5JVyZRr72A6UHnGvZlqbzYn9ZzRwLEmYfOGI45q3ZgTJ92ePLbFfHpsefAO5fvhx31IXRsVRKfp2UB6xgzhPXPlASSP5AAzHHcjoX0MHPHnw/aHZcd2AeSJBliZ7zEUBaRBTBtsPUVi1xYtQNgsxiNnROCDrUayQLoHksMYIbGG7pEfMqK/BjXr4NleuyyBHyyQfyx82Kw59bQfo+eJXkDPalylHWqFiT/c9HerpYnF7B79CBq/anmRQyQCzgzuDnPfkS501uX8dvFsdCDzj2qKdaMxHN2YpedrXUCYefzy2CRBTB/IAtgjnJI8L+oRAO6+zsB2Om4PGUBW6kS9IyNIbIA3jJxEGb8sQ0NoQh+WL4tvi1FVRGOKuhcVWLeFJEG3AjAIvALcosytTtWFqN6VxAAJYF4wZxskEoBOKxbFU7fpwdG9GhtmUeXKHWYxaHRAph48hWRvZCpIkcJIYBtqPLgAqZLbcbJCiRKAjl/v954+tyRBgFSEpDx078mYP7NhyFA1taMkIwF0CdLeO+K/fDc+aMM0x8+Y4S+DFk6XGN1Aadu236fjDP26YEBna1dXugSpQ9RDCBZxvOHvFUFkydPxqhRo1BZWYmOHTvi+OOPx9KlSw3LNDU14YorrkC7du1QUVGBk046CZs3b26hI04Mt2/aZAG00qGi2HY+a9TguU7YSUV+GSUBH0oCPiognCGK/N5iAM8d2zP+2S9LGNa9NQ7u3zE+bbfWpYYSPnQd3WMuBJ1KC6CdEKcs4NSye0e95Av7+ycXcH6StwJw+vTpuOKKK/Djjz/iiy++QDgcxmGHHYb6+vr4Mtdddx0++OADvPnmm5g+fTo2bNiAE088sQWP2jtu38YoBlDntuMHo0tVCe46aajtcuaHmhljiyXdpUjjY2Zwk9kekHQB2LV1afwzT6BIErm6EiaNSSDkvMgcFcV6VBg/GjC11l2iZcnbGMBPP/3U8P35559Hx44dMXfuXIwbNw41NTV45pln8Oqrr+KQQw4BADz33HMYOHAgfvzxR4wZM6YlDtszlAXsnbPH9MTZY3o6Lueg/wxigc38pQD4zGDnAn7rsrE4ecpMBBgXcGWJ7vLnvRD5ZMlY7oIedK7ZrU2p4XsqbwG7sYtutdTiJvOXSorlD3krAM3U1NQAANq2bQsAmDt3LsLhMCZMmBBfZsCAAejRowdmzpzJFYDBYBDBYDD+vba2Ns1H7QzVAUwfXiyArOuQtHZmsHMBt23ukMO6gMuL7Vv0yZJkEO/kAnbPVYfsgZqGMI4Z1gWA88uTF+iFKpMYW8HxPpM3KX8oCAGoKAquvfZa7Lfffhg8eDAAYNOmTSgqKkLr1q0Ny3bq1AmbNm3ibmfy5Mn4v//7v3QfrifcDo5kAfSOowA0xQDGaC+ILbx6fF/8vGYHLjqgT0qOr9CxswDGfu/Vauv4NNa9FeLUANRcwMw2SHi4prIkgLtP1kMqzEkhyWBrAUzdbgiYRJ+gDAwZE/KHgriSV1xxBRYuXIjXX389qe1MmjQJNTU18f/Wrl2boiNMHEoCSR+KfZ1gmAsLx/jT6B44bnhXy9Ld25TipQtH40BOgVbCO3a//ZhouC9yCj6MjsZ5ob85Zg3LkiR86BHeMNcFTAa7sausuCBsGJnDqADjyGQBzEvyXgBeeeWV+PDDDzFt2jR069YtPr1z584IhULYuXOnYfnNmzejc+fO3G0VFxejVatWhv9aGre6jm5a70QcFCB77lkBWOz34cHTR3CWp2uQKWICsAYVuDJ8Db5RRjj2kPVJkiHhgAwdiZNCAyD3vrn5mEEY06ctzhnrHMtLuEeU+GG0ANI4li/k7RCnqiquvPJKvPPOO/j666/Ru3dvw/y9994bgUAAX331VXza0qVLsWbNGowdOzbTh5swFAOYPpzcWCIXsJvlieSxO+e8+0IyxPdZ15Ek44OOBHvipDIGkHctL9i/N16/ZCzKisgCmEoMAlDw+/dTdlTekLdX8oorrsDLL7+MV199FZWVldi0aRM2bdqExsZGAEBVVRUuvPBCXH/99Zg2bRrmzp2L888/H2PHjs2aDOCT9+7muIwkSXjw9OE4nuNyZKGXttTDWpHcCGzSE6mlUytxxxXe9WDvAd7DTUsCYbdBFyxxUqcAqfBw5pAkpg4mM50sgPlJ3grAxx9/HDU1NTjooIPQpUuX+H9vvPFGfJn7778fxxxzDE466SSMGzcOnTt3xtSpU1vwqI385+Shji4OnyThuOG74QGOy5GFMhpTD3tKP16w0Xl5CllPGSftZf9yxEvgMFgAOetomlGfU07xZQmTUgsgjV0pwdVpFJWBoRjAvCRvRzg3QcglJSV49NFH8eijj2bgiLwjSZKhvhwP8uy2HOwAGXGR9kjPsdRRWmT/w/dxHlLGdlacdUwWwAoSgAmTyhhAqmCQGtwJaX6crLEOIF2PfIHkQ5bj5P5gTfN3nTgEp43snu5DIjhUldr3FQbICptKnGK/eA8powWQP58t/VNZQgIwUZxKKHmBBGBqcBPTKoqTlQwuYJIN+QJdySxHcbAssTf16fv0MNTiItJLbaNeZPiNS53jRuk5ljpKA85Fnc2ICtvq6wD1Qb1zCLmAE6c8RckZ7SuKcf2h/VKyrULHlW7jV4ExtYKjgSxfIAGY5Th5FulmbDmawrpYGNDZuSQQxQCmjn16t7WdX+SXcemBxoLbslMMoCShgrH6OdUNJMSM69cBxw3vij06ViS1nZ/+Nd7Qw5lIHDcuYFmgANl7h+6L/IFecbMcL90oiMwS9tjugLR68nz9lwPxR3Ud9tujveOyk44ciJ9Wbse8NTsBuMgCliXs3qECtx0/GJ0q+d1cCHf4ZAkPnj4C/5uzFje89WvC26GwidThqqyRoBOIoUMODWR5AwnALCfqwQVMZBiPcU40cCZPnw4V6NPBvVVJFPcncgEDwNljqLhwqqBffPbgqpyOIAaQHeoClAWcN5AtN8txsgBSiYQWxMO5H9qtCgf175jGgyF4GAvb6p95L070MpV6EjmnlGWaHty8gBpekpjp7HOIXmTzBxKAWY6TAKSErJbDyzD4/pX7u+oWQqQWUeKHKAaQSC2JnNIurcUFvonE8ewCZpaPRPW2mDSO5Q90JbMch3a09NDKAK3L+CVe6NRnP4ZaZg6t4KjjROpJZHxKZRFpQsdN7oYsCJMIsQKQkkDyBrqSWU4Dk2nKgwRg+mlbVsSdTuc++xG5fXkZ2aT/Uk8itwgJwPTgKlxIYCUPhnUBSIk5+QMJwCzHMQaQnlppo7xIqzU3YVAn7nw689mP0AXMTQKhK5oNtK/gv3ARyeFGuIkSpcJRB1cUkZOQAMxyrj+0H0b1aoPbjx/MnU/PrPTx4dUH4MajBwoL0ZJgyH6MLmBmOufS9etUmYEjKiwSuUfuP2049unVFi9csE8ajqhwcWUskPhfgiQA8xIqA5Pl7N6hAm9eti821jTixnet853M+j3bleEvh/VPz8HlOb3bl+OiA/qIFyD9l/VIggcaK0zeuXxffLpoE64Z3zdzB1YgJPKO1KdDBf532djUH0yB40b/7SrSvR2GGMAICcB8hARgjiDqImEXuF5Z4sf0vx2crkMqeMj7nv0YYwD500f0aIMRPdpk7qAKCLKSZw9ukpyqy/vjX+ELsF5tj2uY6eQCzk/IBZwjiO5duwGWWvaklwP7aXX9yors+9ISLYcwC5jMtxmBznL24CYJRJKAV6IT8I0y3BAzSBbA/IQsgLmCyXoRyw2xe6mjgqrp5aIDeqN9RRHG7t6upQ+FEOAlCYRIPZQxmj24scaK+mVfMq4P/jdnHU4d2S0NR0a0FCQAcwRDM25ZjtdlsgvsJQtgegn4ZJwysntLHwZhAytAjHUASZhkAjrN2YO7VnDMR+bzHh0r8dttR6CYikDnFXQ1cwT21mW7f9g9yKhnI1HoiO4AujMyA53n7MFVIWibMImSgI9enPIMEoA5Anvj+QxWDeuyRw7uDAC49MDd035cBJHNGJJAZPv7hkg9lASSPbiKAWQ/06XLe8gFnCOwDyxZIAZjPHTGCKzcWo++HSsycWiEAzSQthwGy7mgzymRPtye5oBPQjiqorKEHknporKE39KShW6LwoLuthzBkM0o8z/HCPhkKmqbRfRqV97Sh1CwSAKXFj3nMoNbC+ATZ++Nr5ZU4/z9eqf5iAqXqlJnAejUL5vIL0gA5ggS46xnEz8o0zd7efeK/fDI18sw6aiBLX0oBYvRcq5/podbhnB5nru2LsUdJwxJ77EUOK1cCECDC5hek/IeEoA5gsiVRZm+2cvw7q3x9LmjWvowChx+d3tyAWcGigHMHkb3buu4jEQWwIKC1EOOIAlKWFCmL0GIMXYCkXDCiN0AAJdRglRGcDs6kbUpfXx89QG484QhOG54V8dlqVZmYUEWwByBtfqxiR9+sgAShCtkScJ9pw7Dv4/d01U8FJE8bi2ArcvoeqSLQV1bYVDXVq6WpW45hQUJwByBvRkpBpAgvCNBs56T+MscdvrvtJHdMX5gR9SHIujUqiRzB0UIoTIwhQUJwBzBWM9M/0wxgAThDopHyzx2Z/yooV1wYL8OGTsWwhmJHzJL5CkkAHMEcyxTDD/FABKEkFjPbMCYSU9kBlGyzYdX7Y/Bu1Vl+GgIJygJpLCgITFHMNQBZAWgTJeQINxAz7PMYxYRrcsCeO+K/Uj8ZSnG60V3TL5D6iFHENUzoyxggrBDNwGSCzjzNIWjhu/3nToMw7q3bpmDIRyhQtCFBQnAHMHQC5hNAqEYQIJwBT3QMk9NY9jwnTJLsxtJ8JnIT0g95AjGQtBUB5Ag3MDGAJIFMPM0howWQFIV2Y0sqDdL5CckAHMEURIIZQEThDvoeZZ5jh7ahTJLcwi6VoUFqYccgX0bY/M+qA4gQbiD3I+Zp7IkgK+uPzD+naxKuQNdqvyHBGAO8v/t3XtYlGX6B/DvMJxm5KSIgIoOaJ4SRc0Duj/FE1grHi4Vw2KD1DbDA1m2ubmSWiqbtYnrkquiRprlobJU3NbEzEMKIkqSpInVLgePKEKCzP37w4t3mTiIwjDMzPdzXXNdzPs+7/PcNw8v3LynUfMIIFGdVDoDDP6vZBoGjxYxYRx0f/wkEOvC6sEM2VT6S+Zoxykkqom36/8+YYLXAJoGP13CfPCzgK0LHwRthiofAXSwVZswEqKm7aXgzniklRN6+LgZ/ONEjcfwujLOQVPGf5KsCwtAM2RjUADyCCBRTVo0s0fkIF9Th2HVKhd9rC+aNh4BtC6sHsyQvtKzLXgEkIiaMt5Zaj4MT9dztiwdC0AzVKavVADyGkAiMhesKZo03rBjXVg9mKG75Xrla3veBUxEZkJjxzMWTRlPAVsXVg9myE1rp3zNC9uJqCmrXEg019qbLhC6Lz4GxrqwADRD3q4aU4dARFQnd8v/d8kKC8CmjY/ssS4sAM1I9NAOGPWoF159vAsAw2ecERE1RXf1/7tkxdmRD55oymx4DaBV4d5oRuaFdFG+zogN5vU0RNTkdfBwwpN9feDtquElK02dqoavySKxADRTrhq7+zciIjIxlUqF5RN6mDoMqgPD+o8VoKXjKWAiIiIyPAXM+s/isQAkIiIiPrTbyvAUcCMoLy9HWVmZqcMgI7Gzs4Nazesxichy8JNALB8LQCMSEeTl5eHGjRumDoWMzM3NDV5eXvylSURmi0cArQsLQCOqKP5atWoFrVbL4sACiQiKi4tRUFAAAPD29jZxRERE9cc/V5aPBaCRlJeXK8Wfu7u7qcMhI9Jo7j2Yu6CgAK1ateLpYCIyS5Xv/OVdwJaPN4EYScU1f1qt1sSRUGOomGde60lEFoH1n8Wz+gJw9erV0Ol0cHR0RP/+/XH8+PEG7Z+nfa0D55mILAl/pVk+qy4AP/roI8ydOxexsbE4efIkevbsiZCQEOV6LiIiImvBm0Csi1UXgO+88w6mT5+OqKgodOvWDe+99x60Wi0SExNNHRoZkU6nw7vvvmvqMIiImiye1bB8VnsTSGlpKdLS0jB//nxlmY2NDUaMGIGjR49Wu82dO3dw584d5f3NmzeNHqcpBAUFISAgwGKLpBMnTqBZs2amDoOIqMli+Wf5rPYI4JUrV1BeXg5PT0+D5Z6ensjLy6t2m2XLlsHV1VV5+fj4NEao1MA8PDx4cw4RUS14ANDyWW0B+DDmz5+PwsJC5fXzzz+bOqQGFxkZiYMHD2LlypVQqVRQqVTIyclBZmYmHn/8cTg5OcHT0xMRERG4cuWKsl1QUBBmzZqFmJgYNG/eHJ6enli7di1u376NqKgoODs7o2PHjti7d6+yTUpKClQqFXbv3o0ePXrA0dERAwYMQGZmZp1i3bhxI9zc3PDFF1+gc+fO0Gq1mDhxIoqLi7Fp0ybodDo0b94cs2fPRnl5ubLdb08Bq1QqrFu3DuPHj4dWq8UjjzyCXbt21f+bSURkRiqf9uVjYCyf1RaALVu2hFqtRn5+vsHy/Px8eHl5VbuNg4MDXFxcDF4PQkRQXHq30V8iUucYV65cicDAQEyfPh25ubnIzc2Fs7Mzhg0bhl69eiE1NRXJycnIz89HWFiYwbabNm1Cy5Ytcfz4ccyaNQszZszApEmTMHDgQJw8eRLBwcGIiIhAcXGxwXbz5s3D22+/jRMnTsDDwwOhoaF1fpxKcXEx4uPjsXXrViQnJyMlJQXjx4/Hnj17sGfPHiQlJWHNmjXYvn17rf0sWrQIYWFhOH36NJ544gk89dRTuHbtWp2/b0REloRHAC2f1V4DaG9vjz59+mD//v0YN24cAECv12P//v2YOXOmUcYsKStHt4X7jNJ3bc4uDoHWvm5T7erqCnt7e2i1WqUQfuONN9CrVy8sXbpUaZeYmAgfHx9kZ2ejU6dOAICePXtiwYIFAO4dLV2+fDlatmyJ6dOnAwAWLlyIhIQEnD59GgMGDFD6io2NxciRIwHcKyLbtm2LTz75pEqBWZ2ysjIkJCSgQ4cOAICJEyciKSkJ+fn5cHJyQrdu3TB06FAcOHAAkydPrrGfyMhIhIeHAwCWLl2K+Ph4HD9+HKNGjarT942IiMicWG0BCABz587FM888g8ceewz9+vXDu+++q5yypP/JyMjAgQMH4OTkVGXdhQsXlAKwR48eynK1Wg13d3f4+/sryyqut/ztY3YCAwOVr1u0aIHOnTsjKyurTrFptVql+KsYQ6fTGcTq6el530f7VI69WbNmcHFx4eOAiMiqVD7oxyOAls+qC8DJkyfj8uXLWLhwIfLy8hAQEIDk5OQqN4Y0FI2dGmcXhxil7/uNWx9FRUUIDQ1FXFxclXWVP/vWzs7OYJ1KpTJYVnF9iV6vr1c8ld1vzIpl9xvzYbYhIrJUvAbQ8ll1AQgAM2fONNop399SqVR1PhVrSvb29gY3TfTu3Rs7duyATqeDrW3Dx3/s2DG0a9cOAHD9+nVkZ2eja9euDT4OERHVzOBB0Kz/LJ7V3gRCNdPpdPj222+Rk5ODK1euIDo6GteuXUN4eDhOnDiBCxcuYN++fYiKijIoFB/W4sWLsX//fmRmZiIyMhItW7ZUrsskIqLGx/rP8rEApCpefvllqNVqdOvWDR4eHigtLcXhw4dRXl6O4OBg+Pv7IyYmBm5ubrCxqf+P0PLlyzFnzhz06dMHeXl5+Pzzz2Fvb98AmRAR0cPgJ4FYPpU8yDNCyMDNmzfh6uqKwsLCKo+E+fXXX3Hx4kX4+vrC0dHRRBE2bSkpKRg6dCiuX78ONzc3U4dTL5xvIjJ3u0/nInrLSQDAj0ufgI2N5RaBtf39thY8AkhEREQGeADQ8rEApCar4pNHqntVfiYhERHVn+FNIKwALV3TvyWVLFZQUFCtn1Kybt06lJSUVLuuRYsWxgqLiIjI4rEApCarTZs2pg6BiMhq8JifdeEpYCIiIiIrwwKQiIiIyMqwACQiIiLe+WtlWAASERERWRkWgERERATeBmJdWAASERERWRkWgFRFUFAQYmJiTB0GERE1Il4DaF1YABIRERFZGRaAZCAyMhIHDx7EypUroVKpoFKpkJOTg8zMTOWj2Tw9PREREYErV64o2wUFBWHWrFmIiYlB8+bN4enpibVr1+L27duIioqCs7MzOnbsiL179yrbpKSkQKVSYffu3ejRowccHR0xYMAAZGZm1inWjRs3ws3NDV988QU6d+4MrVaLiRMnori4GJs2bYJOp0Pz5s0xe/ZslJeXK9slJSXhscceg7OzM7y8vDBlyhQUFBQo6xcvXozWrVvj6tWryrLf//73GDp0KPR6fX2+vURERE0CC8DGJAKU3m78Vy0ft/ZbK1euRGBgIKZPn47c3Fzk5ubC2dkZw4YNQ69evZCamork5GTk5+cjLCzMYNtNmzahZcuWOH78OGbNmoUZM2Zg0qRJGDhwIE6ePIng4GBERESguLjYYLt58+bh7bffxokTJ+Dh4YHQ0FCUlZXVKd7i4mLEx8dj69atSE5ORkpKCsaPH489e/Zgz549SEpKwpo1a7B9+3Zlm7KyMixZsgQZGRn49NNPkZOTg8jISGX9a6+9Bp1Oh2nTpgEAVq9ejSNHjmDTpk2wseEuQ0SWiWeArQs/Cq4xlRUDS1s3/rh//i9g36xOTV1dXWFvbw+tVgsvLy8AwBtvvIFevXph6dKlSrvExET4+PggOzsbnTp1AgD07NkTCxYsAADMnz8fy5cvR8uWLTF9+nQAwMKFC5GQkIDTp09jwIABSl+xsbEYOXIkgHtFZNu2bfHJJ59UKTCrU1ZWhoSEBHTo0AEAMHHiRCQlJSE/Px9OTk7o1q0bhg4digMHDmDy5MkAgGeffVbZ3s/PD/Hx8ejbty+Kiorg5OQEtVqNDz74AAEBAXj11VcRHx+PdevWoV27dnX6HhIRETV1PJxB95WRkYEDBw7AyclJeXXp0gUAcOHCBaVdjx49lK/VajXc3d3h7++vLPP09AQAg9OtABAYGKh83aJFC3Tu3BlZWVl1ik2r1SrFX8UYOp0OTk5OBssqj5mWlobQ0FC0a9cOzs7OGDJkCADgp59+Utr4+flhxYoViIuLw5gxYzBlypQ6xUNEZK5UvAvEqvAIYGOy0947GmeKceuhqKgIoaGhiIuLq7LO29v7f8PY2RmsU6lUBssqfrk05HV09xuzYlnFmLdv30ZISAhCQkKwefNmeHh44KeffkJISAhKS0sNtvv666+hVquRk5ODu3fvwtaWuwsREVkG/kVrTCpVnU/FmpK9vb3BTRO9e/fGjh07oNPpjFIEHTt2TDm9ev36dWRnZ6Nr164NPg4AfP/997h69SqWL18OHx8fAEBqamqVdh999BF27tyJlJQUhIWFYcmSJVi0aJFRYiIiImpsPAVMVeh0Onz77bfIycnBlStXEB0djWvXriE8PBwnTpzAhQsXsG/fPkRFRRkUig9r8eLF2L9/PzIzMxEZGYmWLVti3Lhx9U+kGu3atYO9vT1WrVqFH3/8Ebt27cKSJUsM2vzyyy+YMWMG4uLi8Lvf/Q4bNmzA0qVLcezYMaPERETUFHTwaPoHKKjhsACkKl5++WWo1Wp069YNHh4eKC0txeHDh1FeXo7g4GD4+/sjJiYGbm5uDXJX7PLlyzFnzhz06dMHeXl5+Pzzz2Fvb98AmVTl4eGBjRs3Ytu2bejWrRuWL1+OFStWKOtFBJGRkejXrx9mzpwJAAgJCcGMGTPw9NNPo6ioyChxERGZmp+HEz6Y2h/7YgabOhRqBCqRB3hGCBm4efMmXF1dUVhYCBcXF4N1v/76Ky5evAhfX184OjqaKMKmLSUlBUOHDsX169fh5uZm6nDqhfNNRGQ+avv7bS14BJCIiIjIyrAApCar4pNHqntVfiYhERERPRjeBUwmExQUhNquQFi3bh1KSkqqXdeiRQtjhUVERGTxWABSk9WmTRtTh0BERGSReArYyHiPjXXgPBMRkTlhAWgkFZ9GUVxcbOJIqDFUzPNvP4WEiIioKeIpYCNRq9Vwc3NTPoNWq9XycxYtkIiguLgYBQUFcHNzg1qtNnVIRERE98UC0Ii8vLwAQCkCyXK5ubkp801ERNTUsQA0IpVKBW9vb7Rq1QplZWWmDoeMxM7Ojkf+iIjIrLAAbARqtZoFAhERETUZvAmEiIiIyMqwACQiIiKyMiwAiYiIiKwMrwGsh4qH/968edPEkRAREVFdVfzdtuaH+LMArIdbt24BAHx8fEwcCRERET2oW7duwdXV1dRhmIRKrLn8rSe9Xo///ve/cHZ2bvCHPN+8eRM+Pj74+eef4eLi0qB9NyZLyQNgLk2VpeRiKXkAlpOLpeQBMJffEhHcunULrVu3ho2NdV4NxyOA9WBjY4O2bdsadQwXFxez31kBy8kDYC5NlaXkYil5AJaTi6XkATCXyqz1yF8F6yx7iYiIiKwYC0AiIiIiK8MCsIlycHBAbGwsHBwcTB1KvVhKHgBzaaosJRdLyQOwnFwsJQ+AuVBVvAmEiIiIyMrwCCARERGRlWEBSERERGRlWAASERERWRkWgERERERWhgXgA1i2bBn69u0LZ2dntGrVCuPGjcO5c+cM2vz666+Ijo6Gu7s7nJycMGHCBOTn5xu0mT17Nvr06QMHBwcEBARUO9bHH3+MgIAAaLVatG/fHm+99VadYty2bRu6dOkCR0dH+Pv7Y8+ePQbrd+7ciUceeQS2trZQqVRo0aKFWeahUqmqfXXv3v2Bc8nIyEB4eDh8fHyg0WjQtWtXrFy5skpMKSkp6N27NxwcHNCxY0ds3LjxvnmICBYuXAhvb29oNBqMGDECP/zwg0GbN998EwMHDoSdnR1sbW3r9fNlylxSUlJqnJchQ4YYJZfc3FxMmTIFnTp1go2NDWJiYu6bR4XVq1dDp9PB0dER/fv3x/Hjxw3W//Of/4Sfnx/UajVUKhU8PDyMNifGyiMnJ6fGOenbt69Rctm5cydGjhwJDw8PuLi4IDAwEPv27btvHk1xXzFWLqbYV7755hsMGjQI7u7u0Gg06NKlC/72t7/VOxfg3ry0b98eNjY2UKlURp0TY+VR25ycOHHivv2bJaE6CwkJkQ0bNkhmZqacOnVKnnjiCWnXrp0UFRUpbZ5//nnx8fGR/fv3S2pqqgwYMEAGDhxo0M+sWbPk73//u0REREjPnj2rjLNnzx6xtbWVhIQEuXDhgnzxxRfi7e0tq1atqjW+w4cPi1qtlr/+9a9y9uxZWbBggdjZ2cmZM2eUNu+//7507NhRIiMjBYBs3brVLPPIzc2V3NxcCQoKknfffVeWLFkiACQoKOiBc1m/fr3Mnj1bUlJS5MKFC5KUlCQajcYgzh9//FG0Wq3MnTtXzp49K6tWrRK1Wi3Jycm15rJ8+XJxdXWVTz/9VDIyMmTMmDHi6+srJSUlSpuFCxfKO++8I+3btxeNRlOvny9T5nLnzp0q8zJhwgRp3bq10XK5ePGizJ49WzZt2iQBAQEyZ86cWnOosHXrVrG3t5fExET57rvvZPr06eLm5ib5+flKm7/97W/yyCOPyMSJEwWAfP3112aXx927d6vMSXR0tGg0GgkODjZKLnPmzJG4uDg5fvy4ZGdny/z588XOzk5OnjxZay5NcV8xVi6m2FdOnjwpW7ZskczMTLl48aIkJSWJVquVNWvWNMi8dO7cWUJCQsTJycmoc2KsPCrPScVr2rRp4uvrK3q9vta+zRULwHooKCgQAHLw4EEREblx44bY2dnJtm3blDZZWVkCQI4ePVpl+9jY2GoLp/DwcJk4caLBsvj4eGnbtm2tP4hhYWHy+9//3mBZ//795Y9//GOVthcvXhQAkp6ebtZ5VBg7dqwMGzas3rlUeOGFF2To0KHK+1deeUUeffRRgzaTJ0+WkJCQGvvQ6/Xi5eUlb731lrLsxo0b4uDgIB9++GGV9hs2bBBXV1flvTnnIiJSWloqHh4esnjxYqPlUtmQIUPqXDj169dPoqOjlffl5eXSunVrWbZsWZW2Bw4cEABy/fp1s86jQkBAgDz77LONkkuFbt26yaJFi2pc31T3lcbIRaTx95UK48ePl6effrrBcqk8L+ach4jhnFgqngKuh8LCQgBAixYtAABpaWkoKyvDiBEjlDZdunRBu3btcPTo0Tr3e+fOHTg6Ohos02g0+OWXX3Dp0qUatzt69KjB2AAQEhJy37HNPY/8/Hzs3r0bU6dObbBcCgsLlT4eJiYAuHjxIvLy8gy2c3V1Rf/+/ev0fTT3XHbt2oWrV68iKirKaLk8jNLSUqSlpRmMbWNjgxEjRjTavmKqPNLS0nDq1Cmj7iu/pdfrcevWrVrbNNV9pbFyMcW+kp6ejiNHjmDIkCENmkvl8c05j8pzYqlsTR2AudLr9YiJicGgQYPQvXt3AEBeXh7s7e3h5uZm0NbT0xN5eXl17jskJAQvvvgiIiMjMXToUJw/fx5vv/02gHvXCul0umq3y8vLg6en5wONbQl5bNq0Cc7Ozhg3bhzCwsLqncuRI0fw0UcfYffu3feN6ebNmygpKYFGo6k2j4p2dR27QkPNiylzWb9+PUJCQtC6dWuMGTPGKLk8jCtXrqC8vLzaXL7//vsatzPmnDRWHuvXr0fXrl0xYMCARpuTFStWoKioCGFhYTW2aar7SmPl0pj7Stu2bXH58mXcvXsXr7/+OqZNm9aguQCNMyfGzqNiTtq2bVtjv+aORwAfUnR0NDIzM7F169YG73v69OmYOXMmRo8eDXt7ewwYMABPPvkkgHv/4f/0009wcnJSXkuXLn3osZYtW2b2eSQmJuKpp57CSy+9VO9cMjMzMXbsWMTGxiI4OLjO223evNkgl0OHDj10DEDD/HyZMpdffvkF+/btw9SpU02ay6FDhwxy2bx580PH8PLLL5t1HiUlJdiyZUujzsmWLVuwaNEifPzxx2jVqhUA891XjJVLY+8rhw4dQmpqKt577z28++67+PDDDxsslwrmnkflObFkPAL4EGbOnIkvvvgCX3/9tcF/B15eXigtLcWNGzcM/svJz8+Hl5dXnftXqVSIi4vD0qVLkZeXBw8PD+zfvx8A4Ofnh+bNm+PUqVNK+4rD415eXlXu1L3f2IcOHcLRo0fNNo9Dhw7h3LlzCAgIwOHDh+s1J2fPnsXw4cPx3HPPYcGCBQbraorJxcUFGo0GY8aMQf/+/ZV1bdq0QW5urtLO29vbYLua7poGGubny9S5bNiwAe7u7ti/f79Rc7mfxx57zOBnzNPTEw4ODlCr1Q+8r+zbtw/ffPON2eaxfft2FBcX4+zZs/jXv/5l9DnZunUrpk2bhm3bthmcejOnfaUxcmnsfcXX1xcA4O/vj/z8fLz++usIDw9vsHkpKSkx+zwq5mTMmDHVjm0xTH0RojnR6/USHR0trVu3luzs7CrrKy5y3b59u7Ls+++/f+CbJ6oTEREhgYGBtbYJCwuT0aNHGywLDAyscvOEXq+XiIgIASCffvqp2eYhIvKHP/xBPDw86j0nmZmZ0qpVK5k3b161Mb3yyivSvXt3g2Xh4eF1unFixYoVyrLCwsIaLzxOTEwUe3t7s89Fr9eLTqeTgIAAo+dS2YPePDFz5kzlfXl5ubRp06bKzRN6vV7GjRsnACQ1NdVs8xARGTx4sPj5+TXKnGzZskUcHR2r/f1Snaa6rxg7F1PtKxUWLVok7du3b7Bchg0bJiqVyuzz8PX1lZdeeqnO45srFoAPYMaMGeLq6iopKSkGt4oXFxcrbZ5//nlp166dfPXVV5KamiqBgYFVCp4ffvhB0tPT5Y9//KN06tRJ0tPTJT09Xe7cuSMiIpcvX5aEhATJysqS9PR0mT17tjg6Osq3335ba3yHDx8WW1tbWbFihWRlZUlsbGyVx6dcvXpVJk2aJM2aNRMA8t5778mXX34pGRkZZpWHyL0d2NbWVjQaTb3m5MyZM+Lh4SFPP/20QR8FBQVKm4pHp8ybN0+ysrJk9erVdX50ipubm3z22Wdy+vRpGTt2bJVHKFy6dEnS09Olb9++AkDWrl0rX375pZw/f97schER+fe//y0AxNnZ2ejzIiLKz12fPn1kypQpkp6eLt99912tuWzdulUcHBxk48aNcvbsWXnuuefEzc1N8vLylDa5ubkyadIk0Wg0AkA++eQT+fLLL+Xs2bNmlYfIvX0VgDRr1szoc7J582axtbWV1atXG7S5ceNGrbk0xX3FmLmINO6+8ve//1127dol2dnZkp2dLevWrRNnZ2d57bXXGmReJk2aJI6OjqLRaOTLL79U5sWc8qg8J1lZWbX2ZwlYAD4AANW+NmzYoLQpKSmRF154QZo3by5arVbGjx8vubm5Bv0MGTKk2n4uXrwoIvcKpwEDBkizZs1Eq9XK8OHD5dixY3WK8eOPP5ZOnTqJvb29PProo7J7926D9Rs2bLCIPERE1qxZ0yC5xMbGVtvHb/+jPHDggAQEBIi9vb34+fkZjFETvV4vf/nLX8TT01McHBxk+PDhcu7cOYM2zzzzTI15mFsuIveOJjZmLnVpU51Vq1ZJu3btxN7eXvr161flZ7Om8c0tDxGR+fPnN1ouNf1eeOaZZ2rNoynuK8bMRaRx95X4+Hh59NFHRavViouLi/Tq1Uv+8Y9/SHl5uVHnxZzyqJiT3z7z1lKpRERARERERFaDdwETERERWRkWgERERERWhgUgERERkZVhAUhERERkZVgAEhEREVkZFoBEREREVoYFIBEREZGVYQFIRGZj48aNBp8j+vrrr9f6WbFERFQ9FoBEZFSRkZFQqVRQqVSws7ODp6cnRo4cicTEROj1+gfqa/LkycjOzjZKnMuWLYNarcZbb71llP6JiJoSFoBEZHSjRo1Cbm4ucnJysHfvXgwdOhRz5szB6NGjcffu3Tr3o9Fo0KpVK6PEmJiYiFdeeQWJiYlG6b+y0tJSo49BRFQbFoBEZHQODg7w8vJCmzZt0Lt3b/z5z3/GZ599hr1792Ljxo1Ku3feeQf+/v5o1qwZfHx88MILL6CoqEhZ/9tTwJV9/fXXsLOzQ15ensHymJgY/N///V+t8R08eBAlJSVYvHgxbt68iSNHjgAA9Ho92rZti4SEBIP26enpsLGxwaVLlwAAN27cwLRp0+Dh4QEXFxcMGzYMGRkZSvuKU9Xr1q2Dr68vHB0dAQDJycn43e9+Bzc3N7i7u2P06NG4cOGCwVhHjhxBQEAAHB0d8dhjj+HTTz+FSqXCqVOnlDaZmZl4/PHH4eTkBE9PT0RERODKlSu15kxE1o0FIBGZxLBhw9CzZ0/s3LlTWWZjY4P4+Hh899132LRpE7766iu88sordepv8ODB8PPzQ1JSkrKsrKwMmzdvxrPPPlvrtuvXr0d4eDjs7OwQHh6O9evXK/GEh4djy5YtBu03b96MQYMGoX379gCASZMmoaCgAHv37kVaWhp69+6N4cOH49q1a8o258+fx44dO7Bz506leLt9+zbmzp2L1NRU7N+/HzY2Nhg/frxyavzmzZsIDQ2Fv78/Tp48iSVLluBPf/qTQSw3btzAsGHD0KtXL6SmpiI5ORn5+fkICwur0/eNiKyUEBEZ0TPPPCNjx46tdt3kyZOla9euNW67bds2cXd3V95v2LBBXF1dlfexsbHSs2dP5X1cXJxBfzt27BAnJycpKiqqcYzCwkLRaDRy6tQpERFJT08XJycnuXXrlvJepVLJpUuXRESkvLxc2rRpIwkJCSIicujQIXFxcZFff/3VoN8OHTrImjVrlDjt7OykoKCgxjhERC5fviwA5MyZMyIikpCQIO7u7lJSUqK0Wbt2rQCQ9PR0ERFZsmSJBAcHG/Tz888/CwA5d+5creMRkfXiEUAiMhkRgUqlUt7/+9//xvDhw9GmTRs4OzsjIiICV69eRXFxcZ36i4yMxPnz53Hs2DEA904Zh4WFoVmzZjVu8+GHH6JDhw7o2bMnACAgIADt27fHRx99pLzv2rWrchTw4MGDKCgowKRJkwAAGRkZKCoqgru7O5ycnJTXxYsXDU7ntm/fHh4eHgZj//DDDwgPD4efnx9cXFyg0+kAAD/99BMA4Ny5c+jRo4dyyhgA+vXrZ9BHRkYGDhw4YDB2ly5dAKDK6WQiogq2pg6AiKxXVlYWfH19AQA5OTkYPXo0ZsyYgTfffBMtWrTAN998g6lTp6K0tBRarfa+/bVq1QqhoaHYsGEDfH19sXfvXqSkpNS6zfr16/Hdd9/B1vZ/vw71ej0SExMxdepUAMBTTz2FLVu24NVXX8WWLVswatQouLu7AwCKiorg7e1d7TiVr1esrggNDQ1F+/btsXbtWrRu3Rp6vR7du3d/oJtEioqKEBoairi4uCrrvL2969wPEVkXFoBEZBJfffUVzpw5gxdffBEAkJaWBr1ej7fffhs2NvdOTnz88ccP3O+0adMQHh6Otm3bokOHDhg0aFCNbc+cOYPU1FSkpKSgRYsWyvJr164hKCgI33//Pbp06YIpU6ZgwYIFSEtLw/bt2/Hee+8pbXv37o28vDzY2toqR/Dq4urVqzh37hzWrl2r3KTyzTffGLTp3LkzPvjgA9y5cwcODg4AgBMnThi06d27N3bs2AGdTmdQxBIR1YangInI6O7cuYO8vDz85z//wcmTJ7F06VKMHTsWo0ePxh/+8AcAQMeOHVFWVoZVq1bhxx9/RFJSkkGhVVchISFwcXHBG2+8gaioqFrbrl+/Hv369cPgwYPRvXt35TV48GD07dtXuRlEp9Nh4MCBmDp1KsrLyzFmzBiljxEjRiAwMBDjxo3Dv/71L+Tk5ODIkSN47bXXkJqaWuPYzZs3h7u7O/75z3/i/Pnz+OqrrzB37lyDNlOmTIFer8dzzz2HrKws7Nu3DytWrAAA5dR5dHQ0rl27hvDwcJw4cQIXLlzAvn37EBUVhfLy8gf+/hGRdWABSERGl5ycDG9vb+h0OowaNQoHDhxAfHw8PvvsM6jVagBAz5498c477yAuLg7du3fH5s2bsWzZsgcey8bGBpGRkSgvL1eKy+qUlpbigw8+wIQJE6pdP2HCBLz//vsoKysDcO80cEZGBsaPHw+NRqO0U6lU2LNnDwYPHoyoqCh06tQJTz75JC5dugRPT89a49y6dSvS0tLQvXt3vPjii1UeQu3i4oLPP/8cp06dQkBAAF577TUsXLgQAJTrAlu3bo3Dhw+jvLwcwcHB8Pf3R0xMDNzc3JQjqUREv6USETF1EEREDWnq1Km4fPkydu3aZepQGtzmzZsRFRWFwsJCg0KUiOhB8IIRIrIYhYWFOHPmDLZs2WIxxd/7778PPz8/tGnTBhkZGfjTn/6EsLAwFn9EVC8sAInIYowdOxbHjx/H888/j5EjR5o6nAaRl5eHhQsXIi8vD97e3pg0aRLefPNNU4dFRGaOp4CJiIiIrAyvECYiIiKyMiwAiYiIiKwMC0AiIiIiK8MCkIiIiMjKsAAkIiIisjIsAImIiIisDAtAIiIiIivDApCIiIjIyrAAJCIiIrIy/w+BCNrEgpcqwQAAAABJRU5ErkJggg==\n" }, "metadata": { "image/png": { "height": 480, "width": 640 } }, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "bostonfeatures_pd.plot(x='date', y=['temp_min', 'temp_max'])\n", "plt.ylabel('Max Temp (F)')\n", "plt.xlabel('Daily Average')\n", "plt.show()\n", "\n", "\n", "%matplot plt" ] }, { "cell_type": "markdown", "id": "04b2e17b-696a-4c1d-b294-b263b27dcea2", "metadata": {}, "source": [ "## 1.3. Marry the `two processed data` and make it ready for the `ML training`\n", "\n", "Now that we've taken a quick look at our data and done some initial exploration for both the dataset, let's merge the two datasets." ] }, { "cell_type": "code", "execution_count": 8, "id": "969544e0-5a15-4e2e-bb24-e93814dae7a8", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+----------+--------------------+\n", "| ymd| no2_avg|\n", "+----------+--------------------+\n", "|2021-11-10|0.010848101265822781|\n", "|2022-05-31|0.005007751937984497|\n", "|2021-12-13|0.010462264150943394|\n", "|2022-12-04|0.003643782837127...|\n", "|2020-01-16|0.014250000000000002|\n", "+----------+--------------------+\n", "only showing top 5 rows\n" ] } ], "source": [ "# First Dataset - NO2 Dataset\n", "dfNoAvg.show(5)" ] }, { "cell_type": "code", "execution_count": 9, "id": "e22f9965-4e52-415f-a4fd-c2c5afaad7e0", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+----------+--------+------------------+--------+------------------+----------------+\n", "| date|temp_max| temp_min|wind_avg|pressure_sea_level|pressure_station|\n", "+----------+--------+------------------+--------+------------------+----------------+\n", "|2023-04-18| 57.85| 48.8| 10.3| 1003.55| 501.3|\n", "|2022-03-18| 68.1|42.349999999999994| 4.7| 1013.3| 506.15|\n", "|2022-06-02| 63.0| 54.0| 7.1| 1009.2| 8.2|\n", "|2021-05-19| 80.5| 61.5| 4.45| 1023.65| 511.4|\n", "|2021-06-20| 87.85| 69.1| 4.7| 1006.8| 503.0|\n", "+----------+--------+------------------+--------+------------------+----------------+\n", "only showing top 5 rows\n" ] } ], "source": [ "# Second Dataset - Weather Dataset \n", "bostonfeatures.show(5)" ] }, { "cell_type": "code", "execution_count": 10, "id": "9c7c5af5-3e55-4c78-a19c-d9eb07622521", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "merged_df = dfNoAvg.join(bostonfeatures, dfNoAvg['ymd'] == bostonfeatures['date'], 'inner')" ] }, { "cell_type": "code", "execution_count": 11, "id": "d21c13e0-6234-41eb-b6d8-af48bf0777da", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+--------------------+----------+------------------+--------+--------+------------------+------------------+\n", "| no2_avg| date| temp_max|temp_min|wind_avg|pressure_sea_level| pressure_station|\n", "+--------------------+----------+------------------+--------+--------+------------------+------------------+\n", "| 0.011|2019-12-31|43.150000000000006| 36.2| 7.3|1004.8499999999999| 502.45|\n", "|0.005319148936170214|2020-01-01| 42.55| 36.0| 6.05| 1001.2| 500.3|\n", "|0.009977011494252877|2020-01-02| 47.65| 34.15| 5.85|1009.6500000000001| 504.55|\n", "|0.016791666666666667|2020-01-03| 50.8| 38.95| 3.9|1007.8499999999999| 503.7|\n", "|0.018978723404255316|2020-01-04| 50.35| 42.8| 2.0|1005.5999999999999| 502.5|\n", "|0.003416666666666...|2020-01-05| 50.1| 35.0| 7.1| 1001.45| 500.25|\n", "|0.013885416666666666|2020-01-06| 38.65| 27.6| 2.85|1012.1500000000001| 505.8|\n", "|0.015556962025316456|2020-01-07| 41.35| 30.6| 4.3| 1015.0| 507.25|\n", "|0.011425000000000003|2020-01-08| 44.25| 33.35| 4.65| 1009.45| 504.45|\n", "|0.005458333333333335|2020-01-09| 40.4| 22.1| 7.45|1029.8000000000002| 514.6|\n", "|0.016882978723404257|2020-01-10| 51.0| 24.9| 5.3| 1034.6| 517.05|\n", "|0.006465909090909092|2020-01-11| 67.85| 49.25| 7.25| 1023.6|511.59999999999997|\n", "|0.001406250000000...|2020-01-12| 71.95| 51.25| 9.85| 1012.05|505.59999999999997|\n", "|0.007925531914893619|2020-01-13| 50.75| 35.95| 4.5| 1030.1| 514.7|\n", "|0.012370370370370374|2020-01-14| 41.35| 35.55| 2.5| 1026.65| 513.05|\n", "|0.010781250000000001|2020-01-15| 50.1| 38.2| 3.6| 1018.75|509.09999999999997|\n", "|0.014250000000000002|2020-01-16| 48.75| 36.85| 5.1| 1011.65| 505.4|\n", "|0.004300000000000001|2020-01-17| 41.05| 16.65| 9.0| 1025.5| 512.5|\n", "|0.009635416666666669|2020-01-18| 26.15| 13.65| 4.45| 1032.55| 516.0|\n", "|0.014961538461538462|2020-01-19| 44.0| 17.35| 5.0| 1005.75| 502.7|\n", "+--------------------+----------+------------------+--------+--------+------------------+------------------+\n", "only showing top 20 rows\n" ] } ], "source": [ "merged_df = merged_df.drop('ymd').orderBy('date', ascending=True)\n", "merged_df.show()" ] }, { "cell_type": "markdown", "id": "073effb6-de26-4e14-8cac-fd6c471997bc", "metadata": {}, "source": [ "## 1.4. Save the data to S3\n" ] }, { "cell_type": "code", "execution_count": 12, "id": "db3e64bf-5413-419d-bf29-072b2a73d960", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "AnalysisException: path s3://fcc-spark-example/subset-boston-data.parquet already exists.\n" ] } ], "source": [ "bucket = 'fcc-spark-example'\n", "merged_df.coalesce(1).write.parquet(f\"s3://{bucket}/subset-boston-data.parquet\")" ] }, { "cell_type": "markdown", "id": "2638a7ad-46b1-4c61-bb67-e9cb4bac4c0d", "metadata": { "tags": [] }, "source": [ "# End of Data Processing and Clearning" ] }, { "cell_type": "code", "execution_count": null, "id": "995afb2e-0578-4371-a39f-04c220b4ddd7", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "184985a9-ee98-4639-870e-8a5205ee3821", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "848b6046-69f2-487e-b38c-717326565fa6", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "8bc8e2f6-ff96-4b79-a8f9-f39514dcf944", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "8ec93de0-f3b3-4379-99d7-410c316d295a", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "2a8afc9b-76f6-4380-ab0a-1edfe6dd1948", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "500482bf-24d0-4b84-9a2e-9c74521ad2be", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "9d089a86-fbf3-474a-93c1-269726c6d4a0", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "34b5d2c6-bb80-476a-8223-b4bb8ec5dd72", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "2ea757d5-631d-493a-baa4-bca3d51aa7cd", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "0b1f18a6-21d1-4256-8a5d-4b9086305477", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "e3689687-b2f0-4861-bf4d-9f424b01553a", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "16c6de56-08f2-4ec8-8dd5-bd1209de6cd5", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "a56b61b5-b346-4a3f-ada6-dd1471bd13af", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "fb0ebcec-a186-481f-8812-3301b9b87028", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "f53f705b-b29d-4083-aa9f-42887132b1d2", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "2efa7883-4a4a-41fd-a826-a5edc6f46b15", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "cf9c268e-fc0e-4b59-962a-8dccfd12e48b", "metadata": { "tags": [] }, "source": [ "# Part 2: Model Building, Training and Deployment" ] }, { "cell_type": "markdown", "id": "278daa2c-c55e-49b4-b847-56583a6cb584", "metadata": {}, "source": [ "## Spliting the data for training and testing " ] }, { "cell_type": "code", "execution_count": 13, "id": "8a396437-dc12-4063-a31d-81c480229ade", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1071, 5) (1071, 1)\n", "(163, 5) (163, 1)\n", " temp_max temp_min wind_avg pressure_sea_level pressure_station\n", "2020-01-01 42.55 36.00 6.05 1001.20 500.30\n", "2020-01-02 47.65 34.15 5.85 1009.65 504.55\n", "2020-01-03 50.80 38.95 3.90 1007.85 503.70\n", "2020-01-04 50.35 42.80 2.00 1005.60 502.50\n", "2020-01-05 50.10 35.00 7.10 1001.45 500.25\n" ] } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "import warnings\n", "warnings.simplefilter(action='ignore', category=FutureWarning)\n", "\n", "comp_pd_df = merged_df.toPandas()\n", "comp_pd_df = comp_pd_df.set_index('date')\n", "comp_pd_df.index.name = None\n", "\n", "# Drop the 1st row \n", "aq_df = comp_pd_df.iloc[1:].copy()\n", "aq_df.index = pd.to_datetime(aq_df.index)\n", "\n", "# Dropping the NaN \n", "aq_df = aq_df.dropna()\n", "\n", "# Use the data from years 2020 up to 2022 as training, and the year 2023 as our candidate year for testing and validating our model.\n", "aq_train_df = aq_df[aq_df.index.year < 2023]\n", "aq_test_df = aq_df[aq_df.index.year == 2023]\n", "\n", "# Input Feature \n", "x_train = aq_train_df.drop('no2_avg',axis=1)\n", "x_test = aq_test_df.drop('no2_avg',axis=1)\n", "\n", "# Class Labels \n", "y_train = aq_train_df[[\"no2_avg\"]]\n", "y_test = aq_test_df[[\"no2_avg\"]]\n", "\n", "print(x_train.shape, y_train.shape)\n", "print(x_test.shape, y_test.shape)\n", "print(x_train.head())" ] }, { "cell_type": "markdown", "id": "bf6e53ac-db10-44be-b0a3-f673589c90f6", "metadata": {}, "source": [ "## Few helper functions" ] }, { "cell_type": "code", "execution_count": 14, "id": "4a9949cd-96c8-4cf7-ba70-e28785b3035b", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "from math import sqrt\n", "from sklearn.metrics import mean_squared_error, r2_score, explained_variance_score\n", "\n", "# sMAPE is used in KDD Air Quality challenge: https://biendata.com/competition/kdd_2018/evaluation/ \n", "def smape(actual, predicted):\n", " dividend= np.abs(np.array(actual) - np.array(predicted))\n", " denominator = np.array(actual) + np.array(predicted)\n", " \n", " return 2 * np.mean(np.divide(dividend, denominator, out=np.zeros_like(dividend), where=denominator!=0, casting='unsafe'))\n", "\n", "def print_metrics(y_test, y_pred):\n", " print(\"RMSE: %.4f\" % sqrt(mean_squared_error(y_test, y_pred)))\n", " print('Variance score: %.4f' % r2_score(y_test, y_pred))\n", " print('Explained variance score: %.4f' % explained_variance_score(y_test, y_pred))\n", " forecast_err = np.array(y_test) - np.array(y_pred)\n", " print('Forecast bias: %.4f' % (np.sum(forecast_err) * 1.0/len(y_pred) ))\n", " print('sMAPE: %.4f' % smape(y_test, y_pred))" ] }, { "cell_type": "markdown", "id": "4d314108-3bea-4663-823d-73123139cd4e", "metadata": {}, "source": [ "## Training the model \n", "\n", "In the section below, we create a new training job using the Linear Learner algorithm. Once that job completes, we deploy an endpoint and run some validation tests against it. \n", "\n", "**NOTE**: You only need to create this training job and deploy it once. You can use the same endpoint, even in future runs of this notebook, without re-training or re-deploying. " ] }, { "cell_type": "code", "execution_count": 15, "id": "31d24ff9-169f-4330-a5e4-f917b16e35a0", "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2023-06-14 21:21:46 Starting - Starting the training job...\n", "2023-06-14 21:21:59 Starting - Preparing the instances for training.........\n", "2023-06-14 21:23:33 Downloading - Downloading input data...\n", "2023-06-14 21:23:59 Training - Downloading the training image......\n", "2023-06-14 21:25:10 Uploading - Uploading generated training modelDocker entrypoint called with argument(s): train\n", "Running default environment configuration script\n", "[06/14/2023 21:25:02 INFO 140335316649792] Reading default configuration from /opt/amazon/lib/python3.7/site-packages/algorithm/resources/default-input.json: {'mini_batch_size': '1000', 'epochs': '15', 'feature_dim': 'auto', 'use_bias': 'true', 'binary_classifier_model_selection_criteria': 'accuracy', 'f_beta': '1.0', 'target_recall': '0.8', 'target_precision': '0.8', 'num_models': 'auto', 'num_calibration_samples': '10000000', 'init_method': 'uniform', 'init_scale': '0.07', 'init_sigma': '0.01', 'init_bias': '0.0', 'optimizer': 'auto', 'loss': 'auto', 'margin': '1.0', 'quantile': '0.5', 'loss_insensitivity': '0.01', 'huber_delta': '1.0', 'num_classes': '1', 'accuracy_top_k': '3', 'wd': 'auto', 'l1': 'auto', 'momentum': 'auto', 'learning_rate': 'auto', 'beta_1': 'auto', 'beta_2': 'auto', 'bias_lr_mult': 'auto', 'bias_wd_mult': 'auto', 'use_lr_scheduler': 'true', 'lr_scheduler_step': 'auto', 'lr_scheduler_factor': 'auto', 'lr_scheduler_minimum_lr': 'auto', 'positive_example_weight_mult': '1.0', 'balance_multiclass_weights': 'false', 'normalize_data': 'true', 'normalize_label': 'auto', 'unbias_data': 'auto', 'unbias_label': 'auto', 'num_point_for_scaler': '10000', '_kvstore': 'auto', '_num_gpus': 'auto', '_num_kv_servers': 'auto', '_log_level': 'info', '_tuning_objective_metric': '', 'early_stopping_patience': '3', 'early_stopping_tolerance': '0.001', '_enable_profiler': 'false'}\n", "[06/14/2023 21:25:02 INFO 140335316649792] Merging with provided configuration from /opt/ml/input/config/hyperparameters.json: {'feature_dim': '5', 'mini_batch_size': '1000', 'normalize_data': 'True', 'normalize_label': 'True', 'predictor_type': 'regressor'}\n", "[06/14/2023 21:25:02 INFO 140335316649792] Final configuration: {'mini_batch_size': '1000', 'epochs': '15', 'feature_dim': '5', 'use_bias': 'true', 'binary_classifier_model_selection_criteria': 'accuracy', 'f_beta': '1.0', 'target_recall': '0.8', 'target_precision': '0.8', 'num_models': 'auto', 'num_calibration_samples': '10000000', 'init_method': 'uniform', 'init_scale': '0.07', 'init_sigma': '0.01', 'init_bias': '0.0', 'optimizer': 'auto', 'loss': 'auto', 'margin': '1.0', 'quantile': '0.5', 'loss_insensitivity': '0.01', 'huber_delta': '1.0', 'num_classes': '1', 'accuracy_top_k': '3', 'wd': 'auto', 'l1': 'auto', 'momentum': 'auto', 'learning_rate': 'auto', 'beta_1': 'auto', 'beta_2': 'auto', 'bias_lr_mult': 'auto', 'bias_wd_mult': 'auto', 'use_lr_scheduler': 'true', 'lr_scheduler_step': 'auto', 'lr_scheduler_factor': 'auto', 'lr_scheduler_minimum_lr': 'auto', 'positive_example_weight_mult': '1.0', 'balance_multiclass_weights': 'false', 'normalize_data': 'True', 'normalize_label': 'True', 'unbias_data': 'auto', 'unbias_label': 'auto', 'num_point_for_scaler': '10000', '_kvstore': 'auto', '_num_gpus': 'auto', '_num_kv_servers': 'auto', '_log_level': 'info', '_tuning_objective_metric': '', 'early_stopping_patience': '3', 'early_stopping_tolerance': '0.001', '_enable_profiler': 'false', 'predictor_type': 'regressor'}\n", "[06/14/2023 21:25:04 WARNING 140335316649792] Loggers have already been setup.\n", "[06/14/2023 21:25:04 INFO 140335316649792] Final configuration: {'mini_batch_size': '1000', 'epochs': '15', 'feature_dim': '5', 'use_bias': 'true', 'binary_classifier_model_selection_criteria': 'accuracy', 'f_beta': '1.0', 'target_recall': '0.8', 'target_precision': '0.8', 'num_models': 'auto', 'num_calibration_samples': '10000000', 'init_method': 'uniform', 'init_scale': '0.07', 'init_sigma': '0.01', 'init_bias': '0.0', 'optimizer': 'auto', 'loss': 'auto', 'margin': '1.0', 'quantile': '0.5', 'loss_insensitivity': '0.01', 'huber_delta': '1.0', 'num_classes': '1', 'accuracy_top_k': '3', 'wd': 'auto', 'l1': 'auto', 'momentum': 'auto', 'learning_rate': 'auto', 'beta_1': 'auto', 'beta_2': 'auto', 'bias_lr_mult': 'auto', 'bias_wd_mult': 'auto', 'use_lr_scheduler': 'true', 'lr_scheduler_step': 'auto', 'lr_scheduler_factor': 'auto', 'lr_scheduler_minimum_lr': 'auto', 'positive_example_weight_mult': '1.0', 'balance_multiclass_weights': 'false', 'normalize_data': 'True', 'normalize_label': 'True', 'unbias_data': 'auto', 'unbias_label': 'auto', 'num_point_for_scaler': '10000', '_kvstore': 'auto', '_num_gpus': 'auto', '_num_kv_servers': 'auto', '_log_level': 'info', '_tuning_objective_metric': '', 'early_stopping_patience': '3', 'early_stopping_tolerance': '0.001', '_enable_profiler': 'false', 'predictor_type': 'regressor'}\n", "[06/14/2023 21:25:04 WARNING 140335316649792] Loggers have already been setup.\n", "Process 7 is a worker.\n", "[06/14/2023 21:25:04 INFO 140335316649792] Using default worker.\n", "[06/14/2023 21:25:04 INFO 140335316649792] Checkpoint loading and saving are disabled.\n", "[2023-06-14 21:25:04.879] [tensorio] [warning] TensorIO is already initialized; ignoring the initialization routine.\n", "[2023-06-14 21:25:04.892] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 0, \"duration\": 14, \"num_examples\": 1, \"num_bytes\": 64000}\n", "[06/14/2023 21:25:04 INFO 140335316649792] Create Store: local\n", "[2023-06-14 21:25:04.905] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 1, \"duration\": 12, \"num_examples\": 2, \"num_bytes\": 68544}\n", "[06/14/2023 21:25:04 INFO 140335316649792] Scaler algorithm parameters\n", " \n", "[06/14/2023 21:25:04 INFO 140335316649792] Scaling model computed with parameters:\n", " {'stdev_label': \n", "[0.00439914]\n", ", 'stdev_weight': \n", "[ 17.317747 16.486868 2.9431407 7.611876 107.63156 ]\n", ", 'mean_label': \n", "[0.00713437]\n", ", 'mean_weight': \n", "[ 63.2533 47.22165 5.8689 1015.7924 503.70746]\n", "}\n", "[06/14/2023 21:25:04 INFO 140335316649792] nvidia-smi: took 0.031 seconds to run.\n", "[06/14/2023 21:25:04 INFO 140335316649792] nvidia-smi identified 0 GPUs.\n", "[06/14/2023 21:25:04 INFO 140335316649792] Number of GPUs being used: 0\n", "#metrics {\"StartTime\": 1686777904.990354, \"EndTime\": 1686777904.9903834, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"Meta\": \"init_train_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 2071.0, \"count\": 1, \"min\": 2071, \"max\": 2071}, \"Total Batches Seen\": {\"sum\": 3.0, \"count\": 1, \"min\": 3, \"max\": 3}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Number of Records Since Last Reset\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Number of Batches Since Last Reset\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}}}\n", "[2023-06-14 21:25:05.035] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 4, \"duration\": 44, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.035058, \"EndTime\": 1686777905.035127, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.02216162109375, \"count\": 1, \"min\": 1.02216162109375, \"max\": 1.02216162109375}}}\n", "#metrics {\"StartTime\": 1686777905.0352077, \"EndTime\": 1686777905.0352178, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0017120361328125, \"count\": 1, \"min\": 1.0017120361328125, \"max\": 1.0017120361328125}}}\n", "#metrics {\"StartTime\": 1686777905.0352457, \"EndTime\": 1686777905.0352516, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0297730712890625, \"count\": 1, \"min\": 1.0297730712890625, \"max\": 1.0297730712890625}}}\n", "#metrics {\"StartTime\": 1686777905.035274, \"EndTime\": 1686777905.0352793, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0047203369140625, \"count\": 1, \"min\": 1.0047203369140625, \"max\": 1.0047203369140625}}}\n", "#metrics {\"StartTime\": 1686777905.035303, \"EndTime\": 1686777905.0353086, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0763988037109375, \"count\": 1, \"min\": 1.0763988037109375, \"max\": 1.0763988037109375}}}\n", "#metrics {\"StartTime\": 1686777905.0353293, \"EndTime\": 1686777905.0353343, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.134108154296875, \"count\": 1, \"min\": 1.134108154296875, \"max\": 1.134108154296875}}}\n", "#metrics {\"StartTime\": 1686777905.0353582, \"EndTime\": 1686777905.0353637, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.1350196533203125, \"count\": 1, \"min\": 1.1350196533203125, \"max\": 1.1350196533203125}}}\n", "#metrics {\"StartTime\": 1686777905.0353863, \"EndTime\": 1686777905.0353916, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9340640258789062, \"count\": 1, \"min\": 0.9340640258789062, \"max\": 0.9340640258789062}}}\n", "#metrics {\"StartTime\": 1686777905.0354142, \"EndTime\": 1686777905.0354197, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8850604248046875, \"count\": 1, \"min\": 0.8850604248046875, \"max\": 0.8850604248046875}}}\n", "#metrics {\"StartTime\": 1686777905.0354426, \"EndTime\": 1686777905.0354478, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9903997802734374, \"count\": 1, \"min\": 0.9903997802734374, \"max\": 0.9903997802734374}}}\n", "#metrics {\"StartTime\": 1686777905.0354702, \"EndTime\": 1686777905.0354757, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.104272216796875, \"count\": 1, \"min\": 1.104272216796875, \"max\": 1.104272216796875}}}\n", "#metrics {\"StartTime\": 1686777905.035496, \"EndTime\": 1686777905.035501, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0242237548828126, \"count\": 1, \"min\": 1.0242237548828126, \"max\": 1.0242237548828126}}}\n", "#metrics {\"StartTime\": 1686777905.0355213, \"EndTime\": 1686777905.0355268, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.98870703125, \"count\": 1, \"min\": 0.98870703125, \"max\": 0.98870703125}}}\n", "#metrics {\"StartTime\": 1686777905.0355463, \"EndTime\": 1686777905.0355515, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0908687744140626, \"count\": 1, \"min\": 1.0908687744140626, \"max\": 1.0908687744140626}}}\n", "#metrics {\"StartTime\": 1686777905.0355732, \"EndTime\": 1686777905.0355787, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.1164923095703125, \"count\": 1, \"min\": 1.1164923095703125, \"max\": 1.1164923095703125}}}\n", "#metrics {\"StartTime\": 1686777905.0355988, \"EndTime\": 1686777905.035604, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9398934326171875, \"count\": 1, \"min\": 0.9398934326171875, \"max\": 0.9398934326171875}}}\n", "#metrics {\"StartTime\": 1686777905.035624, \"EndTime\": 1686777905.035629, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0530172119140624, \"count\": 1, \"min\": 1.0530172119140624, \"max\": 1.0530172119140624}}}\n", "#metrics {\"StartTime\": 1686777905.0356488, \"EndTime\": 1686777905.035654, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.07394384765625, \"count\": 1, \"min\": 1.07394384765625, \"max\": 1.07394384765625}}}\n", "#metrics {\"StartTime\": 1686777905.0356774, \"EndTime\": 1686777905.0356832, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.099530517578125, \"count\": 1, \"min\": 1.099530517578125, \"max\": 1.099530517578125}}}\n", "#metrics {\"StartTime\": 1686777905.0357077, \"EndTime\": 1686777905.0357127, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0041085205078124, \"count\": 1, \"min\": 1.0041085205078124, \"max\": 1.0041085205078124}}}\n", "#metrics {\"StartTime\": 1686777905.035733, \"EndTime\": 1686777905.0357382, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9506248779296875, \"count\": 1, \"min\": 0.9506248779296875, \"max\": 0.9506248779296875}}}\n", "#metrics {\"StartTime\": 1686777905.0357583, \"EndTime\": 1686777905.0357635, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9690664672851562, \"count\": 1, \"min\": 0.9690664672851562, \"max\": 0.9690664672851562}}}\n", "#metrics {\"StartTime\": 1686777905.0357857, \"EndTime\": 1686777905.035791, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0072550659179687, \"count\": 1, \"min\": 1.0072550659179687, \"max\": 1.0072550659179687}}}\n", "#metrics {\"StartTime\": 1686777905.0358107, \"EndTime\": 1686777905.035816, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0789600830078125, \"count\": 1, \"min\": 1.0789600830078125, \"max\": 1.0789600830078125}}}\n", "#metrics {\"StartTime\": 1686777905.035837, \"EndTime\": 1686777905.035842, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9693126220703125, \"count\": 1, \"min\": 0.9693126220703125, \"max\": 0.9693126220703125}}}\n", "#metrics {\"StartTime\": 1686777905.0358644, \"EndTime\": 1686777905.0358694, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9535215454101562, \"count\": 1, \"min\": 0.9535215454101562, \"max\": 0.9535215454101562}}}\n", "#metrics {\"StartTime\": 1686777905.0358894, \"EndTime\": 1686777905.0358946, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9526671752929687, \"count\": 1, \"min\": 0.9526671752929687, \"max\": 0.9526671752929687}}}\n", "#metrics {\"StartTime\": 1686777905.0359144, \"EndTime\": 1686777905.0359197, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0269730224609375, \"count\": 1, \"min\": 1.0269730224609375, \"max\": 1.0269730224609375}}}\n", "#metrics {\"StartTime\": 1686777905.0359392, \"EndTime\": 1686777905.0359447, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9508773193359376, \"count\": 1, \"min\": 0.9508773193359376, \"max\": 0.9508773193359376}}}\n", "#metrics {\"StartTime\": 1686777905.0359645, \"EndTime\": 1686777905.0359697, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.050606689453125, \"count\": 1, \"min\": 1.050606689453125, \"max\": 1.050606689453125}}}\n", "#metrics {\"StartTime\": 1686777905.0359895, \"EndTime\": 1686777905.0359948, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0049104614257813, \"count\": 1, \"min\": 1.0049104614257813, \"max\": 1.0049104614257813}}}\n", "#metrics {\"StartTime\": 1686777905.0360148, \"EndTime\": 1686777905.03602, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8938972778320312, \"count\": 1, \"min\": 0.8938972778320312, \"max\": 0.8938972778320312}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=0, train mse_objective =1.02216162109375\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=0, criteria=mse_objective, value=0.8850604248046875\n", "[06/14/2023 21:25:05 INFO 140335316649792] Epoch 0: Loss improved. Updating best model\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 0\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmp4198oyla/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 6.666666666666667 % of epochs\n", "#metrics {\"StartTime\": 1686777904.990635, \"EndTime\": 1686777905.0451798, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 3142.0, \"count\": 1, \"min\": 3142, \"max\": 3142}, \"Total Batches Seen\": {\"sum\": 5.0, \"count\": 1, \"min\": 5, \"max\": 5}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 3.0, \"count\": 1, \"min\": 3, \"max\": 3}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=19599.722433592797 records/second\n", "[2023-06-14 21:25:05.060] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 6, \"duration\": 14, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.0604782, \"EndTime\": 1686777905.0605416, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.006066162109375, \"count\": 1, \"min\": 1.006066162109375, \"max\": 1.006066162109375}}}\n", "#metrics {\"StartTime\": 1686777905.0606172, \"EndTime\": 1686777905.0606267, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.985068603515625, \"count\": 1, \"min\": 0.985068603515625, \"max\": 0.985068603515625}}}\n", "#metrics {\"StartTime\": 1686777905.0606642, \"EndTime\": 1686777905.0606704, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0134525756835937, \"count\": 1, \"min\": 1.0134525756835937, \"max\": 1.0134525756835937}}}\n", "#metrics {\"StartTime\": 1686777905.060693, \"EndTime\": 1686777905.0606983, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9882579956054688, \"count\": 1, \"min\": 0.9882579956054688, \"max\": 0.9882579956054688}}}\n", "#metrics {\"StartTime\": 1686777905.06072, \"EndTime\": 1686777905.0607252, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9089137573242188, \"count\": 1, \"min\": 0.9089137573242188, \"max\": 0.9089137573242188}}}\n", "#metrics {\"StartTime\": 1686777905.0607486, \"EndTime\": 1686777905.060754, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8862894897460938, \"count\": 1, \"min\": 0.8862894897460938, \"max\": 0.8862894897460938}}}\n", "#metrics {\"StartTime\": 1686777905.0607789, \"EndTime\": 1686777905.060784, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8347337646484375, \"count\": 1, \"min\": 0.8347337646484375, \"max\": 0.8347337646484375}}}\n", "#metrics {\"StartTime\": 1686777905.0608041, \"EndTime\": 1686777905.0608091, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.807532470703125, \"count\": 1, \"min\": 0.807532470703125, \"max\": 0.807532470703125}}}\n", "#metrics {\"StartTime\": 1686777905.0608292, \"EndTime\": 1686777905.0608346, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8729747314453125, \"count\": 1, \"min\": 0.8729747314453125, \"max\": 0.8729747314453125}}}\n", "#metrics {\"StartTime\": 1686777905.0608547, \"EndTime\": 1686777905.0608597, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9741072998046875, \"count\": 1, \"min\": 0.9741072998046875, \"max\": 0.9741072998046875}}}\n", "#metrics {\"StartTime\": 1686777905.06088, \"EndTime\": 1686777905.060885, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0858118896484374, \"count\": 1, \"min\": 1.0858118896484374, \"max\": 1.0858118896484374}}}\n", "#metrics {\"StartTime\": 1686777905.0609088, \"EndTime\": 1686777905.0609143, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0068366088867187, \"count\": 1, \"min\": 1.0068366088867187, \"max\": 1.0068366088867187}}}\n", "#metrics {\"StartTime\": 1686777905.060935, \"EndTime\": 1686777905.0609665, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7468883056640625, \"count\": 1, \"min\": 0.7468883056640625, \"max\": 0.7468883056640625}}}\n", "#metrics {\"StartTime\": 1686777905.060989, \"EndTime\": 1686777905.0609949, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8101138916015626, \"count\": 1, \"min\": 0.8101138916015626, \"max\": 0.8101138916015626}}}\n", "#metrics {\"StartTime\": 1686777905.061021, \"EndTime\": 1686777905.0610266, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9052518310546875, \"count\": 1, \"min\": 0.9052518310546875, \"max\": 0.9052518310546875}}}\n", "#metrics {\"StartTime\": 1686777905.0610495, \"EndTime\": 1686777905.0610547, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7107618408203125, \"count\": 1, \"min\": 0.7107618408203125, \"max\": 0.7107618408203125}}}\n", "#metrics {\"StartTime\": 1686777905.061075, \"EndTime\": 1686777905.0610802, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0356744384765626, \"count\": 1, \"min\": 1.0356744384765626, \"max\": 1.0356744384765626}}}\n", "#metrics {\"StartTime\": 1686777905.0611002, \"EndTime\": 1686777905.0611055, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0568455810546875, \"count\": 1, \"min\": 1.0568455810546875, \"max\": 1.0568455810546875}}}\n", "#metrics {\"StartTime\": 1686777905.0611253, \"EndTime\": 1686777905.0611305, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0808736572265625, \"count\": 1, \"min\": 1.0808736572265625, \"max\": 1.0808736572265625}}}\n", "#metrics {\"StartTime\": 1686777905.0611508, \"EndTime\": 1686777905.061156, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9871458129882813, \"count\": 1, \"min\": 0.9871458129882813, \"max\": 0.9871458129882813}}}\n", "#metrics {\"StartTime\": 1686777905.0611758, \"EndTime\": 1686777905.0611815, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.816015869140625, \"count\": 1, \"min\": 0.816015869140625, \"max\": 0.816015869140625}}}\n", "#metrics {\"StartTime\": 1686777905.0612013, \"EndTime\": 1686777905.0612066, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8192308959960938, \"count\": 1, \"min\": 0.8192308959960938, \"max\": 0.8192308959960938}}}\n", "#metrics {\"StartTime\": 1686777905.0612292, \"EndTime\": 1686777905.0612347, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7830580444335937, \"count\": 1, \"min\": 0.7830580444335937, \"max\": 0.7830580444335937}}}\n", "#metrics {\"StartTime\": 1686777905.0612547, \"EndTime\": 1686777905.0612597, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8611998901367187, \"count\": 1, \"min\": 0.8611998901367187, \"max\": 0.8611998901367187}}}\n", "#metrics {\"StartTime\": 1686777905.06128, \"EndTime\": 1686777905.061285, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9743131103515625, \"count\": 1, \"min\": 0.9743131103515625, \"max\": 0.9743131103515625}}}\n", "#metrics {\"StartTime\": 1686777905.0613072, \"EndTime\": 1686777905.0613124, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9576375122070313, \"count\": 1, \"min\": 0.9576375122070313, \"max\": 0.9576375122070313}}}\n", "#metrics {\"StartTime\": 1686777905.0613327, \"EndTime\": 1686777905.061338, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9543069458007812, \"count\": 1, \"min\": 0.9543069458007812, \"max\": 0.9543069458007812}}}\n", "#metrics {\"StartTime\": 1686777905.061358, \"EndTime\": 1686777905.0613632, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0207877197265625, \"count\": 1, \"min\": 1.0207877197265625, \"max\": 1.0207877197265625}}}\n", "#metrics {\"StartTime\": 1686777905.0613856, \"EndTime\": 1686777905.061391, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.1274150390625, \"count\": 1, \"min\": 1.1274150390625, \"max\": 1.1274150390625}}}\n", "#metrics {\"StartTime\": 1686777905.0614114, \"EndTime\": 1686777905.0614164, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9528507690429687, \"count\": 1, \"min\": 0.9528507690429687, \"max\": 0.9528507690429687}}}\n", "#metrics {\"StartTime\": 1686777905.0614364, \"EndTime\": 1686777905.0614414, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.112237060546875, \"count\": 1, \"min\": 1.112237060546875, \"max\": 1.112237060546875}}}\n", "#metrics {\"StartTime\": 1686777905.0614612, \"EndTime\": 1686777905.0614665, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.26973046875, \"count\": 1, \"min\": 1.26973046875, \"max\": 1.26973046875}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=1, train mse_objective =1.006066162109375\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=1, criteria=mse_objective, value=0.7107618408203125\n", "[06/14/2023 21:25:05 INFO 140335316649792] Epoch 1: Loss improved. Updating best model\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 1\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmpco5zkhjp/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 13.333333333333334 % of epochs\n", "#metrics {\"StartTime\": 1686777905.045384, \"EndTime\": 1686777905.0688004, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 4213.0, \"count\": 1, \"min\": 4213, \"max\": 4213}, \"Total Batches Seen\": {\"sum\": 7.0, \"count\": 1, \"min\": 7, \"max\": 7}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 4.0, \"count\": 1, \"min\": 4, \"max\": 4}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=45532.49727844958 records/second\n", "[2023-06-14 21:25:05.084] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 8, \"duration\": 15, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.084251, \"EndTime\": 1686777905.0843105, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9903468017578125, \"count\": 1, \"min\": 0.9903468017578125, \"max\": 0.9903468017578125}}}\n", "#metrics {\"StartTime\": 1686777905.084377, \"EndTime\": 1686777905.0843863, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.97018798828125, \"count\": 1, \"min\": 0.97018798828125, \"max\": 0.97018798828125}}}\n", "#metrics {\"StartTime\": 1686777905.0844183, \"EndTime\": 1686777905.0844245, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.998368896484375, \"count\": 1, \"min\": 0.998368896484375, \"max\": 0.998368896484375}}}\n", "#metrics {\"StartTime\": 1686777905.0844464, \"EndTime\": 1686777905.084452, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9728997802734375, \"count\": 1, \"min\": 0.9728997802734375, \"max\": 0.9728997802734375}}}\n", "#metrics {\"StartTime\": 1686777905.0844781, \"EndTime\": 1686777905.0844839, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.86045703125, \"count\": 1, \"min\": 0.86045703125, \"max\": 0.86045703125}}}\n", "#metrics {\"StartTime\": 1686777905.084509, \"EndTime\": 1686777905.0845146, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9148922729492187, \"count\": 1, \"min\": 0.9148922729492187, \"max\": 0.9148922729492187}}}\n", "#metrics {\"StartTime\": 1686777905.0845392, \"EndTime\": 1686777905.0845444, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0937572021484374, \"count\": 1, \"min\": 1.0937572021484374, \"max\": 1.0937572021484374}}}\n", "#metrics {\"StartTime\": 1686777905.084569, \"EndTime\": 1686777905.0845745, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8990514526367187, \"count\": 1, \"min\": 0.8990514526367187, \"max\": 0.8990514526367187}}}\n", "#metrics {\"StartTime\": 1686777905.0845985, \"EndTime\": 1686777905.0846038, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8609124145507813, \"count\": 1, \"min\": 0.8609124145507813, \"max\": 0.8609124145507813}}}\n", "#metrics {\"StartTime\": 1686777905.0846272, \"EndTime\": 1686777905.0846324, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9586372680664063, \"count\": 1, \"min\": 0.9586372680664063, \"max\": 0.9586372680664063}}}\n", "#metrics {\"StartTime\": 1686777905.0846555, \"EndTime\": 1686777905.0846608, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.06913330078125, \"count\": 1, \"min\": 1.06913330078125, \"max\": 1.06913330078125}}}\n", "#metrics {\"StartTime\": 1686777905.0846846, \"EndTime\": 1686777905.0846896, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9909069213867188, \"count\": 1, \"min\": 0.9909069213867188, \"max\": 0.9909069213867188}}}\n", "#metrics {\"StartTime\": 1686777905.0847142, \"EndTime\": 1686777905.0847197, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.1690634765625, \"count\": 1, \"min\": 1.1690634765625, \"max\": 1.1690634765625}}}\n", "#metrics {\"StartTime\": 1686777905.0847433, \"EndTime\": 1686777905.0847483, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.1389429931640624, \"count\": 1, \"min\": 1.1389429931640624, \"max\": 1.1389429931640624}}}\n", "#metrics {\"StartTime\": 1686777905.0847723, \"EndTime\": 1686777905.0847778, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8999092407226562, \"count\": 1, \"min\": 0.8999092407226562, \"max\": 0.8999092407226562}}}\n", "#metrics {\"StartTime\": 1686777905.0848, \"EndTime\": 1686777905.0848055, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.1725975341796875, \"count\": 1, \"min\": 1.1725975341796875, \"max\": 1.1725975341796875}}}\n", "#metrics {\"StartTime\": 1686777905.0848317, \"EndTime\": 1686777905.0848372, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0186034545898437, \"count\": 1, \"min\": 1.0186034545898437, \"max\": 1.0186034545898437}}}\n", "#metrics {\"StartTime\": 1686777905.084858, \"EndTime\": 1686777905.084863, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0402691650390625, \"count\": 1, \"min\": 1.0402691650390625, \"max\": 1.0402691650390625}}}\n", "#metrics {\"StartTime\": 1686777905.0848854, \"EndTime\": 1686777905.0848906, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.062996826171875, \"count\": 1, \"min\": 1.062996826171875, \"max\": 1.062996826171875}}}\n", "#metrics {\"StartTime\": 1686777905.0849109, \"EndTime\": 1686777905.0849159, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9714458618164062, \"count\": 1, \"min\": 0.9714458618164062, \"max\": 0.9714458618164062}}}\n", "#metrics {\"StartTime\": 1686777905.0849705, \"EndTime\": 1686777905.084977, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.897747314453125, \"count\": 1, \"min\": 0.897747314453125, \"max\": 0.897747314453125}}}\n", "#metrics {\"StartTime\": 1686777905.085004, \"EndTime\": 1686777905.0850096, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8461341552734375, \"count\": 1, \"min\": 0.8461341552734375, \"max\": 0.8461341552734375}}}\n", "#metrics {\"StartTime\": 1686777905.0850306, \"EndTime\": 1686777905.085036, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9999383544921875, \"count\": 1, \"min\": 0.9999383544921875, \"max\": 0.9999383544921875}}}\n", "#metrics {\"StartTime\": 1686777905.085059, \"EndTime\": 1686777905.085064, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9619004516601563, \"count\": 1, \"min\": 0.9619004516601563, \"max\": 0.9619004516601563}}}\n", "#metrics {\"StartTime\": 1686777905.0850873, \"EndTime\": 1686777905.0850925, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9779675903320313, \"count\": 1, \"min\": 0.9779675903320313, \"max\": 0.9779675903320313}}}\n", "#metrics {\"StartTime\": 1686777905.0851135, \"EndTime\": 1686777905.085119, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.96242529296875, \"count\": 1, \"min\": 0.96242529296875, \"max\": 0.96242529296875}}}\n", "#metrics {\"StartTime\": 1686777905.0851424, \"EndTime\": 1686777905.0851476, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.95726220703125, \"count\": 1, \"min\": 0.95726220703125, \"max\": 0.95726220703125}}}\n", "#metrics {\"StartTime\": 1686777905.0851703, \"EndTime\": 1686777905.0851753, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0160242919921876, \"count\": 1, \"min\": 1.0160242919921876, \"max\": 1.0160242919921876}}}\n", "#metrics {\"StartTime\": 1686777905.0851982, \"EndTime\": 1686777905.0852032, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.3235482177734375, \"count\": 1, \"min\": 1.3235482177734375, \"max\": 1.3235482177734375}}}\n", "#metrics {\"StartTime\": 1686777905.085224, \"EndTime\": 1686777905.0852294, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.2599205322265625, \"count\": 1, \"min\": 1.2599205322265625, \"max\": 1.2599205322265625}}}\n", "#metrics {\"StartTime\": 1686777905.0852532, \"EndTime\": 1686777905.0852585, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.3516844482421875, \"count\": 1, \"min\": 1.3516844482421875, \"max\": 1.3516844482421875}}}\n", "#metrics {\"StartTime\": 1686777905.0852826, \"EndTime\": 1686777905.085288, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.3527298583984375, \"count\": 1, \"min\": 1.3527298583984375, \"max\": 1.3527298583984375}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=2, train mse_objective =0.9903468017578125\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=2, criteria=mse_objective, value=0.8461341552734375\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 2\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmp9fbf2_hm/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 20.0 % of epochs\n", "#metrics {\"StartTime\": 1686777905.0690153, \"EndTime\": 1686777905.091843, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 5284.0, \"count\": 1, \"min\": 5284, \"max\": 5284}, \"Total Batches Seen\": {\"sum\": 9.0, \"count\": 1, \"min\": 9, \"max\": 9}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 5.0, \"count\": 1, \"min\": 5, \"max\": 5}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=46707.07436366661 records/second\n", "[2023-06-14 21:25:05.107] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 10, \"duration\": 15, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.107566, \"EndTime\": 1686777905.1076262, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.974605224609375, \"count\": 1, \"min\": 0.974605224609375, \"max\": 0.974605224609375}}}\n", "#metrics {\"StartTime\": 1686777905.107899, \"EndTime\": 1686777905.1079104, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.953135498046875, \"count\": 1, \"min\": 0.953135498046875, \"max\": 0.953135498046875}}}\n", "#metrics {\"StartTime\": 1686777905.1079402, \"EndTime\": 1686777905.1079464, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.982017578125, \"count\": 1, \"min\": 0.982017578125, \"max\": 0.982017578125}}}\n", "#metrics {\"StartTime\": 1686777905.1079736, \"EndTime\": 1686777905.1079795, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.956477294921875, \"count\": 1, \"min\": 0.956477294921875, \"max\": 0.956477294921875}}}\n", "#metrics {\"StartTime\": 1686777905.108005, \"EndTime\": 1686777905.1080108, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7241810302734375, \"count\": 1, \"min\": 0.7241810302734375, \"max\": 0.7241810302734375}}}\n", "#metrics {\"StartTime\": 1686777905.1080317, \"EndTime\": 1686777905.1080368, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6986046752929688, \"count\": 1, \"min\": 0.6986046752929688, \"max\": 0.6986046752929688}}}\n", "#metrics {\"StartTime\": 1686777905.10806, \"EndTime\": 1686777905.1080654, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6737341918945312, \"count\": 1, \"min\": 0.6737341918945312, \"max\": 0.6737341918945312}}}\n", "#metrics {\"StartTime\": 1686777905.1080897, \"EndTime\": 1686777905.108095, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7074252319335937, \"count\": 1, \"min\": 0.7074252319335937, \"max\": 0.7074252319335937}}}\n", "#metrics {\"StartTime\": 1686777905.1081188, \"EndTime\": 1686777905.1081243, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.84929736328125, \"count\": 1, \"min\": 0.84929736328125, \"max\": 0.84929736328125}}}\n", "#metrics {\"StartTime\": 1686777905.1081445, \"EndTime\": 1686777905.1081498, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9425160522460938, \"count\": 1, \"min\": 0.9425160522460938, \"max\": 0.9425160522460938}}}\n", "#metrics {\"StartTime\": 1686777905.108172, \"EndTime\": 1686777905.1081774, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0502464599609376, \"count\": 1, \"min\": 1.0502464599609376, \"max\": 1.0502464599609376}}}\n", "#metrics {\"StartTime\": 1686777905.108202, \"EndTime\": 1686777905.1082075, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9733524169921876, \"count\": 1, \"min\": 0.9733524169921876, \"max\": 0.9733524169921876}}}\n", "#metrics {\"StartTime\": 1686777905.1082308, \"EndTime\": 1686777905.108236, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6739257202148438, \"count\": 1, \"min\": 0.6739257202148438, \"max\": 0.6739257202148438}}}\n", "#metrics {\"StartTime\": 1686777905.1082585, \"EndTime\": 1686777905.108264, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6684318237304687, \"count\": 1, \"min\": 0.6684318237304687, \"max\": 0.6684318237304687}}}\n", "#metrics {\"StartTime\": 1686777905.108288, \"EndTime\": 1686777905.1082933, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7045728759765625, \"count\": 1, \"min\": 0.7045728759765625, \"max\": 0.7045728759765625}}}\n", "#metrics {\"StartTime\": 1686777905.108316, \"EndTime\": 1686777905.108321, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6841575317382812, \"count\": 1, \"min\": 0.6841575317382812, \"max\": 0.6841575317382812}}}\n", "#metrics {\"StartTime\": 1686777905.1083446, \"EndTime\": 1686777905.1083498, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0016835327148437, \"count\": 1, \"min\": 1.0016835327148437, \"max\": 1.0016835327148437}}}\n", "#metrics {\"StartTime\": 1686777905.1083746, \"EndTime\": 1686777905.1083798, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0234996337890625, \"count\": 1, \"min\": 1.0234996337890625, \"max\": 1.0234996337890625}}}\n", "#metrics {\"StartTime\": 1686777905.1084116, \"EndTime\": 1686777905.1084173, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0445482177734375, \"count\": 1, \"min\": 1.0445482177734375, \"max\": 1.0445482177734375}}}\n", "#metrics {\"StartTime\": 1686777905.10844, \"EndTime\": 1686777905.1084452, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9544625244140625, \"count\": 1, \"min\": 0.9544625244140625, \"max\": 0.9544625244140625}}}\n", "#metrics {\"StartTime\": 1686777905.108469, \"EndTime\": 1686777905.108474, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6853966064453125, \"count\": 1, \"min\": 0.6853966064453125, \"max\": 0.6853966064453125}}}\n", "#metrics {\"StartTime\": 1686777905.108498, \"EndTime\": 1686777905.1085036, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6920762329101563, \"count\": 1, \"min\": 0.6920762329101563, \"max\": 0.6920762329101563}}}\n", "#metrics {\"StartTime\": 1686777905.1085258, \"EndTime\": 1686777905.108531, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6565408325195312, \"count\": 1, \"min\": 0.6565408325195312, \"max\": 0.6565408325195312}}}\n", "#metrics {\"StartTime\": 1686777905.1085553, \"EndTime\": 1686777905.1085606, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6762831420898437, \"count\": 1, \"min\": 0.6762831420898437, \"max\": 0.6762831420898437}}}\n", "#metrics {\"StartTime\": 1686777905.108585, \"EndTime\": 1686777905.1085904, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9790867309570312, \"count\": 1, \"min\": 0.9790867309570312, \"max\": 0.9790867309570312}}}\n", "#metrics {\"StartTime\": 1686777905.1086125, \"EndTime\": 1686777905.108618, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9662904052734375, \"count\": 1, \"min\": 0.9662904052734375, \"max\": 0.9662904052734375}}}\n", "#metrics {\"StartTime\": 1686777905.1086385, \"EndTime\": 1686777905.1086435, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9580093994140625, \"count\": 1, \"min\": 0.9580093994140625, \"max\": 0.9580093994140625}}}\n", "#metrics {\"StartTime\": 1686777905.108668, \"EndTime\": 1686777905.1086733, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0091856689453125, \"count\": 1, \"min\": 1.0091856689453125, \"max\": 1.0091856689453125}}}\n", "#metrics {\"StartTime\": 1686777905.1086957, \"EndTime\": 1686777905.108701, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.018538818359375, \"count\": 1, \"min\": 1.018538818359375, \"max\": 1.018538818359375}}}\n", "#metrics {\"StartTime\": 1686777905.108725, \"EndTime\": 1686777905.10873, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0114102172851562, \"count\": 1, \"min\": 1.0114102172851562, \"max\": 1.0114102172851562}}}\n", "#metrics {\"StartTime\": 1686777905.1087525, \"EndTime\": 1686777905.1087575, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.97855810546875, \"count\": 1, \"min\": 0.97855810546875, \"max\": 0.97855810546875}}}\n", "#metrics {\"StartTime\": 1686777905.1087778, \"EndTime\": 1686777905.1087828, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9770177001953125, \"count\": 1, \"min\": 0.9770177001953125, \"max\": 0.9770177001953125}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=3, train mse_objective =0.974605224609375\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=3, criteria=mse_objective, value=0.6565408325195312\n", "[06/14/2023 21:25:05 INFO 140335316649792] Epoch 3: Loss improved. Updating best model\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 3\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmpdqlzgcdo/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 26.666666666666668 % of epochs\n", "#metrics {\"StartTime\": 1686777905.0920324, \"EndTime\": 1686777905.1162136, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 6355.0, \"count\": 1, \"min\": 6355, \"max\": 6355}, \"Total Batches Seen\": {\"sum\": 11.0, \"count\": 1, \"min\": 11, \"max\": 11}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 6.0, \"count\": 1, \"min\": 6, \"max\": 6}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=44109.816317913566 records/second\n", "[2023-06-14 21:25:05.131] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 12, \"duration\": 15, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.1320238, \"EndTime\": 1686777905.1320834, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9594590454101563, \"count\": 1, \"min\": 0.9594590454101563, \"max\": 0.9594590454101563}}}\n", "#metrics {\"StartTime\": 1686777905.1321485, \"EndTime\": 1686777905.132158, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9384002685546875, \"count\": 1, \"min\": 0.9384002685546875, \"max\": 0.9384002685546875}}}\n", "#metrics {\"StartTime\": 1686777905.1321826, \"EndTime\": 1686777905.1321883, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9673231201171875, \"count\": 1, \"min\": 0.9673231201171875, \"max\": 0.9673231201171875}}}\n", "#metrics {\"StartTime\": 1686777905.1322103, \"EndTime\": 1686777905.1322155, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9415489501953125, \"count\": 1, \"min\": 0.9415489501953125, \"max\": 0.9415489501953125}}}\n", "#metrics {\"StartTime\": 1686777905.132237, \"EndTime\": 1686777905.1322422, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7144944458007813, \"count\": 1, \"min\": 0.7144944458007813, \"max\": 0.7144944458007813}}}\n", "#metrics {\"StartTime\": 1686777905.1322656, \"EndTime\": 1686777905.1322708, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7529827270507813, \"count\": 1, \"min\": 0.7529827270507813, \"max\": 0.7529827270507813}}}\n", "#metrics {\"StartTime\": 1686777905.1322918, \"EndTime\": 1686777905.132297, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8737408447265625, \"count\": 1, \"min\": 0.8737408447265625, \"max\": 0.8737408447265625}}}\n", "#metrics {\"StartTime\": 1686777905.1323175, \"EndTime\": 1686777905.1323225, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7503407592773438, \"count\": 1, \"min\": 0.7503407592773438, \"max\": 0.7503407592773438}}}\n", "#metrics {\"StartTime\": 1686777905.132343, \"EndTime\": 1686777905.1323478, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8378130493164062, \"count\": 1, \"min\": 0.8378130493164062, \"max\": 0.8378130493164062}}}\n", "#metrics {\"StartTime\": 1686777905.1323683, \"EndTime\": 1686777905.1323736, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9275397338867187, \"count\": 1, \"min\": 0.9275397338867187, \"max\": 0.9275397338867187}}}\n", "#metrics {\"StartTime\": 1686777905.1324034, \"EndTime\": 1686777905.1324089, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.033701171875, \"count\": 1, \"min\": 1.033701171875, \"max\": 1.033701171875}}}\n", "#metrics {\"StartTime\": 1686777905.1324294, \"EndTime\": 1686777905.1324344, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.957732666015625, \"count\": 1, \"min\": 0.957732666015625, \"max\": 0.957732666015625}}}\n", "#metrics {\"StartTime\": 1686777905.1324544, \"EndTime\": 1686777905.1324594, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9273709716796875, \"count\": 1, \"min\": 0.9273709716796875, \"max\": 0.9273709716796875}}}\n", "#metrics {\"StartTime\": 1686777905.1324797, \"EndTime\": 1686777905.132485, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8939179077148437, \"count\": 1, \"min\": 0.8939179077148437, \"max\": 0.8939179077148437}}}\n", "#metrics {\"StartTime\": 1686777905.1325045, \"EndTime\": 1686777905.1325097, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7269241333007812, \"count\": 1, \"min\": 0.7269241333007812, \"max\": 0.7269241333007812}}}\n", "#metrics {\"StartTime\": 1686777905.13253, \"EndTime\": 1686777905.132535, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9409971923828125, \"count\": 1, \"min\": 0.9409971923828125, \"max\": 0.9409971923828125}}}\n", "#metrics {\"StartTime\": 1686777905.1325572, \"EndTime\": 1686777905.1325622, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9852452392578125, \"count\": 1, \"min\": 0.9852452392578125, \"max\": 0.9852452392578125}}}\n", "#metrics {\"StartTime\": 1686777905.1325824, \"EndTime\": 1686777905.1325877, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0075147705078125, \"count\": 1, \"min\": 1.0075147705078125, \"max\": 1.0075147705078125}}}\n", "#metrics {\"StartTime\": 1686777905.1326077, \"EndTime\": 1686777905.1326134, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.027198974609375, \"count\": 1, \"min\": 1.027198974609375, \"max\": 1.027198974609375}}}\n", "#metrics {\"StartTime\": 1686777905.132633, \"EndTime\": 1686777905.1326382, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9391788940429687, \"count\": 1, \"min\": 0.9391788940429687, \"max\": 0.9391788940429687}}}\n", "#metrics {\"StartTime\": 1686777905.132658, \"EndTime\": 1686777905.1326632, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6889517822265625, \"count\": 1, \"min\": 0.6889517822265625, \"max\": 0.6889517822265625}}}\n", "#metrics {\"StartTime\": 1686777905.1326833, \"EndTime\": 1686777905.1326883, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6707691650390625, \"count\": 1, \"min\": 0.6707691650390625, \"max\": 0.6707691650390625}}}\n", "#metrics {\"StartTime\": 1686777905.1327102, \"EndTime\": 1686777905.1327155, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7683834838867187, \"count\": 1, \"min\": 0.7683834838867187, \"max\": 0.7683834838867187}}}\n", "#metrics {\"StartTime\": 1686777905.1327355, \"EndTime\": 1686777905.1327405, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7269542236328125, \"count\": 1, \"min\": 0.7269542236328125, \"max\": 0.7269542236328125}}}\n", "#metrics {\"StartTime\": 1686777905.1327603, \"EndTime\": 1686777905.1327655, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9786641845703125, \"count\": 1, \"min\": 0.9786641845703125, \"max\": 0.9786641845703125}}}\n", "#metrics {\"StartTime\": 1686777905.1327853, \"EndTime\": 1686777905.1327906, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9710018920898438, \"count\": 1, \"min\": 0.9710018920898438, \"max\": 0.9710018920898438}}}\n", "#metrics {\"StartTime\": 1686777905.1328104, \"EndTime\": 1686777905.1328154, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.960674560546875, \"count\": 1, \"min\": 0.960674560546875, \"max\": 0.960674560546875}}}\n", "#metrics {\"StartTime\": 1686777905.1328354, \"EndTime\": 1686777905.1328402, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0044139404296875, \"count\": 1, \"min\": 1.0044139404296875, \"max\": 1.0044139404296875}}}\n", "#metrics {\"StartTime\": 1686777905.1328626, \"EndTime\": 1686777905.1328678, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0411546630859374, \"count\": 1, \"min\": 1.0411546630859374, \"max\": 1.0411546630859374}}}\n", "#metrics {\"StartTime\": 1686777905.132888, \"EndTime\": 1686777905.1328928, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.1614339599609376, \"count\": 1, \"min\": 1.1614339599609376, \"max\": 1.1614339599609376}}}\n", "#metrics {\"StartTime\": 1686777905.132913, \"EndTime\": 1686777905.1329181, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.1201153564453126, \"count\": 1, \"min\": 1.1201153564453126, \"max\": 1.1201153564453126}}}\n", "#metrics {\"StartTime\": 1686777905.132938, \"EndTime\": 1686777905.132976, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9459694213867188, \"count\": 1, \"min\": 0.9459694213867188, \"max\": 0.9459694213867188}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=4, train mse_objective =0.9594590454101563\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=4, criteria=mse_objective, value=0.6707691650390625\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 4\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmptmss4_20/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 33.333333333333336 % of epochs\n", "#metrics {\"StartTime\": 1686777905.116409, \"EndTime\": 1686777905.1396961, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 7426.0, \"count\": 1, \"min\": 7426, \"max\": 7426}, \"Total Batches Seen\": {\"sum\": 13.0, \"count\": 1, \"min\": 13, \"max\": 13}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 7.0, \"count\": 1, \"min\": 7, \"max\": 7}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=45785.42465753425 records/second\n", "[2023-06-14 21:25:05.155] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 14, \"duration\": 15, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.155912, \"EndTime\": 1686777905.155986, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9451370849609375, \"count\": 1, \"min\": 0.9451370849609375, \"max\": 0.9451370849609375}}}\n", "#metrics {\"StartTime\": 1686777905.1560595, \"EndTime\": 1686777905.1560724, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9238663940429688, \"count\": 1, \"min\": 0.9238663940429688, \"max\": 0.9238663940429688}}}\n", "#metrics {\"StartTime\": 1686777905.156104, \"EndTime\": 1686777905.1561122, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.95290185546875, \"count\": 1, \"min\": 0.95290185546875, \"max\": 0.95290185546875}}}\n", "#metrics {\"StartTime\": 1686777905.1561425, \"EndTime\": 1686777905.1561518, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9269659423828125, \"count\": 1, \"min\": 0.9269659423828125, \"max\": 0.9269659423828125}}}\n", "#metrics {\"StartTime\": 1686777905.1561866, \"EndTime\": 1686777905.1561964, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8364293212890626, \"count\": 1, \"min\": 0.8364293212890626, \"max\": 0.8364293212890626}}}\n", "#metrics {\"StartTime\": 1686777905.156231, \"EndTime\": 1686777905.1562405, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8619542236328125, \"count\": 1, \"min\": 0.8619542236328125, \"max\": 0.8619542236328125}}}\n", "#metrics {\"StartTime\": 1686777905.156277, \"EndTime\": 1686777905.1562867, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9758377685546875, \"count\": 1, \"min\": 0.9758377685546875, \"max\": 0.9758377685546875}}}\n", "#metrics {\"StartTime\": 1686777905.1563222, \"EndTime\": 1686777905.1563323, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8314310302734375, \"count\": 1, \"min\": 0.8314310302734375, \"max\": 0.8314310302734375}}}\n", "#metrics {\"StartTime\": 1686777905.1563652, \"EndTime\": 1686777905.1563742, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8271822509765625, \"count\": 1, \"min\": 0.8271822509765625, \"max\": 0.8271822509765625}}}\n", "#metrics {\"StartTime\": 1686777905.1564186, \"EndTime\": 1686777905.1564286, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.91309033203125, \"count\": 1, \"min\": 0.91309033203125, \"max\": 0.91309033203125}}}\n", "#metrics {\"StartTime\": 1686777905.156463, \"EndTime\": 1686777905.156473, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.01736181640625, \"count\": 1, \"min\": 1.01736181640625, \"max\": 1.01736181640625}}}\n", "#metrics {\"StartTime\": 1686777905.156509, \"EndTime\": 1686777905.1565192, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9423170166015625, \"count\": 1, \"min\": 0.9423170166015625, \"max\": 0.9423170166015625}}}\n", "#metrics {\"StartTime\": 1686777905.1565528, \"EndTime\": 1686777905.156562, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.058690673828125, \"count\": 1, \"min\": 1.058690673828125, \"max\": 1.058690673828125}}}\n", "#metrics {\"StartTime\": 1686777905.1565983, \"EndTime\": 1686777905.1566076, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0132245483398437, \"count\": 1, \"min\": 1.0132245483398437, \"max\": 1.0132245483398437}}}\n", "#metrics {\"StartTime\": 1686777905.1566398, \"EndTime\": 1686777905.1566496, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8470865478515625, \"count\": 1, \"min\": 0.8470865478515625, \"max\": 0.8470865478515625}}}\n", "#metrics {\"StartTime\": 1686777905.1566823, \"EndTime\": 1686777905.1566918, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0637578125, \"count\": 1, \"min\": 1.0637578125, \"max\": 1.0637578125}}}\n", "#metrics {\"StartTime\": 1686777905.1567273, \"EndTime\": 1686777905.156737, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.96971435546875, \"count\": 1, \"min\": 0.96971435546875, \"max\": 0.96971435546875}}}\n", "#metrics {\"StartTime\": 1686777905.1567712, \"EndTime\": 1686777905.156781, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9923033447265625, \"count\": 1, \"min\": 0.9923033447265625, \"max\": 0.9923033447265625}}}\n", "#metrics {\"StartTime\": 1686777905.1568167, \"EndTime\": 1686777905.1568253, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0104291381835937, \"count\": 1, \"min\": 1.0104291381835937, \"max\": 1.0104291381835937}}}\n", "#metrics {\"StartTime\": 1686777905.1568587, \"EndTime\": 1686777905.1568677, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.92418798828125, \"count\": 1, \"min\": 0.92418798828125, \"max\": 0.92418798828125}}}\n", "#metrics {\"StartTime\": 1686777905.156904, \"EndTime\": 1686777905.156913, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7785425415039062, \"count\": 1, \"min\": 0.7785425415039062, \"max\": 0.7785425415039062}}}\n", "#metrics {\"StartTime\": 1686777905.156967, \"EndTime\": 1686777905.1569784, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.760369384765625, \"count\": 1, \"min\": 0.760369384765625, \"max\": 0.760369384765625}}}\n", "#metrics {\"StartTime\": 1686777905.1570168, \"EndTime\": 1686777905.1570268, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8294029541015625, \"count\": 1, \"min\": 0.8294029541015625, \"max\": 0.8294029541015625}}}\n", "#metrics {\"StartTime\": 1686777905.1570609, \"EndTime\": 1686777905.15707, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7884896240234375, \"count\": 1, \"min\": 0.7884896240234375, \"max\": 0.7884896240234375}}}\n", "#metrics {\"StartTime\": 1686777905.1571062, \"EndTime\": 1686777905.1571164, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9778370361328125, \"count\": 1, \"min\": 0.9778370361328125, \"max\": 0.9778370361328125}}}\n", "#metrics {\"StartTime\": 1686777905.1571505, \"EndTime\": 1686777905.15716, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9757728881835938, \"count\": 1, \"min\": 0.9757728881835938, \"max\": 0.9757728881835938}}}\n", "#metrics {\"StartTime\": 1686777905.1571956, \"EndTime\": 1686777905.1572053, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.963368408203125, \"count\": 1, \"min\": 0.963368408203125, \"max\": 0.963368408203125}}}\n", "#metrics {\"StartTime\": 1686777905.157237, \"EndTime\": 1686777905.1572468, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.99982763671875, \"count\": 1, \"min\": 0.99982763671875, \"max\": 0.99982763671875}}}\n", "#metrics {\"StartTime\": 1686777905.1572783, \"EndTime\": 1686777905.1572874, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.088587890625, \"count\": 1, \"min\": 1.088587890625, \"max\": 1.088587890625}}}\n", "#metrics {\"StartTime\": 1686777905.1573176, \"EndTime\": 1686777905.1573274, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.2275877685546874, \"count\": 1, \"min\": 1.2275877685546874, \"max\": 1.2275877685546874}}}\n", "#metrics {\"StartTime\": 1686777905.1573606, \"EndTime\": 1686777905.15737, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.18158935546875, \"count\": 1, \"min\": 1.18158935546875, \"max\": 1.18158935546875}}}\n", "#metrics {\"StartTime\": 1686777905.157402, \"EndTime\": 1686777905.1574116, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0184425048828125, \"count\": 1, \"min\": 1.0184425048828125, \"max\": 1.0184425048828125}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=5, train mse_objective =0.9451370849609375\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=5, criteria=mse_objective, value=0.760369384765625\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 5\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmpa4h1l14z/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 40.0 % of epochs\n", "#metrics {\"StartTime\": 1686777905.1398835, \"EndTime\": 1686777905.1634898, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 8497.0, \"count\": 1, \"min\": 8497, \"max\": 8497}, \"Total Batches Seen\": {\"sum\": 15.0, \"count\": 1, \"min\": 15, \"max\": 15}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 8.0, \"count\": 1, \"min\": 8, \"max\": 8}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=45146.27575602255 records/second\n", "[2023-06-14 21:25:05.179] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 16, \"duration\": 15, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.179134, \"EndTime\": 1686777905.1792023, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9309275512695312, \"count\": 1, \"min\": 0.9309275512695312, \"max\": 0.9309275512695312}}}\n", "#metrics {\"StartTime\": 1686777905.1792746, \"EndTime\": 1686777905.1792896, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9089638061523437, \"count\": 1, \"min\": 0.9089638061523437, \"max\": 0.9089638061523437}}}\n", "#metrics {\"StartTime\": 1686777905.179328, \"EndTime\": 1686777905.1793375, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.938397705078125, \"count\": 1, \"min\": 0.938397705078125, \"max\": 0.938397705078125}}}\n", "#metrics {\"StartTime\": 1686777905.1793675, \"EndTime\": 1686777905.1793768, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.912354248046875, \"count\": 1, \"min\": 0.912354248046875, \"max\": 0.912354248046875}}}\n", "#metrics {\"StartTime\": 1686777905.1794133, \"EndTime\": 1686777905.1794217, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7815601196289063, \"count\": 1, \"min\": 0.7815601196289063, \"max\": 0.7815601196289063}}}\n", "#metrics {\"StartTime\": 1686777905.179453, \"EndTime\": 1686777905.179461, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7760836181640625, \"count\": 1, \"min\": 0.7760836181640625, \"max\": 0.7760836181640625}}}\n", "#metrics {\"StartTime\": 1686777905.1794877, \"EndTime\": 1686777905.179495, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8089533081054687, \"count\": 1, \"min\": 0.8089533081054687, \"max\": 0.8089533081054687}}}\n", "#metrics {\"StartTime\": 1686777905.179522, \"EndTime\": 1686777905.17953, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7221036987304688, \"count\": 1, \"min\": 0.7221036987304688, \"max\": 0.7221036987304688}}}\n", "#metrics {\"StartTime\": 1686777905.1795561, \"EndTime\": 1686777905.179564, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8167568359375, \"count\": 1, \"min\": 0.8167568359375, \"max\": 0.8167568359375}}}\n", "#metrics {\"StartTime\": 1686777905.1795974, \"EndTime\": 1686777905.1796055, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8986716918945312, \"count\": 1, \"min\": 0.8986716918945312, \"max\": 0.8986716918945312}}}\n", "#metrics {\"StartTime\": 1686777905.1796365, \"EndTime\": 1686777905.1796446, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.000641357421875, \"count\": 1, \"min\": 1.000641357421875, \"max\": 1.000641357421875}}}\n", "#metrics {\"StartTime\": 1686777905.1796756, \"EndTime\": 1686777905.1796844, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9267261352539062, \"count\": 1, \"min\": 0.9267261352539062, \"max\": 0.9267261352539062}}}\n", "#metrics {\"StartTime\": 1686777905.179715, \"EndTime\": 1686777905.1797233, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8447373657226562, \"count\": 1, \"min\": 0.8447373657226562, \"max\": 0.8447373657226562}}}\n", "#metrics {\"StartTime\": 1686777905.179756, \"EndTime\": 1686777905.1797647, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8298294067382812, \"count\": 1, \"min\": 0.8298294067382812, \"max\": 0.8298294067382812}}}\n", "#metrics {\"StartTime\": 1686777905.1797988, \"EndTime\": 1686777905.1798074, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7799320678710937, \"count\": 1, \"min\": 0.7799320678710937, \"max\": 0.7799320678710937}}}\n", "#metrics {\"StartTime\": 1686777905.1798398, \"EndTime\": 1686777905.179848, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.83313525390625, \"count\": 1, \"min\": 0.83313525390625, \"max\": 0.83313525390625}}}\n", "#metrics {\"StartTime\": 1686777905.1798775, \"EndTime\": 1686777905.1798863, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9543753662109375, \"count\": 1, \"min\": 0.9543753662109375, \"max\": 0.9543753662109375}}}\n", "#metrics {\"StartTime\": 1686777905.1799204, \"EndTime\": 1686777905.1799283, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9772023315429688, \"count\": 1, \"min\": 0.9772023315429688, \"max\": 0.9772023315429688}}}\n", "#metrics {\"StartTime\": 1686777905.1799603, \"EndTime\": 1686777905.179968, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9937194213867188, \"count\": 1, \"min\": 0.9937194213867188, \"max\": 0.9937194213867188}}}\n", "#metrics {\"StartTime\": 1686777905.1799974, \"EndTime\": 1686777905.180005, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9091443481445313, \"count\": 1, \"min\": 0.9091443481445313, \"max\": 0.9091443481445313}}}\n", "#metrics {\"StartTime\": 1686777905.1800332, \"EndTime\": 1686777905.1800413, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7145595703125, \"count\": 1, \"min\": 0.7145595703125, \"max\": 0.7145595703125}}}\n", "#metrics {\"StartTime\": 1686777905.180073, \"EndTime\": 1686777905.1800807, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.70767626953125, \"count\": 1, \"min\": 0.70767626953125, \"max\": 0.70767626953125}}}\n", "#metrics {\"StartTime\": 1686777905.1801093, \"EndTime\": 1686777905.1801176, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6988079833984375, \"count\": 1, \"min\": 0.6988079833984375, \"max\": 0.6988079833984375}}}\n", "#metrics {\"StartTime\": 1686777905.1801474, \"EndTime\": 1686777905.1801553, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6768855590820313, \"count\": 1, \"min\": 0.6768855590820313, \"max\": 0.6768855590820313}}}\n", "#metrics {\"StartTime\": 1686777905.1801875, \"EndTime\": 1686777905.1801956, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9764688720703125, \"count\": 1, \"min\": 0.9764688720703125, \"max\": 0.9764688720703125}}}\n", "#metrics {\"StartTime\": 1686777905.180228, \"EndTime\": 1686777905.1802363, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.979979248046875, \"count\": 1, \"min\": 0.979979248046875, \"max\": 0.979979248046875}}}\n", "#metrics {\"StartTime\": 1686777905.1803231, \"EndTime\": 1686777905.1803358, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9657122192382812, \"count\": 1, \"min\": 0.9657122192382812, \"max\": 0.9657122192382812}}}\n", "#metrics {\"StartTime\": 1686777905.1803691, \"EndTime\": 1686777905.1803782, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9950216064453125, \"count\": 1, \"min\": 0.9950216064453125, \"max\": 0.9950216064453125}}}\n", "#metrics {\"StartTime\": 1686777905.1804214, \"EndTime\": 1686777905.1804302, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9844647827148437, \"count\": 1, \"min\": 0.9844647827148437, \"max\": 0.9844647827148437}}}\n", "#metrics {\"StartTime\": 1686777905.1804633, \"EndTime\": 1686777905.1804721, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0702366943359376, \"count\": 1, \"min\": 1.0702366943359376, \"max\": 1.0702366943359376}}}\n", "#metrics {\"StartTime\": 1686777905.180508, \"EndTime\": 1686777905.1805174, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.028525146484375, \"count\": 1, \"min\": 1.028525146484375, \"max\": 1.028525146484375}}}\n", "#metrics {\"StartTime\": 1686777905.180553, \"EndTime\": 1686777905.1805613, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9692490234375, \"count\": 1, \"min\": 0.9692490234375, \"max\": 0.9692490234375}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=6, train mse_objective =0.9309275512695312\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=6, criteria=mse_objective, value=0.6768855590820313\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 6\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmpq3idgi55/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 46.666666666666664 % of epochs\n", "#metrics {\"StartTime\": 1686777905.1637387, \"EndTime\": 1686777905.186395, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 9568.0, \"count\": 1, \"min\": 9568, \"max\": 9568}, \"Total Batches Seen\": {\"sum\": 17.0, \"count\": 1, \"min\": 17, \"max\": 17}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 9.0, \"count\": 1, \"min\": 9, \"max\": 9}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=47034.24444281571 records/second\n", "[2023-06-14 21:25:05.201] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 18, \"duration\": 14, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.2014267, \"EndTime\": 1686777905.2014852, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9171712646484375, \"count\": 1, \"min\": 0.9171712646484375, \"max\": 0.9171712646484375}}}\n", "#metrics {\"StartTime\": 1686777905.2015545, \"EndTime\": 1686777905.201564, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.894685302734375, \"count\": 1, \"min\": 0.894685302734375, \"max\": 0.894685302734375}}}\n", "#metrics {\"StartTime\": 1686777905.2015934, \"EndTime\": 1686777905.2015996, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9246111450195312, \"count\": 1, \"min\": 0.9246111450195312, \"max\": 0.9246111450195312}}}\n", "#metrics {\"StartTime\": 1686777905.2016246, \"EndTime\": 1686777905.2016304, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8984644165039063, \"count\": 1, \"min\": 0.8984644165039063, \"max\": 0.8984644165039063}}}\n", "#metrics {\"StartTime\": 1686777905.2016518, \"EndTime\": 1686777905.2016568, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7032120971679687, \"count\": 1, \"min\": 0.7032120971679687, \"max\": 0.7032120971679687}}}\n", "#metrics {\"StartTime\": 1686777905.201682, \"EndTime\": 1686777905.2016878, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.725182373046875, \"count\": 1, \"min\": 0.725182373046875, \"max\": 0.725182373046875}}}\n", "#metrics {\"StartTime\": 1686777905.2017143, \"EndTime\": 1686777905.2017198, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7236519165039063, \"count\": 1, \"min\": 0.7236519165039063, \"max\": 0.7236519165039063}}}\n", "#metrics {\"StartTime\": 1686777905.20174, \"EndTime\": 1686777905.201745, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6636129760742188, \"count\": 1, \"min\": 0.6636129760742188, \"max\": 0.6636129760742188}}}\n", "#metrics {\"StartTime\": 1686777905.2017686, \"EndTime\": 1686777905.201774, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8064939575195312, \"count\": 1, \"min\": 0.8064939575195312, \"max\": 0.8064939575195312}}}\n", "#metrics {\"StartTime\": 1686777905.2017975, \"EndTime\": 1686777905.2018025, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8849080810546875, \"count\": 1, \"min\": 0.8849080810546875, \"max\": 0.8849080810546875}}}\n", "#metrics {\"StartTime\": 1686777905.201828, \"EndTime\": 1686777905.2018335, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9845374145507813, \"count\": 1, \"min\": 0.9845374145507813, \"max\": 0.9845374145507813}}}\n", "#metrics {\"StartTime\": 1686777905.2018564, \"EndTime\": 1686777905.2018616, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9118574829101562, \"count\": 1, \"min\": 0.9118574829101562, \"max\": 0.9118574829101562}}}\n", "#metrics {\"StartTime\": 1686777905.2018857, \"EndTime\": 1686777905.2018912, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6837935791015625, \"count\": 1, \"min\": 0.6837935791015625, \"max\": 0.6837935791015625}}}\n", "#metrics {\"StartTime\": 1686777905.2019136, \"EndTime\": 1686777905.2019196, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.713102783203125, \"count\": 1, \"min\": 0.713102783203125, \"max\": 0.713102783203125}}}\n", "#metrics {\"StartTime\": 1686777905.2019424, \"EndTime\": 1686777905.2019477, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7206134033203125, \"count\": 1, \"min\": 0.7206134033203125, \"max\": 0.7206134033203125}}}\n", "#metrics {\"StartTime\": 1686777905.2019713, \"EndTime\": 1686777905.2019763, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6623385620117187, \"count\": 1, \"min\": 0.6623385620117187, \"max\": 0.6623385620117187}}}\n", "#metrics {\"StartTime\": 1686777905.2019966, \"EndTime\": 1686777905.2020016, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9394664916992187, \"count\": 1, \"min\": 0.9394664916992187, \"max\": 0.9394664916992187}}}\n", "#metrics {\"StartTime\": 1686777905.2020242, \"EndTime\": 1686777905.2020295, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.962658935546875, \"count\": 1, \"min\": 0.962658935546875, \"max\": 0.962658935546875}}}\n", "#metrics {\"StartTime\": 1686777905.2020495, \"EndTime\": 1686777905.2020547, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9776746215820312, \"count\": 1, \"min\": 0.9776746215820312, \"max\": 0.9776746215820312}}}\n", "#metrics {\"StartTime\": 1686777905.2020757, \"EndTime\": 1686777905.2020807, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.894867919921875, \"count\": 1, \"min\": 0.894867919921875, \"max\": 0.894867919921875}}}\n", "#metrics {\"StartTime\": 1686777905.2021031, \"EndTime\": 1686777905.2021084, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.701564453125, \"count\": 1, \"min\": 0.701564453125, \"max\": 0.701564453125}}}\n", "#metrics {\"StartTime\": 1686777905.2021286, \"EndTime\": 1686777905.2021337, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6980833129882813, \"count\": 1, \"min\": 0.6980833129882813, \"max\": 0.6980833129882813}}}\n", "#metrics {\"StartTime\": 1686777905.202157, \"EndTime\": 1686777905.2021625, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6879876098632812, \"count\": 1, \"min\": 0.6879876098632812, \"max\": 0.6879876098632812}}}\n", "#metrics {\"StartTime\": 1686777905.2021832, \"EndTime\": 1686777905.2021883, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.659395751953125, \"count\": 1, \"min\": 0.659395751953125, \"max\": 0.659395751953125}}}\n", "#metrics {\"StartTime\": 1686777905.202208, \"EndTime\": 1686777905.2022133, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9754028930664063, \"count\": 1, \"min\": 0.9754028930664063, \"max\": 0.9754028930664063}}}\n", "#metrics {\"StartTime\": 1686777905.202233, \"EndTime\": 1686777905.2022383, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9841283569335938, \"count\": 1, \"min\": 0.9841283569335938, \"max\": 0.9841283569335938}}}\n", "#metrics {\"StartTime\": 1686777905.2022607, \"EndTime\": 1686777905.2022662, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9687301025390626, \"count\": 1, \"min\": 0.9687301025390626, \"max\": 0.9687301025390626}}}\n", "#metrics {\"StartTime\": 1686777905.2022862, \"EndTime\": 1686777905.2022913, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9909588623046875, \"count\": 1, \"min\": 0.9909588623046875, \"max\": 0.9909588623046875}}}\n", "#metrics {\"StartTime\": 1686777905.2023115, \"EndTime\": 1686777905.2023163, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9844620971679687, \"count\": 1, \"min\": 0.9844620971679687, \"max\": 0.9844620971679687}}}\n", "#metrics {\"StartTime\": 1686777905.2023365, \"EndTime\": 1686777905.2023416, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0048580932617188, \"count\": 1, \"min\": 1.0048580932617188, \"max\": 1.0048580932617188}}}\n", "#metrics {\"StartTime\": 1686777905.2023683, \"EndTime\": 1686777905.2023733, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9952666625976563, \"count\": 1, \"min\": 0.9952666625976563, \"max\": 0.9952666625976563}}}\n", "#metrics {\"StartTime\": 1686777905.2023933, \"EndTime\": 1686777905.2023985, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0209095458984374, \"count\": 1, \"min\": 1.0209095458984374, \"max\": 1.0209095458984374}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=7, train mse_objective =0.9171712646484375\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=7, criteria=mse_objective, value=0.659395751953125\n", "[06/14/2023 21:25:05 INFO 140335316649792] Epoch 7: Loss has not improved for 0 epochs.\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 7\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmpsrrxyst6/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 53.333333333333336 % of epochs\n", "#metrics {\"StartTime\": 1686777905.1866348, \"EndTime\": 1686777905.20905, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 10639.0, \"count\": 1, \"min\": 10639, \"max\": 10639}, \"Total Batches Seen\": {\"sum\": 19.0, \"count\": 1, \"min\": 19, \"max\": 19}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 10.0, \"count\": 1, \"min\": 10, \"max\": 10}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=47563.12757689661 records/second\n", "[2023-06-14 21:25:05.224] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 20, \"duration\": 14, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.2242787, \"EndTime\": 1686777905.2243378, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9041302490234375, \"count\": 1, \"min\": 0.9041302490234375, \"max\": 0.9041302490234375}}}\n", "#metrics {\"StartTime\": 1686777905.2244103, \"EndTime\": 1686777905.2244198, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8814446411132812, \"count\": 1, \"min\": 0.8814446411132812, \"max\": 0.8814446411132812}}}\n", "#metrics {\"StartTime\": 1686777905.224449, \"EndTime\": 1686777905.224455, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9116272583007813, \"count\": 1, \"min\": 0.9116272583007813, \"max\": 0.9116272583007813}}}\n", "#metrics {\"StartTime\": 1686777905.2244792, \"EndTime\": 1686777905.2244852, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8853553466796875, \"count\": 1, \"min\": 0.8853553466796875, \"max\": 0.8853553466796875}}}\n", "#metrics {\"StartTime\": 1686777905.224506, \"EndTime\": 1686777905.2245111, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7173060302734375, \"count\": 1, \"min\": 0.7173060302734375, \"max\": 0.7173060302734375}}}\n", "#metrics {\"StartTime\": 1686777905.2245314, \"EndTime\": 1686777905.2245367, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7613701782226563, \"count\": 1, \"min\": 0.7613701782226563, \"max\": 0.7613701782226563}}}\n", "#metrics {\"StartTime\": 1686777905.2245607, \"EndTime\": 1686777905.224566, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.799380126953125, \"count\": 1, \"min\": 0.799380126953125, \"max\": 0.799380126953125}}}\n", "#metrics {\"StartTime\": 1686777905.22459, \"EndTime\": 1686777905.2245955, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7109956665039062, \"count\": 1, \"min\": 0.7109956665039062, \"max\": 0.7109956665039062}}}\n", "#metrics {\"StartTime\": 1686777905.2246232, \"EndTime\": 1686777905.2246294, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7968128662109375, \"count\": 1, \"min\": 0.7968128662109375, \"max\": 0.7968128662109375}}}\n", "#metrics {\"StartTime\": 1686777905.224653, \"EndTime\": 1686777905.2246587, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.87186474609375, \"count\": 1, \"min\": 0.87186474609375, \"max\": 0.87186474609375}}}\n", "#metrics {\"StartTime\": 1686777905.224683, \"EndTime\": 1686777905.224688, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.96947900390625, \"count\": 1, \"min\": 0.96947900390625, \"max\": 0.96947900390625}}}\n", "#metrics {\"StartTime\": 1686777905.2247107, \"EndTime\": 1686777905.2247157, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8979135131835938, \"count\": 1, \"min\": 0.8979135131835938, \"max\": 0.8979135131835938}}}\n", "#metrics {\"StartTime\": 1686777905.2247362, \"EndTime\": 1686777905.2247415, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7415409545898437, \"count\": 1, \"min\": 0.7415409545898437, \"max\": 0.7415409545898437}}}\n", "#metrics {\"StartTime\": 1686777905.2247615, \"EndTime\": 1686777905.224767, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7811779174804687, \"count\": 1, \"min\": 0.7811779174804687, \"max\": 0.7811779174804687}}}\n", "#metrics {\"StartTime\": 1686777905.2247908, \"EndTime\": 1686777905.2247965, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7442326049804687, \"count\": 1, \"min\": 0.7442326049804687, \"max\": 0.7442326049804687}}}\n", "#metrics {\"StartTime\": 1686777905.2248201, \"EndTime\": 1686777905.2248256, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7263248901367187, \"count\": 1, \"min\": 0.7263248901367187, \"max\": 0.7263248901367187}}}\n", "#metrics {\"StartTime\": 1686777905.2248461, \"EndTime\": 1686777905.2248511, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9253173828125, \"count\": 1, \"min\": 0.9253173828125, \"max\": 0.9253173828125}}}\n", "#metrics {\"StartTime\": 1686777905.224875, \"EndTime\": 1686777905.2248805, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9488567504882812, \"count\": 1, \"min\": 0.9488567504882812, \"max\": 0.9488567504882812}}}\n", "#metrics {\"StartTime\": 1686777905.2249043, \"EndTime\": 1686777905.2249095, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9623759155273437, \"count\": 1, \"min\": 0.9623759155273437, \"max\": 0.9623759155273437}}}\n", "#metrics {\"StartTime\": 1686777905.2249322, \"EndTime\": 1686777905.2249372, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8814644775390625, \"count\": 1, \"min\": 0.8814644775390625, \"max\": 0.8814644775390625}}}\n", "#metrics {\"StartTime\": 1686777905.224981, \"EndTime\": 1686777905.2249866, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7748320922851563, \"count\": 1, \"min\": 0.7748320922851563, \"max\": 0.7748320922851563}}}\n", "#metrics {\"StartTime\": 1686777905.2250066, \"EndTime\": 1686777905.2250118, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7945308837890624, \"count\": 1, \"min\": 0.7945308837890624, \"max\": 0.7945308837890624}}}\n", "#metrics {\"StartTime\": 1686777905.2250316, \"EndTime\": 1686777905.2250369, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8151787719726562, \"count\": 1, \"min\": 0.8151787719726562, \"max\": 0.8151787719726562}}}\n", "#metrics {\"StartTime\": 1686777905.225057, \"EndTime\": 1686777905.225062, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.756558837890625, \"count\": 1, \"min\": 0.756558837890625, \"max\": 0.756558837890625}}}\n", "#metrics {\"StartTime\": 1686777905.2250817, \"EndTime\": 1686777905.2250867, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9754213256835937, \"count\": 1, \"min\": 0.9754213256835937, \"max\": 0.9754213256835937}}}\n", "#metrics {\"StartTime\": 1686777905.2251065, \"EndTime\": 1686777905.2251117, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9881942138671875, \"count\": 1, \"min\": 0.9881942138671875, \"max\": 0.9881942138671875}}}\n", "#metrics {\"StartTime\": 1686777905.2251318, \"EndTime\": 1686777905.225137, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9727488403320312, \"count\": 1, \"min\": 0.9727488403320312, \"max\": 0.9727488403320312}}}\n", "#metrics {\"StartTime\": 1686777905.2251568, \"EndTime\": 1686777905.225162, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9879215087890625, \"count\": 1, \"min\": 0.9879215087890625, \"max\": 0.9879215087890625}}}\n", "#metrics {\"StartTime\": 1686777905.225182, \"EndTime\": 1686777905.2251868, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0943367919921876, \"count\": 1, \"min\": 1.0943367919921876, \"max\": 1.0943367919921876}}}\n", "#metrics {\"StartTime\": 1686777905.2252069, \"EndTime\": 1686777905.2252119, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0675760498046876, \"count\": 1, \"min\": 1.0675760498046876, \"max\": 1.0675760498046876}}}\n", "#metrics {\"StartTime\": 1686777905.2252316, \"EndTime\": 1686777905.2252367, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.1136256103515625, \"count\": 1, \"min\": 1.1136256103515625, \"max\": 1.1136256103515625}}}\n", "#metrics {\"StartTime\": 1686777905.2252584, \"EndTime\": 1686777905.2252634, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.159076171875, \"count\": 1, \"min\": 1.159076171875, \"max\": 1.159076171875}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=8, train mse_objective =0.9041302490234375\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=8, criteria=mse_objective, value=0.7109956665039062\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 8\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmp4_i3u79h/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 60.0 % of epochs\n", "#metrics {\"StartTime\": 1686777905.2092366, \"EndTime\": 1686777905.233567, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 11710.0, \"count\": 1, \"min\": 11710, \"max\": 11710}, \"Total Batches Seen\": {\"sum\": 21.0, \"count\": 1, \"min\": 21, \"max\": 21}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 11.0, \"count\": 1, \"min\": 11, \"max\": 11}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=43842.4710521179 records/second\n", "[2023-06-14 21:25:05.252] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 22, \"duration\": 18, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.253189, \"EndTime\": 1686777905.2532656, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8914915161132813, \"count\": 1, \"min\": 0.8914915161132813, \"max\": 0.8914915161132813}}}\n", "#metrics {\"StartTime\": 1686777905.2535799, \"EndTime\": 1686777905.253604, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8687643432617187, \"count\": 1, \"min\": 0.8687643432617187, \"max\": 0.8687643432617187}}}\n", "#metrics {\"StartTime\": 1686777905.2538066, \"EndTime\": 1686777905.2538269, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8988980102539063, \"count\": 1, \"min\": 0.8988980102539063, \"max\": 0.8988980102539063}}}\n", "#metrics {\"StartTime\": 1686777905.2538915, \"EndTime\": 1686777905.2539039, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8725224609375, \"count\": 1, \"min\": 0.8725224609375, \"max\": 0.8725224609375}}}\n", "#metrics {\"StartTime\": 1686777905.2539587, \"EndTime\": 1686777905.2539694, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7096409301757812, \"count\": 1, \"min\": 0.7096409301757812, \"max\": 0.7096409301757812}}}\n", "#metrics {\"StartTime\": 1686777905.2540424, \"EndTime\": 1686777905.254055, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7339646606445313, \"count\": 1, \"min\": 0.7339646606445313, \"max\": 0.7339646606445313}}}\n", "#metrics {\"StartTime\": 1686777905.2541077, \"EndTime\": 1686777905.2541533, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8223572998046875, \"count\": 1, \"min\": 0.8223572998046875, \"max\": 0.8223572998046875}}}\n", "#metrics {\"StartTime\": 1686777905.254227, \"EndTime\": 1686777905.254239, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7090670166015625, \"count\": 1, \"min\": 0.7090670166015625, \"max\": 0.7090670166015625}}}\n", "#metrics {\"StartTime\": 1686777905.25431, \"EndTime\": 1686777905.2543213, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7876348876953125, \"count\": 1, \"min\": 0.7876348876953125, \"max\": 0.7876348876953125}}}\n", "#metrics {\"StartTime\": 1686777905.2543917, \"EndTime\": 1686777905.2544043, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8591118774414063, \"count\": 1, \"min\": 0.8591118774414063, \"max\": 0.8591118774414063}}}\n", "#metrics {\"StartTime\": 1686777905.2544718, \"EndTime\": 1686777905.2544994, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9549996337890625, \"count\": 1, \"min\": 0.9549996337890625, \"max\": 0.9549996337890625}}}\n", "#metrics {\"StartTime\": 1686777905.25456, \"EndTime\": 1686777905.2545717, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8843358154296875, \"count\": 1, \"min\": 0.8843358154296875, \"max\": 0.8843358154296875}}}\n", "#metrics {\"StartTime\": 1686777905.2546444, \"EndTime\": 1686777905.254656, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8310491943359375, \"count\": 1, \"min\": 0.8310491943359375, \"max\": 0.8310491943359375}}}\n", "#metrics {\"StartTime\": 1686777905.2547243, \"EndTime\": 1686777905.2547371, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8300687866210937, \"count\": 1, \"min\": 0.8300687866210937, \"max\": 0.8300687866210937}}}\n", "#metrics {\"StartTime\": 1686777905.254802, \"EndTime\": 1686777905.2548144, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7173473510742188, \"count\": 1, \"min\": 0.7173473510742188, \"max\": 0.7173473510742188}}}\n", "#metrics {\"StartTime\": 1686777905.2548878, \"EndTime\": 1686777905.2549002, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.836541015625, \"count\": 1, \"min\": 0.836541015625, \"max\": 0.836541015625}}}\n", "#metrics {\"StartTime\": 1686777905.2549746, \"EndTime\": 1686777905.2549865, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9116759643554687, \"count\": 1, \"min\": 0.9116759643554687, \"max\": 0.9116759643554687}}}\n", "#metrics {\"StartTime\": 1686777905.2550578, \"EndTime\": 1686777905.2550702, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9354309692382813, \"count\": 1, \"min\": 0.9354309692382813, \"max\": 0.9354309692382813}}}\n", "#metrics {\"StartTime\": 1686777905.2551367, \"EndTime\": 1686777905.2551494, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9474083862304687, \"count\": 1, \"min\": 0.9474083862304687, \"max\": 0.9474083862304687}}}\n", "#metrics {\"StartTime\": 1686777905.2552335, \"EndTime\": 1686777905.2552617, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.86839794921875, \"count\": 1, \"min\": 0.86839794921875, \"max\": 0.86839794921875}}}\n", "#metrics {\"StartTime\": 1686777905.2553132, \"EndTime\": 1686777905.2553246, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7741822509765625, \"count\": 1, \"min\": 0.7741822509765625, \"max\": 0.7741822509765625}}}\n", "#metrics {\"StartTime\": 1686777905.2553687, \"EndTime\": 1686777905.255379, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8315996704101563, \"count\": 1, \"min\": 0.8315996704101563, \"max\": 0.8315996704101563}}}\n", "#metrics {\"StartTime\": 1686777905.2554116, \"EndTime\": 1686777905.2554197, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8564396362304687, \"count\": 1, \"min\": 0.8564396362304687, \"max\": 0.8564396362304687}}}\n", "#metrics {\"StartTime\": 1686777905.2554958, \"EndTime\": 1686777905.2555356, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7822568969726562, \"count\": 1, \"min\": 0.7822568969726562, \"max\": 0.7822568969726562}}}\n", "#metrics {\"StartTime\": 1686777905.2556098, \"EndTime\": 1686777905.2556224, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9763377075195312, \"count\": 1, \"min\": 0.9763377075195312, \"max\": 0.9763377075195312}}}\n", "#metrics {\"StartTime\": 1686777905.255691, \"EndTime\": 1686777905.2557185, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9916995239257812, \"count\": 1, \"min\": 0.9916995239257812, \"max\": 0.9916995239257812}}}\n", "#metrics {\"StartTime\": 1686777905.2557895, \"EndTime\": 1686777905.2558014, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9771697998046875, \"count\": 1, \"min\": 0.9771697998046875, \"max\": 0.9771697998046875}}}\n", "#metrics {\"StartTime\": 1686777905.2558713, \"EndTime\": 1686777905.2558837, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9853470458984375, \"count\": 1, \"min\": 0.9853470458984375, \"max\": 0.9853470458984375}}}\n", "#metrics {\"StartTime\": 1686777905.2559528, \"EndTime\": 1686777905.2559657, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.1163533935546874, \"count\": 1, \"min\": 1.1163533935546874, \"max\": 1.1163533935546874}}}\n", "#metrics {\"StartTime\": 1686777905.2560394, \"EndTime\": 1686777905.256052, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.059918212890625, \"count\": 1, \"min\": 1.059918212890625, \"max\": 1.059918212890625}}}\n", "#metrics {\"StartTime\": 1686777905.256126, \"EndTime\": 1686777905.2561376, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.151463134765625, \"count\": 1, \"min\": 1.151463134765625, \"max\": 1.151463134765625}}}\n", "#metrics {\"StartTime\": 1686777905.2562091, \"EndTime\": 1686777905.2562206, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.1741480712890624, \"count\": 1, \"min\": 1.1741480712890624, \"max\": 1.1741480712890624}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=9, train mse_objective =0.8914915161132813\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=9, criteria=mse_objective, value=0.7090670166015625\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 9\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmpp6g3qd6w/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 66.66666666666667 % of epochs\n", "#metrics {\"StartTime\": 1686777905.2337508, \"EndTime\": 1686777905.2625654, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 12781.0, \"count\": 1, \"min\": 12781, \"max\": 12781}, \"Total Batches Seen\": {\"sum\": 23.0, \"count\": 1, \"min\": 23, \"max\": 23}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 12.0, \"count\": 1, \"min\": 12, \"max\": 12}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=37025.95207833634 records/second\n", "[2023-06-14 21:25:05.279] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 24, \"duration\": 16, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.2794545, \"EndTime\": 1686777905.2795198, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8791598510742188, \"count\": 1, \"min\": 0.8791598510742188, \"max\": 0.8791598510742188}}}\n", "#metrics {\"StartTime\": 1686777905.2795904, \"EndTime\": 1686777905.2796025, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8561797485351562, \"count\": 1, \"min\": 0.8561797485351562, \"max\": 0.8561797485351562}}}\n", "#metrics {\"StartTime\": 1686777905.279633, \"EndTime\": 1686777905.2796404, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.88634228515625, \"count\": 1, \"min\": 0.88634228515625, \"max\": 0.88634228515625}}}\n", "#metrics {\"StartTime\": 1686777905.2796683, \"EndTime\": 1686777905.2796762, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8599588623046875, \"count\": 1, \"min\": 0.8599588623046875, \"max\": 0.8599588623046875}}}\n", "#metrics {\"StartTime\": 1686777905.2797048, \"EndTime\": 1686777905.2797117, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6561416015625, \"count\": 1, \"min\": 0.6561416015625, \"max\": 0.6561416015625}}}\n", "#metrics {\"StartTime\": 1686777905.2797394, \"EndTime\": 1686777905.2797468, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.66132080078125, \"count\": 1, \"min\": 0.66132080078125, \"max\": 0.66132080078125}}}\n", "#metrics {\"StartTime\": 1686777905.2797742, \"EndTime\": 1686777905.2797816, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7268419799804687, \"count\": 1, \"min\": 0.7268419799804687, \"max\": 0.7268419799804687}}}\n", "#metrics {\"StartTime\": 1686777905.2798092, \"EndTime\": 1686777905.2798166, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.664253662109375, \"count\": 1, \"min\": 0.664253662109375, \"max\": 0.664253662109375}}}\n", "#metrics {\"StartTime\": 1686777905.2798464, \"EndTime\": 1686777905.2798543, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.77868798828125, \"count\": 1, \"min\": 0.77868798828125, \"max\": 0.77868798828125}}}\n", "#metrics {\"StartTime\": 1686777905.279883, \"EndTime\": 1686777905.2798913, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8466903686523437, \"count\": 1, \"min\": 0.8466903686523437, \"max\": 0.8466903686523437}}}\n", "#metrics {\"StartTime\": 1686777905.2799218, \"EndTime\": 1686777905.2799299, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9406214599609375, \"count\": 1, \"min\": 0.9406214599609375, \"max\": 0.9406214599609375}}}\n", "#metrics {\"StartTime\": 1686777905.279959, \"EndTime\": 1686777905.2799673, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8709078369140625, \"count\": 1, \"min\": 0.8709078369140625, \"max\": 0.8709078369140625}}}\n", "#metrics {\"StartTime\": 1686777905.2799983, \"EndTime\": 1686777905.2800078, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7868310546875, \"count\": 1, \"min\": 0.7868310546875, \"max\": 0.7868310546875}}}\n", "#metrics {\"StartTime\": 1686777905.280035, \"EndTime\": 1686777905.2800426, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7488751220703125, \"count\": 1, \"min\": 0.7488751220703125, \"max\": 0.7488751220703125}}}\n", "#metrics {\"StartTime\": 1686777905.2800717, \"EndTime\": 1686777905.2800798, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6501358032226563, \"count\": 1, \"min\": 0.6501358032226563, \"max\": 0.6501358032226563}}}\n", "#metrics {\"StartTime\": 1686777905.2801108, \"EndTime\": 1686777905.2801185, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8065079345703124, \"count\": 1, \"min\": 0.8065079345703124, \"max\": 0.8065079345703124}}}\n", "#metrics {\"StartTime\": 1686777905.280148, \"EndTime\": 1686777905.2801561, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8983902587890625, \"count\": 1, \"min\": 0.8983902587890625, \"max\": 0.8983902587890625}}}\n", "#metrics {\"StartTime\": 1686777905.2801871, \"EndTime\": 1686777905.2801955, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.92234423828125, \"count\": 1, \"min\": 0.92234423828125, \"max\": 0.92234423828125}}}\n", "#metrics {\"StartTime\": 1686777905.280224, \"EndTime\": 1686777905.2802312, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9328131103515624, \"count\": 1, \"min\": 0.9328131103515624, \"max\": 0.9328131103515624}}}\n", "#metrics {\"StartTime\": 1686777905.2802584, \"EndTime\": 1686777905.2802663, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8555933837890625, \"count\": 1, \"min\": 0.8555933837890625, \"max\": 0.8555933837890625}}}\n", "#metrics {\"StartTime\": 1686777905.2802966, \"EndTime\": 1686777905.2803047, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7120524291992187, \"count\": 1, \"min\": 0.7120524291992187, \"max\": 0.7120524291992187}}}\n", "#metrics {\"StartTime\": 1686777905.2803338, \"EndTime\": 1686777905.2803419, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7839982299804688, \"count\": 1, \"min\": 0.7839982299804688, \"max\": 0.7839982299804688}}}\n", "#metrics {\"StartTime\": 1686777905.2803724, \"EndTime\": 1686777905.2803807, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.789564453125, \"count\": 1, \"min\": 0.789564453125, \"max\": 0.789564453125}}}\n", "#metrics {\"StartTime\": 1686777905.280417, \"EndTime\": 1686777905.280425, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.741755615234375, \"count\": 1, \"min\": 0.741755615234375, \"max\": 0.741755615234375}}}\n", "#metrics {\"StartTime\": 1686777905.280455, \"EndTime\": 1686777905.2804635, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9777828979492188, \"count\": 1, \"min\": 0.9777828979492188, \"max\": 0.9777828979492188}}}\n", "#metrics {\"StartTime\": 1686777905.2804923, \"EndTime\": 1686777905.2805007, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9946696166992187, \"count\": 1, \"min\": 0.9946696166992187, \"max\": 0.9946696166992187}}}\n", "#metrics {\"StartTime\": 1686777905.2805293, \"EndTime\": 1686777905.2805374, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9814978637695313, \"count\": 1, \"min\": 0.9814978637695313, \"max\": 0.9814978637695313}}}\n", "#metrics {\"StartTime\": 1686777905.2805657, \"EndTime\": 1686777905.2805736, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9828726806640625, \"count\": 1, \"min\": 0.9828726806640625, \"max\": 0.9828726806640625}}}\n", "#metrics {\"StartTime\": 1686777905.2806044, \"EndTime\": 1686777905.2806125, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0558179931640626, \"count\": 1, \"min\": 1.0558179931640626, \"max\": 1.0558179931640626}}}\n", "#metrics {\"StartTime\": 1686777905.2806416, \"EndTime\": 1686777905.2806492, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9818250122070312, \"count\": 1, \"min\": 0.9818250122070312, \"max\": 0.9818250122070312}}}\n", "#metrics {\"StartTime\": 1686777905.2806804, \"EndTime\": 1686777905.28069, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.07366552734375, \"count\": 1, \"min\": 1.07366552734375, \"max\": 1.07366552734375}}}\n", "#metrics {\"StartTime\": 1686777905.2807212, \"EndTime\": 1686777905.2807283, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0806964111328126, \"count\": 1, \"min\": 1.0806964111328126, \"max\": 1.0806964111328126}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=10, train mse_objective =0.8791598510742188\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=10, criteria=mse_objective, value=0.6501358032226563\n", "[06/14/2023 21:25:05 INFO 140335316649792] Epoch 10: Loss improved. Updating best model\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 10\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmpcs1hdwbg/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 73.33333333333333 % of epochs\n", "#metrics {\"StartTime\": 1686777905.2628422, \"EndTime\": 1686777905.28782, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 13852.0, \"count\": 1, \"min\": 13852, \"max\": 13852}, \"Total Batches Seen\": {\"sum\": 25.0, \"count\": 1, \"min\": 25, \"max\": 25}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 13.0, \"count\": 1, \"min\": 13, \"max\": 13}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=42670.14565661363 records/second\n", "[2023-06-14 21:25:05.302] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 26, \"duration\": 14, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.3026006, \"EndTime\": 1686777905.3026605, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8674849243164062, \"count\": 1, \"min\": 0.8674849243164062, \"max\": 0.8674849243164062}}}\n", "#metrics {\"StartTime\": 1686777905.3027241, \"EndTime\": 1686777905.3027368, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8438611450195312, \"count\": 1, \"min\": 0.8438611450195312, \"max\": 0.8438611450195312}}}\n", "#metrics {\"StartTime\": 1686777905.3027723, \"EndTime\": 1686777905.3027804, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8744031372070312, \"count\": 1, \"min\": 0.8744031372070312, \"max\": 0.8744031372070312}}}\n", "#metrics {\"StartTime\": 1686777905.302808, \"EndTime\": 1686777905.302815, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8479910888671875, \"count\": 1, \"min\": 0.8479910888671875, \"max\": 0.8479910888671875}}}\n", "#metrics {\"StartTime\": 1686777905.302844, \"EndTime\": 1686777905.3028526, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6508237915039062, \"count\": 1, \"min\": 0.6508237915039062, \"max\": 0.6508237915039062}}}\n", "#metrics {\"StartTime\": 1686777905.3028839, \"EndTime\": 1686777905.3028913, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6531045532226563, \"count\": 1, \"min\": 0.6531045532226563, \"max\": 0.6531045532226563}}}\n", "#metrics {\"StartTime\": 1686777905.3029184, \"EndTime\": 1686777905.3029253, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6477562866210937, \"count\": 1, \"min\": 0.6477562866210937, \"max\": 0.6477562866210937}}}\n", "#metrics {\"StartTime\": 1686777905.3029523, \"EndTime\": 1686777905.30296, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6726028442382812, \"count\": 1, \"min\": 0.6726028442382812, \"max\": 0.6726028442382812}}}\n", "#metrics {\"StartTime\": 1686777905.3029907, \"EndTime\": 1686777905.3029976, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7701724853515625, \"count\": 1, \"min\": 0.7701724853515625, \"max\": 0.7701724853515625}}}\n", "#metrics {\"StartTime\": 1686777905.3030257, \"EndTime\": 1686777905.3030334, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8348819580078125, \"count\": 1, \"min\": 0.8348819580078125, \"max\": 0.8348819580078125}}}\n", "#metrics {\"StartTime\": 1686777905.303064, \"EndTime\": 1686777905.3030722, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.926640625, \"count\": 1, \"min\": 0.926640625, \"max\": 0.926640625}}}\n", "#metrics {\"StartTime\": 1686777905.3031027, \"EndTime\": 1686777905.303111, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8579482421875, \"count\": 1, \"min\": 0.8579482421875, \"max\": 0.8579482421875}}}\n", "#metrics {\"StartTime\": 1686777905.3031416, \"EndTime\": 1686777905.303149, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6874268188476562, \"count\": 1, \"min\": 0.6874268188476562, \"max\": 0.6874268188476562}}}\n", "#metrics {\"StartTime\": 1686777905.303177, \"EndTime\": 1686777905.3031852, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6541807861328125, \"count\": 1, \"min\": 0.6541807861328125, \"max\": 0.6541807861328125}}}\n", "#metrics {\"StartTime\": 1686777905.3032134, \"EndTime\": 1686777905.3032217, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6472337036132813, \"count\": 1, \"min\": 0.6472337036132813, \"max\": 0.6472337036132813}}}\n", "#metrics {\"StartTime\": 1686777905.3032522, \"EndTime\": 1686777905.3032596, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7001089477539062, \"count\": 1, \"min\": 0.7001089477539062, \"max\": 0.7001089477539062}}}\n", "#metrics {\"StartTime\": 1686777905.3032875, \"EndTime\": 1686777905.303295, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.885803955078125, \"count\": 1, \"min\": 0.885803955078125, \"max\": 0.885803955078125}}}\n", "#metrics {\"StartTime\": 1686777905.3033245, \"EndTime\": 1686777905.3033326, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9098401489257812, \"count\": 1, \"min\": 0.9098401489257812, \"max\": 0.9098401489257812}}}\n", "#metrics {\"StartTime\": 1686777905.3033624, \"EndTime\": 1686777905.30337, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9190045166015625, \"count\": 1, \"min\": 0.9190045166015625, \"max\": 0.9190045166015625}}}\n", "#metrics {\"StartTime\": 1686777905.3033984, \"EndTime\": 1686777905.3034065, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8433924560546875, \"count\": 1, \"min\": 0.8433924560546875, \"max\": 0.8433924560546875}}}\n", "#metrics {\"StartTime\": 1686777905.3034368, \"EndTime\": 1686777905.3034446, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7006604614257812, \"count\": 1, \"min\": 0.7006604614257812, \"max\": 0.7006604614257812}}}\n", "#metrics {\"StartTime\": 1686777905.3034732, \"EndTime\": 1686777905.303481, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7552601928710938, \"count\": 1, \"min\": 0.7552601928710938, \"max\": 0.7552601928710938}}}\n", "#metrics {\"StartTime\": 1686777905.30351, \"EndTime\": 1686777905.303518, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.74734716796875, \"count\": 1, \"min\": 0.74734716796875, \"max\": 0.74734716796875}}}\n", "#metrics {\"StartTime\": 1686777905.3035476, \"EndTime\": 1686777905.3035557, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7451403198242188, \"count\": 1, \"min\": 0.7451403198242188, \"max\": 0.7451403198242188}}}\n", "#metrics {\"StartTime\": 1686777905.303585, \"EndTime\": 1686777905.3035932, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9796765747070313, \"count\": 1, \"min\": 0.9796765747070313, \"max\": 0.9796765747070313}}}\n", "#metrics {\"StartTime\": 1686777905.303624, \"EndTime\": 1686777905.303632, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.99738232421875, \"count\": 1, \"min\": 0.99738232421875, \"max\": 0.99738232421875}}}\n", "#metrics {\"StartTime\": 1686777905.3036606, \"EndTime\": 1686777905.3036685, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.985761474609375, \"count\": 1, \"min\": 0.985761474609375, \"max\": 0.985761474609375}}}\n", "#metrics {\"StartTime\": 1686777905.3036993, \"EndTime\": 1686777905.3037074, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9807617797851562, \"count\": 1, \"min\": 0.9807617797851562, \"max\": 0.9807617797851562}}}\n", "#metrics {\"StartTime\": 1686777905.3037367, \"EndTime\": 1686777905.3037448, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0324927978515626, \"count\": 1, \"min\": 1.0324927978515626, \"max\": 1.0324927978515626}}}\n", "#metrics {\"StartTime\": 1686777905.3037736, \"EndTime\": 1686777905.3037817, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9663002319335937, \"count\": 1, \"min\": 0.9663002319335937, \"max\": 0.9663002319335937}}}\n", "#metrics {\"StartTime\": 1686777905.3038106, \"EndTime\": 1686777905.3038187, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0195751953125, \"count\": 1, \"min\": 1.0195751953125, \"max\": 1.0195751953125}}}\n", "#metrics {\"StartTime\": 1686777905.3038492, \"EndTime\": 1686777905.3038568, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.01674462890625, \"count\": 1, \"min\": 1.01674462890625, \"max\": 1.01674462890625}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=11, train mse_objective =0.8674849243164062\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=11, criteria=mse_objective, value=0.6472337036132813\n", "[06/14/2023 21:25:05 INFO 140335316649792] Epoch 11: Loss improved. Updating best model\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 11\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmp0t75wtn6/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 80.0 % of epochs\n", "#metrics {\"StartTime\": 1686777905.2880945, \"EndTime\": 1686777905.3102725, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 14923.0, \"count\": 1, \"min\": 14923, \"max\": 14923}, \"Total Batches Seen\": {\"sum\": 27.0, \"count\": 1, \"min\": 27, \"max\": 27}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 14.0, \"count\": 1, \"min\": 14, \"max\": 14}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=48029.46266358737 records/second\n", "[2023-06-14 21:25:05.323] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 28, \"duration\": 12, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.323279, \"EndTime\": 1686777905.3233457, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.85637353515625, \"count\": 1, \"min\": 0.85637353515625, \"max\": 0.85637353515625}}}\n", "#metrics {\"StartTime\": 1686777905.3234131, \"EndTime\": 1686777905.3234274, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8321697387695313, \"count\": 1, \"min\": 0.8321697387695313, \"max\": 0.8321697387695313}}}\n", "#metrics {\"StartTime\": 1686777905.3234649, \"EndTime\": 1686777905.323475, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8630693969726563, \"count\": 1, \"min\": 0.8630693969726563, \"max\": 0.8630693969726563}}}\n", "#metrics {\"StartTime\": 1686777905.3235056, \"EndTime\": 1686777905.3235126, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8366801147460937, \"count\": 1, \"min\": 0.8366801147460937, \"max\": 0.8366801147460937}}}\n", "#metrics {\"StartTime\": 1686777905.32354, \"EndTime\": 1686777905.3235478, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6955277709960938, \"count\": 1, \"min\": 0.6955277709960938, \"max\": 0.6955277709960938}}}\n", "#metrics {\"StartTime\": 1686777905.3235781, \"EndTime\": 1686777905.3235865, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6950498657226563, \"count\": 1, \"min\": 0.6950498657226563, \"max\": 0.6950498657226563}}}\n", "#metrics {\"StartTime\": 1686777905.323616, \"EndTime\": 1686777905.3236244, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.672427001953125, \"count\": 1, \"min\": 0.672427001953125, \"max\": 0.672427001953125}}}\n", "#metrics {\"StartTime\": 1686777905.3236556, \"EndTime\": 1686777905.3236637, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7131567993164063, \"count\": 1, \"min\": 0.7131567993164063, \"max\": 0.7131567993164063}}}\n", "#metrics {\"StartTime\": 1686777905.3236918, \"EndTime\": 1686777905.3236992, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7621722412109375, \"count\": 1, \"min\": 0.7621722412109375, \"max\": 0.7621722412109375}}}\n", "#metrics {\"StartTime\": 1686777905.3237312, \"EndTime\": 1686777905.3237398, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8236617431640625, \"count\": 1, \"min\": 0.8236617431640625, \"max\": 0.8236617431640625}}}\n", "#metrics {\"StartTime\": 1686777905.323776, \"EndTime\": 1686777905.3237836, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9132716674804687, \"count\": 1, \"min\": 0.9132716674804687, \"max\": 0.9132716674804687}}}\n", "#metrics {\"StartTime\": 1686777905.3238118, \"EndTime\": 1686777905.323819, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8457061157226563, \"count\": 1, \"min\": 0.8457061157226563, \"max\": 0.8457061157226563}}}\n", "#metrics {\"StartTime\": 1686777905.3238463, \"EndTime\": 1686777905.3238533, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6622344360351563, \"count\": 1, \"min\": 0.6622344360351563, \"max\": 0.6622344360351563}}}\n", "#metrics {\"StartTime\": 1686777905.3238828, \"EndTime\": 1686777905.323891, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6622960205078126, \"count\": 1, \"min\": 0.6622960205078126, \"max\": 0.6622960205078126}}}\n", "#metrics {\"StartTime\": 1686777905.3239195, \"EndTime\": 1686777905.3239262, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6948753051757812, \"count\": 1, \"min\": 0.6948753051757812, \"max\": 0.6948753051757812}}}\n", "#metrics {\"StartTime\": 1686777905.323952, \"EndTime\": 1686777905.3239594, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6568095092773437, \"count\": 1, \"min\": 0.6568095092773437, \"max\": 0.6568095092773437}}}\n", "#metrics {\"StartTime\": 1686777905.3239884, \"EndTime\": 1686777905.3239954, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8738639526367188, \"count\": 1, \"min\": 0.8738639526367188, \"max\": 0.8738639526367188}}}\n", "#metrics {\"StartTime\": 1686777905.3240254, \"EndTime\": 1686777905.324033, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8979080810546874, \"count\": 1, \"min\": 0.8979080810546874, \"max\": 0.8979080810546874}}}\n", "#metrics {\"StartTime\": 1686777905.3240612, \"EndTime\": 1686777905.3240688, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9058086547851563, \"count\": 1, \"min\": 0.9058086547851563, \"max\": 0.9058086547851563}}}\n", "#metrics {\"StartTime\": 1686777905.3241012, \"EndTime\": 1686777905.3241088, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8319354248046875, \"count\": 1, \"min\": 0.8319354248046875, \"max\": 0.8319354248046875}}}\n", "#metrics {\"StartTime\": 1686777905.3241403, \"EndTime\": 1686777905.324148, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7334386596679687, \"count\": 1, \"min\": 0.7334386596679687, \"max\": 0.7334386596679687}}}\n", "#metrics {\"StartTime\": 1686777905.3241773, \"EndTime\": 1686777905.324185, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7564253540039062, \"count\": 1, \"min\": 0.7564253540039062, \"max\": 0.7564253540039062}}}\n", "#metrics {\"StartTime\": 1686777905.3242166, \"EndTime\": 1686777905.3242252, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.771276611328125, \"count\": 1, \"min\": 0.771276611328125, \"max\": 0.771276611328125}}}\n", "#metrics {\"StartTime\": 1686777905.3242552, \"EndTime\": 1686777905.3242633, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7873569946289063, \"count\": 1, \"min\": 0.7873569946289063, \"max\": 0.7873569946289063}}}\n", "#metrics {\"StartTime\": 1686777905.3242912, \"EndTime\": 1686777905.3242998, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.981862548828125, \"count\": 1, \"min\": 0.981862548828125, \"max\": 0.981862548828125}}}\n", "#metrics {\"StartTime\": 1686777905.3243303, \"EndTime\": 1686777905.3243377, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9998084106445313, \"count\": 1, \"min\": 0.9998084106445313, \"max\": 0.9998084106445313}}}\n", "#metrics {\"StartTime\": 1686777905.3243656, \"EndTime\": 1686777905.324373, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9901381225585938, \"count\": 1, \"min\": 0.9901381225585938, \"max\": 0.9901381225585938}}}\n", "#metrics {\"StartTime\": 1686777905.32441, \"EndTime\": 1686777905.3244188, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9793463745117188, \"count\": 1, \"min\": 0.9793463745117188, \"max\": 0.9793463745117188}}}\n", "#metrics {\"StartTime\": 1686777905.3244488, \"EndTime\": 1686777905.3244565, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0514930419921875, \"count\": 1, \"min\": 1.0514930419921875, \"max\": 1.0514930419921875}}}\n", "#metrics {\"StartTime\": 1686777905.3244846, \"EndTime\": 1686777905.324492, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.032868896484375, \"count\": 1, \"min\": 1.032868896484375, \"max\": 1.032868896484375}}}\n", "#metrics {\"StartTime\": 1686777905.3245203, \"EndTime\": 1686777905.324529, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0449483642578126, \"count\": 1, \"min\": 1.0449483642578126, \"max\": 1.0449483642578126}}}\n", "#metrics {\"StartTime\": 1686777905.3245592, \"EndTime\": 1686777905.3245668, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0017442016601563, \"count\": 1, \"min\": 1.0017442016601563, \"max\": 1.0017442016601563}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=12, train mse_objective =0.85637353515625\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=12, criteria=mse_objective, value=0.6568095092773437\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 12\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmpm9ixp9vq/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 86.66666666666667 % of epochs\n", "#metrics {\"StartTime\": 1686777905.310539, \"EndTime\": 1686777905.3305998, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 15994.0, \"count\": 1, \"min\": 15994, \"max\": 15994}, \"Total Batches Seen\": {\"sum\": 29.0, \"count\": 1, \"min\": 29, \"max\": 29}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 15.0, \"count\": 1, \"min\": 15, \"max\": 15}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=53024.145801364524 records/second\n", "[2023-06-14 21:25:05.343] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 30, \"duration\": 12, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.343219, \"EndTime\": 1686777905.3432817, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8456355590820313, \"count\": 1, \"min\": 0.8456355590820313, \"max\": 0.8456355590820313}}}\n", "#metrics {\"StartTime\": 1686777905.3433475, \"EndTime\": 1686777905.3433597, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8211912841796875, \"count\": 1, \"min\": 0.8211912841796875, \"max\": 0.8211912841796875}}}\n", "#metrics {\"StartTime\": 1686777905.3433964, \"EndTime\": 1686777905.3434038, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.852114501953125, \"count\": 1, \"min\": 0.852114501953125, \"max\": 0.852114501953125}}}\n", "#metrics {\"StartTime\": 1686777905.343431, \"EndTime\": 1686777905.3434377, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8257815551757812, \"count\": 1, \"min\": 0.8257815551757812, \"max\": 0.8257815551757812}}}\n", "#metrics {\"StartTime\": 1686777905.343466, \"EndTime\": 1686777905.3434741, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7067615966796875, \"count\": 1, \"min\": 0.7067615966796875, \"max\": 0.7067615966796875}}}\n", "#metrics {\"StartTime\": 1686777905.343503, \"EndTime\": 1686777905.3435118, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6984523315429687, \"count\": 1, \"min\": 0.6984523315429687, \"max\": 0.6984523315429687}}}\n", "#metrics {\"StartTime\": 1686777905.3435428, \"EndTime\": 1686777905.3435507, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7371155395507812, \"count\": 1, \"min\": 0.7371155395507812, \"max\": 0.7371155395507812}}}\n", "#metrics {\"StartTime\": 1686777905.3435838, \"EndTime\": 1686777905.3435917, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7008563232421875, \"count\": 1, \"min\": 0.7008563232421875, \"max\": 0.7008563232421875}}}\n", "#metrics {\"StartTime\": 1686777905.343625, \"EndTime\": 1686777905.3436337, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7545886840820313, \"count\": 1, \"min\": 0.7545886840820313, \"max\": 0.7545886840820313}}}\n", "#metrics {\"StartTime\": 1686777905.3436644, \"EndTime\": 1686777905.3436728, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8128051147460937, \"count\": 1, \"min\": 0.8128051147460937, \"max\": 0.8128051147460937}}}\n", "#metrics {\"StartTime\": 1686777905.3437002, \"EndTime\": 1686777905.3437083, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.900618896484375, \"count\": 1, \"min\": 0.900618896484375, \"max\": 0.900618896484375}}}\n", "#metrics {\"StartTime\": 1686777905.3437388, \"EndTime\": 1686777905.343748, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8340492553710938, \"count\": 1, \"min\": 0.8340492553710938, \"max\": 0.8340492553710938}}}\n", "#metrics {\"StartTime\": 1686777905.3437767, \"EndTime\": 1686777905.3437853, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7248660278320312, \"count\": 1, \"min\": 0.7248660278320312, \"max\": 0.7248660278320312}}}\n", "#metrics {\"StartTime\": 1686777905.3438168, \"EndTime\": 1686777905.3438249, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7405442504882812, \"count\": 1, \"min\": 0.7405442504882812, \"max\": 0.7405442504882812}}}\n", "#metrics {\"StartTime\": 1686777905.3438559, \"EndTime\": 1686777905.343864, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7050415649414062, \"count\": 1, \"min\": 0.7050415649414062, \"max\": 0.7050415649414062}}}\n", "#metrics {\"StartTime\": 1686777905.343895, \"EndTime\": 1686777905.343903, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7087579345703126, \"count\": 1, \"min\": 0.7087579345703126, \"max\": 0.7087579345703126}}}\n", "#metrics {\"StartTime\": 1686777905.3439333, \"EndTime\": 1686777905.343941, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8623970947265625, \"count\": 1, \"min\": 0.8623970947265625, \"max\": 0.8623970947265625}}}\n", "#metrics {\"StartTime\": 1686777905.343968, \"EndTime\": 1686777905.343976, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.886348876953125, \"count\": 1, \"min\": 0.886348876953125, \"max\": 0.886348876953125}}}\n", "#metrics {\"StartTime\": 1686777905.3440073, \"EndTime\": 1686777905.3440154, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8930130615234375, \"count\": 1, \"min\": 0.8930130615234375, \"max\": 0.8930130615234375}}}\n", "#metrics {\"StartTime\": 1686777905.3440454, \"EndTime\": 1686777905.3440535, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8210028686523437, \"count\": 1, \"min\": 0.8210028686523437, \"max\": 0.8210028686523437}}}\n", "#metrics {\"StartTime\": 1686777905.344076, \"EndTime\": 1686777905.3440833, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7306174926757812, \"count\": 1, \"min\": 0.7306174926757812, \"max\": 0.7306174926757812}}}\n", "#metrics {\"StartTime\": 1686777905.3441138, \"EndTime\": 1686777905.3441222, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7227771606445312, \"count\": 1, \"min\": 0.7227771606445312, \"max\": 0.7227771606445312}}}\n", "#metrics {\"StartTime\": 1686777905.3441553, \"EndTime\": 1686777905.344164, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7784200439453125, \"count\": 1, \"min\": 0.7784200439453125, \"max\": 0.7784200439453125}}}\n", "#metrics {\"StartTime\": 1686777905.3441904, \"EndTime\": 1686777905.3441978, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7812161865234375, \"count\": 1, \"min\": 0.7812161865234375, \"max\": 0.7812161865234375}}}\n", "#metrics {\"StartTime\": 1686777905.3442228, \"EndTime\": 1686777905.3442304, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9839522094726563, \"count\": 1, \"min\": 0.9839522094726563, \"max\": 0.9839522094726563}}}\n", "#metrics {\"StartTime\": 1686777905.3442583, \"EndTime\": 1686777905.3442657, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0017119750976562, \"count\": 1, \"min\": 1.0017119750976562, \"max\": 1.0017119750976562}}}\n", "#metrics {\"StartTime\": 1686777905.344295, \"EndTime\": 1686777905.344303, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9944478149414062, \"count\": 1, \"min\": 0.9944478149414062, \"max\": 0.9944478149414062}}}\n", "#metrics {\"StartTime\": 1686777905.34433, \"EndTime\": 1686777905.3443387, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9786015014648437, \"count\": 1, \"min\": 0.9786015014648437, \"max\": 0.9786015014648437}}}\n", "#metrics {\"StartTime\": 1686777905.3443668, \"EndTime\": 1686777905.3443754, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0315396728515625, \"count\": 1, \"min\": 1.0315396728515625, \"max\": 1.0315396728515625}}}\n", "#metrics {\"StartTime\": 1686777905.3444057, \"EndTime\": 1686777905.344414, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0745924072265625, \"count\": 1, \"min\": 1.0745924072265625, \"max\": 1.0745924072265625}}}\n", "#metrics {\"StartTime\": 1686777905.3444443, \"EndTime\": 1686777905.3444524, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0667286376953125, \"count\": 1, \"min\": 1.0667286376953125, \"max\": 1.0667286376953125}}}\n", "#metrics {\"StartTime\": 1686777905.3444793, \"EndTime\": 1686777905.3444877, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9674108276367187, \"count\": 1, \"min\": 0.9674108276367187, \"max\": 0.9674108276367187}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=13, train mse_objective =0.8456355590820313\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=13, criteria=mse_objective, value=0.6984523315429687\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 13\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmp_u5xelba/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 93.33333333333333 % of epochs\n", "#metrics {\"StartTime\": 1686777905.3308518, \"EndTime\": 1686777905.3504386, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 17065.0, \"count\": 1, \"min\": 17065, \"max\": 17065}, \"Total Batches Seen\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 16.0, \"count\": 1, \"min\": 16, \"max\": 16}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=54363.36948602825 records/second\n", "[2023-06-14 21:25:05.368] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 32, \"duration\": 17, \"num_examples\": 2, \"num_bytes\": 68544}\n", "#metrics {\"StartTime\": 1686777905.3683412, \"EndTime\": 1686777905.3684127, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 0}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8352506713867187, \"count\": 1, \"min\": 0.8352506713867187, \"max\": 0.8352506713867187}}}\n", "#metrics {\"StartTime\": 1686777905.3684855, \"EndTime\": 1686777905.3684947, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 1}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8106806640625, \"count\": 1, \"min\": 0.8106806640625, \"max\": 0.8106806640625}}}\n", "#metrics {\"StartTime\": 1686777905.3685858, \"EndTime\": 1686777905.3685932, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 2}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.84137158203125, \"count\": 1, \"min\": 0.84137158203125, \"max\": 0.84137158203125}}}\n", "#metrics {\"StartTime\": 1686777905.3686206, \"EndTime\": 1686777905.3686264, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 3}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8152022094726562, \"count\": 1, \"min\": 0.8152022094726562, \"max\": 0.8152022094726562}}}\n", "#metrics {\"StartTime\": 1686777905.368652, \"EndTime\": 1686777905.3686576, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 4}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6773630981445312, \"count\": 1, \"min\": 0.6773630981445312, \"max\": 0.6773630981445312}}}\n", "#metrics {\"StartTime\": 1686777905.3686786, \"EndTime\": 1686777905.3686967, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 5}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6698917236328125, \"count\": 1, \"min\": 0.6698917236328125, \"max\": 0.6698917236328125}}}\n", "#metrics {\"StartTime\": 1686777905.3687284, \"EndTime\": 1686777905.3687341, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 6}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7411163330078125, \"count\": 1, \"min\": 0.7411163330078125, \"max\": 0.7411163330078125}}}\n", "#metrics {\"StartTime\": 1686777905.3687577, \"EndTime\": 1686777905.3687634, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 7}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.652086181640625, \"count\": 1, \"min\": 0.652086181640625, \"max\": 0.652086181640625}}}\n", "#metrics {\"StartTime\": 1686777905.3687842, \"EndTime\": 1686777905.3687968, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 8}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7472750244140625, \"count\": 1, \"min\": 0.7472750244140625, \"max\": 0.7472750244140625}}}\n", "#metrics {\"StartTime\": 1686777905.3688312, \"EndTime\": 1686777905.3688369, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 9}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8023219604492188, \"count\": 1, \"min\": 0.8023219604492188, \"max\": 0.8023219604492188}}}\n", "#metrics {\"StartTime\": 1686777905.3689287, \"EndTime\": 1686777905.3689368, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 10}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8884547119140624, \"count\": 1, \"min\": 0.8884547119140624, \"max\": 0.8884547119140624}}}\n", "#metrics {\"StartTime\": 1686777905.3690038, \"EndTime\": 1686777905.369011, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 11}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8227200317382812, \"count\": 1, \"min\": 0.8227200317382812, \"max\": 0.8227200317382812}}}\n", "#metrics {\"StartTime\": 1686777905.3690536, \"EndTime\": 1686777905.3690596, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 12}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7723599243164062, \"count\": 1, \"min\": 0.7723599243164062, \"max\": 0.7723599243164062}}}\n", "#metrics {\"StartTime\": 1686777905.3690832, \"EndTime\": 1686777905.3690886, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 13}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7706716918945312, \"count\": 1, \"min\": 0.7706716918945312, \"max\": 0.7706716918945312}}}\n", "#metrics {\"StartTime\": 1686777905.3691406, \"EndTime\": 1686777905.3691468, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 14}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.679343505859375, \"count\": 1, \"min\": 0.679343505859375, \"max\": 0.679343505859375}}}\n", "#metrics {\"StartTime\": 1686777905.3691683, \"EndTime\": 1686777905.369174, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 15}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7605070190429688, \"count\": 1, \"min\": 0.7605070190429688, \"max\": 0.7605070190429688}}}\n", "#metrics {\"StartTime\": 1686777905.3692124, \"EndTime\": 1686777905.369218, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 16}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8513489379882813, \"count\": 1, \"min\": 0.8513489379882813, \"max\": 0.8513489379882813}}}\n", "#metrics {\"StartTime\": 1686777905.3692422, \"EndTime\": 1686777905.3692477, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 17}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8751802368164062, \"count\": 1, \"min\": 0.8751802368164062, \"max\": 0.8751802368164062}}}\n", "#metrics {\"StartTime\": 1686777905.3692682, \"EndTime\": 1686777905.3692737, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 18}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8806326904296875, \"count\": 1, \"min\": 0.8806326904296875, \"max\": 0.8806326904296875}}}\n", "#metrics {\"StartTime\": 1686777905.3692942, \"EndTime\": 1686777905.3692992, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 19}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.8104238891601563, \"count\": 1, \"min\": 0.8104238891601563, \"max\": 0.8104238891601563}}}\n", "#metrics {\"StartTime\": 1686777905.3693202, \"EndTime\": 1686777905.3693256, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 20}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7004464721679687, \"count\": 1, \"min\": 0.7004464721679687, \"max\": 0.7004464721679687}}}\n", "#metrics {\"StartTime\": 1686777905.3693466, \"EndTime\": 1686777905.3693519, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 21}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.6703817749023437, \"count\": 1, \"min\": 0.6703817749023437, \"max\": 0.6703817749023437}}}\n", "#metrics {\"StartTime\": 1686777905.3693724, \"EndTime\": 1686777905.3693779, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 22}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.72801220703125, \"count\": 1, \"min\": 0.72801220703125, \"max\": 0.72801220703125}}}\n", "#metrics {\"StartTime\": 1686777905.3694003, \"EndTime\": 1686777905.3694055, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 23}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.7311100463867187, \"count\": 1, \"min\": 0.7311100463867187, \"max\": 0.7311100463867187}}}\n", "#metrics {\"StartTime\": 1686777905.3694293, \"EndTime\": 1686777905.3694344, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 24}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9857627563476562, \"count\": 1, \"min\": 0.9857627563476562, \"max\": 0.9857627563476562}}}\n", "#metrics {\"StartTime\": 1686777905.369455, \"EndTime\": 1686777905.36946, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 25}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.0030929565429687, \"count\": 1, \"min\": 1.0030929565429687, \"max\": 1.0030929565429687}}}\n", "#metrics {\"StartTime\": 1686777905.3694804, \"EndTime\": 1686777905.3694856, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 26}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9982810668945312, \"count\": 1, \"min\": 0.9982810668945312, \"max\": 0.9982810668945312}}}\n", "#metrics {\"StartTime\": 1686777905.36951, \"EndTime\": 1686777905.369515, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 27}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9782197265625, \"count\": 1, \"min\": 0.9782197265625, \"max\": 0.9782197265625}}}\n", "#metrics {\"StartTime\": 1686777905.3695354, \"EndTime\": 1686777905.3695407, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 28}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.97561572265625, \"count\": 1, \"min\": 0.97561572265625, \"max\": 0.97561572265625}}}\n", "#metrics {\"StartTime\": 1686777905.3695645, \"EndTime\": 1686777905.3695698, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 29}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.048558837890625, \"count\": 1, \"min\": 1.048558837890625, \"max\": 1.048558837890625}}}\n", "#metrics {\"StartTime\": 1686777905.3695939, \"EndTime\": 1686777905.3695989, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 30}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 1.025395263671875, \"count\": 1, \"min\": 1.025395263671875, \"max\": 1.025395263671875}}}\n", "#metrics {\"StartTime\": 1686777905.36962, \"EndTime\": 1686777905.3696249, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"model\": 31}, \"Metrics\": {\"train_mse_objective\": {\"sum\": 0.9265108032226562, \"count\": 1, \"min\": 0.9265108032226562, \"max\": 0.9265108032226562}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, epoch=14, train mse_objective =0.8352506713867187\n", "[06/14/2023 21:25:05 INFO 140335316649792] #early_stopping_criteria_metric: host=algo-1, epoch=14, criteria=mse_objective, value=0.652086181640625\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saving model for epoch: 14\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmpixw9l99g/mx-mod-0000.params\"\n", "[06/14/2023 21:25:05 INFO 140335316649792] #progress_metric: host=algo-1, completed 100.0 % of epochs\n", "#metrics {\"StartTime\": 1686777905.3506796, \"EndTime\": 1686777905.3759754, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 18136.0, \"count\": 1, \"min\": 18136, \"max\": 18136}, \"Total Batches Seen\": {\"sum\": 33.0, \"count\": 1, \"min\": 33, \"max\": 33}, \"Max Records Seen Between Resets\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Max Batches Seen Between Resets\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Reset Count\": {\"sum\": 17.0, \"count\": 1, \"min\": 17, \"max\": 17}, \"Number of Records Since Last Reset\": {\"sum\": 1071.0, \"count\": 1, \"min\": 1071, \"max\": 1071}, \"Number of Batches Since Last Reset\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #throughput_metric: host=algo-1, train throughput=42161.524088413345 records/second\n", "[06/14/2023 21:25:05 WARNING 140335316649792] wait_for_all_workers will not sync workers since the kv store is not running distributed\n", "[06/14/2023 21:25:05 WARNING 140335316649792] wait_for_all_workers will not sync workers since the kv store is not running distributed\n", "[2023-06-14 21:25:05.377] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 34, \"duration\": 1, \"num_examples\": 1, \"num_bytes\": 64000}\n", "[2023-06-14 21:25:05.383] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 36, \"duration\": 3, \"num_examples\": 2, \"num_bytes\": 68544}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #train_score (algo-1) : ('mse_objective', 1.4728637165229082e-05)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #train_score (algo-1) : ('mse', 1.4728637165229082e-05)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #train_score (algo-1) : ('absolute_loss', 0.002878888286684964)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #train_score (algo-1) : ('rmse', 0.003837790661986279)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #train_score (algo-1) : ('r2', 0.2434803334779041)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #train_score (algo-1) : ('mae', 0.0028788883294031914)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, train mse_objective =1.4728637165229082e-05\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, train mse =1.4728637165229082e-05\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, train absolute_loss =0.002878888286684964\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, train rmse =0.003837790661986279\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, train r2 =0.2434803334779041\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, train mae =0.0028788883294031914\n", "[06/14/2023 21:25:05 INFO 140335316649792] Best model found for hyperparameters: {\"optimizer\": \"adam\", \"learning_rate\": 0.1, \"wd\": 0.01, \"l1\": 0.0, \"lr_scheduler_step\": 10, \"lr_scheduler_factor\": 0.99, \"lr_scheduler_minimum_lr\": 0.0001}\n", "[06/14/2023 21:25:05 INFO 140335316649792] Saved checkpoint to \"/tmp/tmpifnfubb3/mx-mod-0000.params\"\n", "[2023-06-14 21:25:05.386] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/test\", \"epoch\": 0, \"duration\": 507, \"num_examples\": 1, \"num_bytes\": 10432}\n", "[2023-06-14 21:25:05.388] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/test\", \"epoch\": 1, \"duration\": 1, \"num_examples\": 1, \"num_bytes\": 10432}\n", "#metrics {\"StartTime\": 1686777905.3867576, \"EndTime\": 1686777905.389193, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"Meta\": \"test_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 163.0, \"count\": 1, \"min\": 163, \"max\": 163}, \"Total Batches Seen\": {\"sum\": 1.0, \"count\": 1, \"min\": 1, \"max\": 1}, \"Max Records Seen Between Resets\": {\"sum\": 163.0, \"count\": 1, \"min\": 163, \"max\": 163}, \"Max Batches Seen Between Resets\": {\"sum\": 1.0, \"count\": 1, \"min\": 1, \"max\": 1}, \"Reset Count\": {\"sum\": 1.0, \"count\": 1, \"min\": 1, \"max\": 1}, \"Number of Records Since Last Reset\": {\"sum\": 163.0, \"count\": 1, \"min\": 163, \"max\": 163}, \"Number of Batches Since Last Reset\": {\"sum\": 1.0, \"count\": 1, \"min\": 1, \"max\": 1}}}\n", "[06/14/2023 21:25:05 INFO 140335316649792] #test_score (algo-1) : ('mse_objective', 1.9909436900191513e-05)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #test_score (algo-1) : ('mse', 1.9909436900191513e-05)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #test_score (algo-1) : ('absolute_loss', 0.003674984343944152)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #test_score (algo-1) : ('rmse', 0.004461999204414039)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #test_score (algo-1) : ('r2', -0.6487253126590025)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #test_score (algo-1) : ('mae', 0.0036749843103765435)\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, test mse_objective =1.9909436900191513e-05\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, test mse =1.9909436900191513e-05\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, test absolute_loss =0.003674984343944152\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, test rmse =0.004461999204414039\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, test r2 =-0.6487253126590025\n", "[06/14/2023 21:25:05 INFO 140335316649792] #quality_metric: host=algo-1, test mae =0.0036749843103765435\n", "#metrics {\"StartTime\": 1686777904.8775961, \"EndTime\": 1686777905.392653, \"Dimensions\": {\"Algorithm\": \"Linear Learner\", \"Host\": \"algo-1\", \"Operation\": \"training\"}, \"Metrics\": {\"initialize.time\": {\"sum\": 110.17894744873047, \"count\": 1, \"min\": 110.17894744873047, \"max\": 110.17894744873047}, \"epochs\": {\"sum\": 15.0, \"count\": 1, \"min\": 15, \"max\": 15}, \"check_early_stopping.time\": {\"sum\": 6.413936614990234, \"count\": 15, \"min\": 0.17333030700683594, \"max\": 1.0426044464111328}, \"update.time\": {\"sum\": 346.9099998474121, \"count\": 15, \"min\": 17.523527145385742, \"max\": 51.12123489379883}, \"finalize.time\": {\"sum\": 8.285999298095703, \"count\": 1, \"min\": 8.285999298095703, \"max\": 8.285999298095703}, \"setuptime\": {\"sum\": 1.9354820251464844, \"count\": 1, \"min\": 1.9354820251464844, \"max\": 1.9354820251464844}, \"totaltime\": {\"sum\": 608.9651584625244, \"count\": 1, \"min\": 608.9651584625244, \"max\": 608.9651584625244}}}\n", "\n", "2023-06-14 21:25:20 Completed - Training job completed\n", "Training seconds: 107\n", "Billable seconds: 53\n", "Managed Spot Training savings: 50.5%\n" ] } ], "source": [ "import boto3\n", "from sagemaker import get_execution_role, LinearLearner\n", "\n", "# Setting the bucket name\n", "bucket = 'fcc-spark-example'\n", "data_location = f's3://{bucket}/aq-linearlearner/data/train'\n", "output_location = f's3://{bucket}/aq-linearlearner/output'\n", "\n", "\n", "# This is used to run the LinearLearner training job\n", "role = get_execution_role()\n", "\n", "llearner = LinearLearner(role=role,\n", " predictor_type='regressor',\n", " normalize_data=True,\n", " normalize_label=True,\n", " instance_count=1,\n", " use_spot_instances = True,\n", " max_run= 1800,\n", " max_wait = 3600,\n", " instance_type='ml.c5.xlarge',\n", " output_path=output_location,\n", " data_location=data_location)\n", "\n", "# Starting the training \n", "llearner.fit([\n", " llearner.record_set(x_train.values.astype('float32'), y_train.values[:, 0].astype('float32'), channel='train'),\n", " llearner.record_set(x_test.values.astype('float32'), y_test.values[:, 0].astype('float32'), channel='test')\n", "])" ] }, { "cell_type": "markdown", "id": "8a7a9012-717b-4e02-abe9-1dd18f81a95c", "metadata": {}, "source": [ "## Deploying the model (`endpoint`)" ] }, { "cell_type": "code", "execution_count": 16, "id": "68f22bf9-885e-451f-8585-81bef9646223", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--------------------!\n" ] } ], "source": [ "llearner_predictor = llearner.deploy(initial_instance_count=1,\n", " instance_type='ml.t2.medium')" ] }, { "cell_type": "code", "execution_count": 17, "id": "9088f3a7-a367-4c48-8777-9fc69d3177e2", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RMSE: 0.0045\n", "Variance score: -0.6487\n", "Explained variance score: 0.4130\n", "Forecast bias: 0.0036\n", "sMAPE: 1.4582\n" ] } ], "source": [ "result = llearner_predictor.predict(x_test.values.astype('float32'))\n", "y_sm_pred = [r.label[\"score\"].float32_tensor.values[0] for r in result]\n", "y_sm_test = y_test.values[:, 0].astype('float32')\n", "print_metrics(y_sm_test, y_sm_pred)" ] }, { "cell_type": "code", "execution_count": 18, "id": "0e69e2c3-f5f2-45b5-8726-ed482034e469", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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\n" }, "metadata": { "image/png": { "height": 480, "width": 640 } }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "y_sm_pred_df = pd.DataFrame(y_sm_pred, columns=y_train.columns).set_index(y_test.index).sort_index()\n", "y_sm_test_df = pd.DataFrame(y_sm_test, columns=y_train.columns).set_index(y_test.index).sort_index()\n", "\n", "plt.plot(y_sm_test_df, label='actual')\n", "plt.plot(y_sm_pred_df, label='forecast')\n", "plt.legend()\n", "plt.show()\n", "\n", "%matplot plt" ] }, { "cell_type": "code", "execution_count": 19, "id": "379bbe1e-7474-4fa1-b1dd-7ce7eef1aaa8", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "linear-learner-2023-06-14-21-25-59-536\n" ] } ], "source": [ "endpoint_name = llearner_predictor.endpoint_name\n", "print(endpoint_name)" ] }, { "cell_type": "markdown", "id": "8de97f75-3b4c-4b37-895c-5aefffc24bb8", "metadata": {}, "source": [ "## (Optional) Reuse an existing estimator" ] }, { "cell_type": "code", "execution_count": 20, "id": "eb3e7ef5-adf8-4dbf-a6e4-cbdffa7adfb9", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RMSE: 0.0045\n", "Variance score: -0.6487\n", "Explained variance score: 0.4130\n", "Forecast bias: 0.0036\n", "sMAPE: 1.4582\n" ] } ], "source": [ "from sagemaker import LinearLearnerPredictor\n", "\n", "llearner_predictor = LinearLearnerPredictor(endpoint_name)\n", "result = llearner_predictor.predict(x_test.values.astype('float32'))\n", "y_sm_pred = [r.label[\"score\"].float32_tensor.values[0] for r in result]\n", "y_sm_test = y_test.values[:, 0].astype('float32')\n", "\n", "print_metrics(y_sm_test, y_sm_pred)" ] }, { "cell_type": "markdown", "id": "404748ee-5530-4e5a-9b12-0452976ec6a1", "metadata": { "tags": [] }, "source": [ "# Clean up" ] }, { "cell_type": "code", "execution_count": null, "id": "d77c110c-e93c-40ed-b528-df45b142139f", "metadata": {}, "outputs": [], "source": [ "## Delete the endpoint \n", "\n", "## llearner_predictor.delete_endpoint()" ] }, { "cell_type": "code", "execution_count": null, "id": "788d349d-c26a-4e08-9e75-1ac944d5079b", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "availableInstances": [ { "_defaultOrder": 0, "_isFastLaunch": true, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 4, "name": "ml.t3.medium", "vcpuNum": 2 }, { "_defaultOrder": 1, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 8, "name": "ml.t3.large", "vcpuNum": 2 }, { "_defaultOrder": 2, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 16, "name": "ml.t3.xlarge", "vcpuNum": 4 }, { "_defaultOrder": 3, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 32, "name": "ml.t3.2xlarge", "vcpuNum": 8 }, { "_defaultOrder": 4, "_isFastLaunch": true, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 8, "name": "ml.m5.large", "vcpuNum": 2 }, { "_defaultOrder": 5, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 16, "name": "ml.m5.xlarge", "vcpuNum": 4 }, { "_defaultOrder": 6, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 32, "name": "ml.m5.2xlarge", "vcpuNum": 8 }, { "_defaultOrder": 7, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 64, "name": "ml.m5.4xlarge", "vcpuNum": 16 }, { "_defaultOrder": 8, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 128, "name": "ml.m5.8xlarge", "vcpuNum": 32 }, { "_defaultOrder": 9, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 192, "name": "ml.m5.12xlarge", "vcpuNum": 48 }, { "_defaultOrder": 10, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 256, "name": "ml.m5.16xlarge", "vcpuNum": 64 }, { "_defaultOrder": 11, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 384, "name": "ml.m5.24xlarge", "vcpuNum": 96 }, { "_defaultOrder": 12, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 8, "name": "ml.m5d.large", "vcpuNum": 2 }, { "_defaultOrder": 13, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 16, "name": "ml.m5d.xlarge", "vcpuNum": 4 }, { "_defaultOrder": 14, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 32, "name": "ml.m5d.2xlarge", "vcpuNum": 8 }, { "_defaultOrder": 15, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 64, "name": "ml.m5d.4xlarge", "vcpuNum": 16 }, { "_defaultOrder": 16, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 128, "name": "ml.m5d.8xlarge", "vcpuNum": 32 }, { "_defaultOrder": 17, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 192, "name": "ml.m5d.12xlarge", "vcpuNum": 48 }, { "_defaultOrder": 18, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 256, "name": "ml.m5d.16xlarge", "vcpuNum": 64 }, { "_defaultOrder": 19, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 384, "name": "ml.m5d.24xlarge", "vcpuNum": 96 }, { "_defaultOrder": 20, "_isFastLaunch": false, "category": "General purpose", "gpuNum": 0, "hideHardwareSpecs": true, "memoryGiB": 0, "name": "ml.geospatial.interactive", "supportedImageNames": [ "sagemaker-geospatial-v1-0" ], "vcpuNum": 0 }, { "_defaultOrder": 21, "_isFastLaunch": true, "category": "Compute optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 4, "name": "ml.c5.large", "vcpuNum": 2 }, { "_defaultOrder": 22, "_isFastLaunch": false, "category": "Compute optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 8, "name": "ml.c5.xlarge", "vcpuNum": 4 }, { "_defaultOrder": 23, "_isFastLaunch": false, "category": "Compute optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 16, "name": "ml.c5.2xlarge", "vcpuNum": 8 }, { "_defaultOrder": 24, "_isFastLaunch": false, "category": "Compute optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 32, "name": "ml.c5.4xlarge", "vcpuNum": 16 }, { "_defaultOrder": 25, "_isFastLaunch": false, "category": "Compute optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 72, "name": "ml.c5.9xlarge", "vcpuNum": 36 }, { "_defaultOrder": 26, "_isFastLaunch": false, "category": "Compute optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 96, "name": "ml.c5.12xlarge", "vcpuNum": 48 }, { "_defaultOrder": 27, "_isFastLaunch": false, "category": "Compute optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 144, "name": "ml.c5.18xlarge", "vcpuNum": 72 }, { "_defaultOrder": 28, "_isFastLaunch": false, "category": "Compute optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 192, "name": "ml.c5.24xlarge", "vcpuNum": 96 }, { "_defaultOrder": 29, "_isFastLaunch": true, "category": "Accelerated computing", "gpuNum": 1, "hideHardwareSpecs": false, "memoryGiB": 16, "name": "ml.g4dn.xlarge", "vcpuNum": 4 }, { "_defaultOrder": 30, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 1, "hideHardwareSpecs": false, "memoryGiB": 32, "name": "ml.g4dn.2xlarge", "vcpuNum": 8 }, { "_defaultOrder": 31, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 1, "hideHardwareSpecs": false, "memoryGiB": 64, "name": "ml.g4dn.4xlarge", "vcpuNum": 16 }, { "_defaultOrder": 32, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 1, "hideHardwareSpecs": false, "memoryGiB": 128, "name": "ml.g4dn.8xlarge", "vcpuNum": 32 }, { "_defaultOrder": 33, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 4, "hideHardwareSpecs": false, "memoryGiB": 192, "name": "ml.g4dn.12xlarge", "vcpuNum": 48 }, { "_defaultOrder": 34, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 1, "hideHardwareSpecs": false, "memoryGiB": 256, "name": "ml.g4dn.16xlarge", "vcpuNum": 64 }, { "_defaultOrder": 35, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 1, "hideHardwareSpecs": false, "memoryGiB": 61, "name": "ml.p3.2xlarge", "vcpuNum": 8 }, { "_defaultOrder": 36, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 4, "hideHardwareSpecs": false, "memoryGiB": 244, "name": "ml.p3.8xlarge", "vcpuNum": 32 }, { "_defaultOrder": 37, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 8, "hideHardwareSpecs": false, "memoryGiB": 488, "name": "ml.p3.16xlarge", "vcpuNum": 64 }, { "_defaultOrder": 38, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 8, "hideHardwareSpecs": false, "memoryGiB": 768, "name": "ml.p3dn.24xlarge", "vcpuNum": 96 }, { "_defaultOrder": 39, "_isFastLaunch": false, "category": "Memory Optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 16, "name": "ml.r5.large", "vcpuNum": 2 }, { "_defaultOrder": 40, "_isFastLaunch": false, "category": "Memory Optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 32, "name": "ml.r5.xlarge", "vcpuNum": 4 }, { "_defaultOrder": 41, "_isFastLaunch": false, "category": "Memory Optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 64, "name": "ml.r5.2xlarge", "vcpuNum": 8 }, { "_defaultOrder": 42, "_isFastLaunch": false, "category": "Memory Optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 128, "name": "ml.r5.4xlarge", "vcpuNum": 16 }, { "_defaultOrder": 43, "_isFastLaunch": false, "category": "Memory Optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 256, "name": "ml.r5.8xlarge", "vcpuNum": 32 }, { "_defaultOrder": 44, "_isFastLaunch": false, "category": "Memory Optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 384, "name": "ml.r5.12xlarge", "vcpuNum": 48 }, { "_defaultOrder": 45, "_isFastLaunch": false, "category": "Memory Optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 512, "name": "ml.r5.16xlarge", "vcpuNum": 64 }, { "_defaultOrder": 46, "_isFastLaunch": false, "category": "Memory Optimized", "gpuNum": 0, "hideHardwareSpecs": false, "memoryGiB": 768, "name": "ml.r5.24xlarge", "vcpuNum": 96 }, { "_defaultOrder": 47, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 1, "hideHardwareSpecs": false, "memoryGiB": 16, "name": "ml.g5.xlarge", "vcpuNum": 4 }, { "_defaultOrder": 48, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 1, "hideHardwareSpecs": false, "memoryGiB": 32, "name": "ml.g5.2xlarge", "vcpuNum": 8 }, { "_defaultOrder": 49, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 1, "hideHardwareSpecs": false, "memoryGiB": 64, "name": "ml.g5.4xlarge", "vcpuNum": 16 }, { "_defaultOrder": 50, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 1, "hideHardwareSpecs": false, "memoryGiB": 128, "name": "ml.g5.8xlarge", "vcpuNum": 32 }, { "_defaultOrder": 51, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 1, "hideHardwareSpecs": false, "memoryGiB": 256, "name": "ml.g5.16xlarge", "vcpuNum": 64 }, { "_defaultOrder": 52, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 4, "hideHardwareSpecs": false, "memoryGiB": 192, "name": "ml.g5.12xlarge", "vcpuNum": 48 }, { "_defaultOrder": 53, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 4, "hideHardwareSpecs": false, "memoryGiB": 384, "name": "ml.g5.24xlarge", "vcpuNum": 96 }, { "_defaultOrder": 54, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 8, "hideHardwareSpecs": false, "memoryGiB": 768, "name": "ml.g5.48xlarge", "vcpuNum": 192 }, { "_defaultOrder": 55, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 8, "hideHardwareSpecs": false, "memoryGiB": 1152, "name": "ml.p4d.24xlarge", "vcpuNum": 96 }, { "_defaultOrder": 56, "_isFastLaunch": false, "category": "Accelerated computing", "gpuNum": 8, "hideHardwareSpecs": false, "memoryGiB": 1152, "name": "ml.p4de.24xlarge", "vcpuNum": 96 } ], "instance_type": "ml.m5.4xlarge", "kernelspec": { "display_name": "Glue Python [PySpark and Ray] (SparkAnalytics 2.0)", "language": "python", "name": "conda-env-sm_glue_is-glue_pyspark__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-2:429704687514:image/sagemaker-sparkanalytics-310-v1" }, "language_info": { "codemirror_mode": { "name": "python", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "Python_Glue_Session", "pygments_lexer": "python3" } }, "nbformat": 4, "nbformat_minor": 5 }