{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "CoronaBasic.ipynb", "provenance": [], "collapsed_sections": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "htDHburyBuEe", "colab_type": "text" }, "source": [ "# Preliminary Analysis of CoronaVirus Time Series Data\n", "In this notebook we will conduct some preliminary analysis and forecasting on the Coronavirus time seires data. For this analysis we will look at forecasting using the data scraper.\n", "\n", "**Warning this is a basic analysis/machine learning model. The goal of this notebook is to gage the utility of data augmentation/transfer learning for virus forecasting. NOT provide actionable insights. It would additional rounds of training/validation + verification by epidemiologists and public health experts before I would be confident relying on using it for any actionable insights**" ] }, { "cell_type": "code", "metadata": { "id": "CA1NxnWmHOAQ", "colab_type": "code", "outputId": "660af867-2d02-4a00-aa96-4e8461c4f045", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 } }, "source": [ "#!git clone https://github.com/CoronaWhy/task-geo.git\n", "#!os.chdir('task-geo')\n", "import pandas as pd\n", "!wget -O coronavirus_timeseries.csv https://coronadatascraper.com/timeseries.csv\n", "!pip install wandb\n", "!wandb login\n", "import wandb\n", "from tensorflow import keras\n", "from wandb.keras import WandbCallback " ], "execution_count": 1, "outputs": [ { "output_type": "stream", "text": [ "--2020-05-04 01:42:51-- https://coronadatascraper.com/timeseries.csv\n", "Resolving coronadatascraper.com (coronadatascraper.com)... 185.199.110.153, 185.199.108.153, 185.199.111.153\n", "Connecting to coronadatascraper.com (coronadatascraper.com)|185.199.110.153|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 41874411 (40M) [text/csv]\n", "Saving to: ‘coronavirus_timeseries.csv’\n", "\n", "coronavirus_timeser 100%[===================>] 39.93M 73.4MB/s in 0.5s \n", "\n", "2020-05-04 01:42:52 (73.4 MB/s) - ‘coronavirus_timeseries.csv’ saved [41874411/41874411]\n", "\n", "Collecting wandb\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/2d/c9/ebbcefa6ef2ba14a7c62a4ee4415a5fecef8fac5e4d1b4e22af26fd9fe22/wandb-0.8.35-py2.py3-none-any.whl (1.4MB)\n", "\u001b[K |████████████████████████████████| 1.4MB 4.9MB/s \n", "\u001b[?25hRequirement already satisfied: python-dateutil>=2.6.1 in /usr/local/lib/python3.6/dist-packages (from wandb) (2.8.1)\n", "Requirement already satisfied: requests>=2.0.0 in /usr/local/lib/python3.6/dist-packages (from wandb) (2.23.0)\n", "Collecting gql==0.2.0\n", " Downloading https://files.pythonhosted.org/packages/c4/6f/cf9a3056045518f06184e804bae89390eb706168349daa9dff8ac609962a/gql-0.2.0.tar.gz\n", "Collecting shortuuid>=0.5.0\n", " Downloading https://files.pythonhosted.org/packages/25/a6/2ecc1daa6a304e7f1b216f0896b26156b78e7c38e1211e9b798b4716c53d/shortuuid-1.0.1-py3-none-any.whl\n", "Collecting configparser>=3.8.1\n", " Downloading https://files.pythonhosted.org/packages/4b/6b/01baa293090240cf0562cc5eccb69c6f5006282127f2b846fad011305c79/configparser-5.0.0-py3-none-any.whl\n", "Collecting watchdog>=0.8.3\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/73/c3/ed6d992006837e011baca89476a4bbffb0a91602432f73bd4473816c76e2/watchdog-0.10.2.tar.gz (95kB)\n", "\u001b[K |████████████████████████████████| 102kB 10.5MB/s \n", "\u001b[?25hCollecting docker-pycreds>=0.4.0\n", " Downloading https://files.pythonhosted.org/packages/f5/e8/f6bd1eee09314e7e6dee49cbe2c5e22314ccdb38db16c9fc72d2fa80d054/docker_pycreds-0.4.0-py2.py3-none-any.whl\n", "Collecting GitPython>=1.0.0\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/19/1a/0df85d2bddbca33665d2148173d3281b290ac054b5f50163ea735740ac7b/GitPython-3.1.1-py3-none-any.whl (450kB)\n", "\u001b[K |████████████████████████████████| 460kB 27.6MB/s \n", "\u001b[?25hRequirement already satisfied: Click>=7.0 in /usr/local/lib/python3.6/dist-packages (from wandb) (7.1.2)\n", "Requirement already satisfied: nvidia-ml-py3>=7.352.0 in /usr/local/lib/python3.6/dist-packages (from wandb) (7.352.0)\n", "Requirement already satisfied: PyYAML>=3.10 in /usr/local/lib/python3.6/dist-packages (from wandb) (3.13)\n", "Requirement already satisfied: psutil>=5.0.0 in /usr/local/lib/python3.6/dist-packages (from wandb) (5.4.8)\n", "Collecting sentry-sdk>=0.4.0\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/20/7e/19545324e83db4522b885808cd913c3b93ecc0c88b03e037b78c6a417fa8/sentry_sdk-0.14.3-py2.py3-none-any.whl (103kB)\n", "\u001b[K |████████████████████████████████| 112kB 40.3MB/s \n", "\u001b[?25hCollecting subprocess32>=3.5.3\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/32/c8/564be4d12629b912ea431f1a50eb8b3b9d00f1a0b1ceff17f266be190007/subprocess32-3.5.4.tar.gz (97kB)\n", "\u001b[K |████████████████████████████████| 102kB 12.1MB/s \n", "\u001b[?25hRequirement already satisfied: six>=1.10.0 in /usr/local/lib/python3.6/dist-packages (from wandb) (1.12.0)\n", "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests>=2.0.0->wandb) (2.9)\n", "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests>=2.0.0->wandb) (3.0.4)\n", "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests>=2.0.0->wandb) (1.24.3)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests>=2.0.0->wandb) (2020.4.5.1)\n", "Collecting graphql-core<2,>=0.5.0\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/b0/89/00ad5e07524d8c523b14d70c685e0299a8b0de6d0727e368c41b89b7ed0b/graphql-core-1.1.tar.gz (70kB)\n", "\u001b[K |████████████████████████████████| 71kB 8.9MB/s \n", "\u001b[?25hRequirement already satisfied: promise<3,>=2.0 in /usr/local/lib/python3.6/dist-packages (from gql==0.2.0->wandb) (2.3)\n", "Collecting pathtools>=0.1.1\n", " Downloading https://files.pythonhosted.org/packages/e7/7f/470d6fcdf23f9f3518f6b0b76be9df16dcc8630ad409947f8be2eb0ed13a/pathtools-0.1.2.tar.gz\n", "Collecting gitdb<5,>=4.0.1\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/74/52/ca35448b56c53a079d3ffe18b1978c6e424f6d4df02404877094c89f5bfb/gitdb-4.0.4-py3-none-any.whl (63kB)\n", "\u001b[K |████████████████████████████████| 71kB 9.1MB/s \n", "\u001b[?25hCollecting smmap<4,>=3.0.1\n", " Downloading https://files.pythonhosted.org/packages/27/b1/e379cfb7c07bbf8faee29c4a1a2469dbea525f047c2b454c4afdefa20a30/smmap-3.0.2-py2.py3-none-any.whl\n", "Building wheels for collected packages: gql, watchdog, subprocess32, graphql-core, pathtools\n", " Building wheel for gql (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for gql: filename=gql-0.2.0-cp36-none-any.whl size=7630 sha256=78b8c25cb64e51b2f7716c489dd89b343318e43cb94e34c7ca3d9e430286901c\n", " Stored in directory: /root/.cache/pip/wheels/ce/0e/7b/58a8a5268655b3ad74feef5aa97946f0addafb3cbb6bd2da23\n", " Building wheel for watchdog (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for watchdog: filename=watchdog-0.10.2-cp36-none-any.whl size=73605 sha256=ba4bb5dacf91b7b48c111a26d4c42ac96e7fbb31a5c0ab5d6f05d1d1491e16b8\n", " Stored in directory: /root/.cache/pip/wheels/bc/ed/6c/028dea90d31b359cd2a7c8b0da4db80e41d24a59614154072e\n", " Building wheel for subprocess32 (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for subprocess32: filename=subprocess32-3.5.4-cp36-none-any.whl size=6489 sha256=ac15431ebcba218c446fb317b8090e545e424d836ff7d1c3451dc2128759a9c7\n", " Stored in directory: /root/.cache/pip/wheels/68/39/1a/5e402bdfdf004af1786c8b853fd92f8c4a04f22aad179654d1\n", " Building wheel for graphql-core (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for graphql-core: filename=graphql_core-1.1-cp36-none-any.whl size=104650 sha256=1e43d09eb938e0a725303f391b1e7d282d76c67fc2871935e447146a5d40b717\n", " Stored in directory: /root/.cache/pip/wheels/45/99/d7/c424029bb0fe910c63b68dbf2aa20d3283d023042521bcd7d5\n", " Building wheel for pathtools (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for pathtools: filename=pathtools-0.1.2-cp36-none-any.whl size=8784 sha256=da849bba746bfd1680d0712bc005e3b05941ea2f02bf243560dbceafb7f3d4c3\n", " Stored in directory: /root/.cache/pip/wheels/0b/04/79/c3b0c3a0266a3cb4376da31e5bfe8bba0c489246968a68e843\n", "Successfully built gql watchdog subprocess32 graphql-core pathtools\n", "Installing collected packages: graphql-core, gql, shortuuid, configparser, pathtools, watchdog, docker-pycreds, smmap, gitdb, GitPython, sentry-sdk, subprocess32, wandb\n", "Successfully installed GitPython-3.1.1 configparser-5.0.0 docker-pycreds-0.4.0 gitdb-4.0.4 gql-0.2.0 graphql-core-1.1 pathtools-0.1.2 sentry-sdk-0.14.3 shortuuid-1.0.1 smmap-3.0.2 subprocess32-3.5.4 wandb-0.8.35 watchdog-0.10.2\n", "\u001b[34m\u001b[1mwandb\u001b[0m: You can find your API key in your browser here: https://app.wandb.ai/authorize\n", "\u001b[34m\u001b[1mwandb\u001b[0m: Paste an API key from your profile and hit enter: 936f243deff8f026e476a495792f87a7942c65bf\n", "\u001b[34m\u001b[1mwandb\u001b[0m: Appending key for api.wandb.ai to your netrc file: /root/.netrc\n", "\u001b[32mSuccessfully logged in to Weights & Biases!\u001b[0m\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "-YTGbDgAxUFD", "colab_type": "code", "colab": {} }, "source": [ "from google.colab import auth\n", "from datetime import datetime\n", "auth.authenticate_user()" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "WmOWKLuxHT7j", "colab_type": "code", "outputId": "a23cc2ac-be5a-4654-fe05-be09873832a0", "colab": { "base_uri": "https://localhost:8080/", "height": 120 } }, "source": [ "df = pd.read_csv(\"coronavirus_timeseries.csv\")\n", "!gsutil cp coronavirus_timeseries.csv gs://coronaviruspublicdata/coronavirus_timeseries.csv \n", "df['month'] = pd.to_datetime(df['date']).map(lambda x: x.month)\n", "df['weekday'] = pd.to_datetime(df['date']).map(lambda x: x.weekday())" ], "execution_count": 3, "outputs": [ { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/IPython/core/interactiveshell.py:2718: DtypeWarning: Columns (2) have mixed types.Specify dtype option on import or set low_memory=False.\n", " interactivity=interactivity, compiler=compiler, result=result)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Copying file://coronavirus_timeseries.csv [Content-Type=text/csv]...\n", "-\n", "Operation completed over 1 objects/39.9 MiB. \n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "asrssixL6XZo", "colab_type": "code", "outputId": "3bc9d7c2-6a5d-43b4-bf94-d28ee354751f", "colab": { "base_uri": "https://localhost:8080/", "height": 54 } }, "source": [ "unqiue_counties = df['county'].unique()\n", "print(len(unqiue_counties))" ], "execution_count": 4, "outputs": [ { "output_type": "stream", "text": [ "2035\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "QL0c52gZYRKs", "colab_type": "text" }, "source": [ "We will now construct a list of suitable data at the county level." ] }, { "cell_type": "code", "metadata": { "id": "PfOvVyOCl9JL", "colab_type": "code", "outputId": "eb65dd3b-6b88-4631-c10f-694995906181", "colab": { "base_uri": "https://localhost:8080/", "height": 54 } }, "source": [ "def loop_through_geo_codes(df, column='full_county'):\n", " df_county_list = []\n", " df['full_county'] = df['state'] + \"_\" + df['county'] \n", " for code in df['full_county'].unique():\n", " mask = df['full_county'] == code\n", " df_code = df[mask]\n", " ts_count = len(df_code)\n", " if ts_count > 60:\n", " df_county_list.append(df_code)\n", " return df_county_list \n", "county_info = loop_through_geo_codes(df)\n", "print(len(county_info))" ], "execution_count": 5, "outputs": [ { "output_type": "stream", "text": [ "56\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "NDj4y3mKXBrA", "colab_type": "code", "outputId": "f5974c0e-aac6-4bc9-996f-ccf9eb4eea7e", "colab": { "base_uri": "https://localhost:8080/", "height": 763 } }, "source": [ "county_info[0]" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
namelevelcitycountystatecountrypopulationlatlongurlaggregatetzcasesdeathsrecoveredactivetestedhospitalizeddischargedgrowthFactordatemonthweekdayfull_county
0Antwerp, Flanders, BelgiumcountyNaNAntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/NaNEurope/Brussels4.0NaNNaNNaNNaNNaNNaNNaN2020-01-2212Flanders_Antwerp
1Antwerp, Flanders, BelgiumcountyNaNAntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/NaNEurope/Brussels4.0NaNNaNNaNNaNNaNNaNNaN2020-01-2313Flanders_Antwerp
2Antwerp, Flanders, BelgiumcountyNaNAntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/NaNEurope/Brussels4.0NaNNaNNaNNaNNaNNaNNaN2020-01-2414Flanders_Antwerp
3Antwerp, Flanders, BelgiumcountyNaNAntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/NaNEurope/Brussels4.0NaNNaNNaNNaNNaNNaNNaN2020-01-2515Flanders_Antwerp
4Antwerp, Flanders, BelgiumcountyNaNAntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/NaNEurope/Brussels4.0NaNNaNNaNNaNNaNNaNNaN2020-01-2616Flanders_Antwerp
...........................................................................
95Antwerp, Flanders, BelgiumcountyNaNAntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/NaNEurope/Brussels5815.0NaNNaNNaNNaN2181.01869.0NaN2020-04-2646Flanders_Antwerp
96Antwerp, Flanders, BelgiumcountyNaNAntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/NaNEurope/Brussels5960.0NaNNaNNaNNaN2202.01884.0NaN2020-04-2740Flanders_Antwerp
97Antwerp, Flanders, BelgiumcountyNaNAntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/NaNEurope/Brussels6001.0NaNNaNNaNNaN2238.01938.0NaN2020-04-2841Flanders_Antwerp
98Antwerp, Flanders, BelgiumcountyNaNAntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/NaNEurope/Brussels6002.0NaNNaNNaNNaN2256.01985.0NaN2020-04-2942Flanders_Antwerp
99Antwerp, Flanders, BelgiumcountyNaNAntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/NaNEurope/Brussels6002.0NaNNaNNaNNaN2256.01985.0NaN2020-04-3043Flanders_Antwerp
\n", "

100 rows × 24 columns

\n", "
" ], "text/plain": [ " name level city ... month weekday full_county\n", "0 Antwerp, Flanders, Belgium county NaN ... 1 2 Flanders_Antwerp\n", "1 Antwerp, Flanders, Belgium county NaN ... 1 3 Flanders_Antwerp\n", "2 Antwerp, Flanders, Belgium county NaN ... 1 4 Flanders_Antwerp\n", "3 Antwerp, Flanders, Belgium county NaN ... 1 5 Flanders_Antwerp\n", "4 Antwerp, Flanders, Belgium county NaN ... 1 6 Flanders_Antwerp\n", ".. ... ... ... ... ... ... ...\n", "95 Antwerp, Flanders, Belgium county NaN ... 4 6 Flanders_Antwerp\n", "96 Antwerp, Flanders, Belgium county NaN ... 4 0 Flanders_Antwerp\n", "97 Antwerp, Flanders, Belgium county NaN ... 4 1 Flanders_Antwerp\n", "98 Antwerp, Flanders, Belgium county NaN ... 4 2 Flanders_Antwerp\n", "99 Antwerp, Flanders, Belgium county NaN ... 4 3 Flanders_Antwerp\n", "\n", "[100 rows x 24 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 10 } ] }, { "cell_type": "code", "metadata": { "id": "9wgwsXqHu7Ef", "colab_type": "code", "colab": {} }, "source": [ "county_info[8]['full_county'].values" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "Mc189EXg6pfE", "colab_type": "text" }, "source": [ "## Forecasting in Antwerp\n", "We will now piece together some simple tutorial code for forecasting new cases in Antwerp." ] }, { "cell_type": "code", "metadata": { "id": "WiJyk9YiHaOX", "colab_type": "code", "outputId": "928453c4-00b1-4304-d959-c2b66e521dd9", "colab": { "base_uri": "https://localhost:8080/", "height": 54 } }, "source": [ "antwerp_df = df[df['county']=='Antwerp'].fillna(0)\n", "antwerp_relevant = antwerp_df[['cases', 'deaths', 'recovered', 'population', 'lat', 'long']].values\n", "antwerp_df['new_cases'] = antwerp_df.cases.diff()\n", "print(len(antwerp_df))" ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "100\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "KlVWneL_CV3r", "colab_type": "text" }, "source": [ "## Data Augmentation\n", "We will now explore using the tsaug library for forecasting." ] }, { "cell_type": "code", "metadata": { "id": "l1J98G13HbKM", "colab_type": "code", "outputId": "8d19cb85-b098-4cab-b433-27fcaa8a620e", "colab": { "base_uri": "https://localhost:8080/", "height": 137 } }, "source": [ "!pip install tsaug" ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "Collecting tsaug\n", " Downloading https://files.pythonhosted.org/packages/e8/6e/8b1be145a32bba360c14322c3b87ad93d6227c46528d482c84eefe54094b/tsaug-0.2.1-py3-none-any.whl\n", "Requirement already satisfied: numpy>=1.14 in /usr/local/lib/python3.6/dist-packages (from tsaug) (1.18.3)\n", "Requirement already satisfied: scipy>=1.1 in /usr/local/lib/python3.6/dist-packages (from tsaug) (1.4.1)\n", "Installing collected packages: tsaug\n", "Successfully installed tsaug-0.2.1\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "aXNkSdTFvZ1g", "colab_type": "code", "colab": {} }, "source": [ "from tsaug.visualization import plot \n", "from tsaug import TimeWarp, Crop, Quantize, Drift, Reverse\n", "my_augmenter = (TimeWarp() * 5, # random time warping 5 times in parallel \n", " Crop(size=300), # random crop subsequences with length 300\n", " Quantize(n_levels=[10, 20, 30]), # random quantize to 10-, 20-, or 30- level sets\n", " Drift(max_drift=(0.1, 0.5)), # with 80% probability, random drift the signal up to 10% - 50%\n", " Reverse()) #0.5 # with 50% probability, reverse the sequence)" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "VdVWNhk2XRJw", "colab_type": "code", "colab": {} }, "source": [ "#X_aug = my_augmenter[0].augment(antwerp_relevant)\n", "print(antwerp_relevant.shape)\n", "X_aug = TimeWarp(antwerp[:70])" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "-A6ICggnYBlX", "colab_type": "text" }, "source": [ "## Models and Forecasting\n", "We will now define some simple models in Keras for forecasting." ] }, { "cell_type": "code", "metadata": { "id": "VO7ZOB41az1W", "colab_type": "code", "colab": {} }, "source": [ "import numpy as np\n", "import tensorflow as tf\n", "from sklearn.preprocessing import RobustScaler" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "eUR6eM4MZZJJ", "colab_type": "code", "colab": {} }, "source": [ "def create_dataset(X, y, time_steps=1):\n", " Xs, ys = [], []\n", " for i in range(len(X) - time_steps):\n", " v = X.iloc[i:(i + time_steps)].values\n", " Xs.append(v)\n", " ys.append(y.iloc[i + time_steps])\n", " return np.array(Xs), np.array(ys)" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "-OOG9RAp4-ap", "colab_type": "code", "colab": {} }, "source": [ "sweep_config = {\n", " \"name\": \"Default sweep\",\n", " \"method\": \"grid\",\n", " \"parameters\": {\n", " \"batch_size\": {\n", " \"values\": [2, 3, 4, 5]\n", " },\n", " \"learn\":{\n", " \"values\":[0.001, 0.002, 0.004, 0.01]\n", " },\n", " \"seq_len\":{\n", " \"values\":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n", " }\n", " }\n", "}\n", "#sweep_id = wandb.sweep(sweep_config, project=\"covid-forecast\")" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "nXhSxkqdYJbd", "colab_type": "code", "colab": {} }, "source": [ "import matplotlib.pyplot as plt\n", "def train(x_train_full, y_train_full, test, test_first, scaler, config_default):\n", " run = wandb.init(project=\"covid-forecast\", config=config_default, magic=True)\n", " config = wandb.config\n", " X_train, Y_train = create_dataset(x_train_full, y_train_full, config[\"seq_len\"])\n", " X_test, y_test = create_dataset(test, test, config[\"seq_len\"])\n", " opt = keras.optimizers.Adam(learning_rate=config[\"learn\"], beta_1=config[\"beta\"], beta_2=0.999, amsgrad=False)\n", " model = keras.Sequential()\n", " model.add(\n", " keras.layers.Bidirectional(\n", " keras.layers.LSTM(\n", " units=128,\n", " input_shape=(X_train.shape[1], X_train.shape[2])\n", " )\n", " )\n", " ) \n", " model.add(keras.layers.Dropout(rate=0.2))\n", " model.add(keras.layers.Dense(units=2))\n", " model.compile(loss=config[\"loss\"], optimizer=opt)\n", "\n", " history = model.fit(\n", " X_train, Y_train,\n", " epochs=config[\"epochs\"],\n", " batch_size=config[\"batch_size\"],\n", " validation_split=config[\"validation_split\"],\n", " callbacks=[WandbCallback()],\n", " shuffle=False\n", " )\n", " evaluate_single(model, X_test, y_test, scaler)\n", " evaluate_plot_multi(model, test_first, config, X_test, scaler)\n", " return model\n", "\n", "def evaluate_single(model, x_test, y_test, scaler):\n", " y_preds = model.predict(x_test)\n", " y_preds = scaler.inverse_transform(y_preds)\n", " y_test = scaler.inverse_transform(y_test)\n", " complete_mse = tf.keras.losses.MSE( y_preds[:, 1], y_test[:, 1])\n", " wandb.run.summary[\"test_mse\"] = complete_mse\n", " return complete_mse\n", "\n", "def evaluate_plot_multi(model, test_orig, config, x_test, scaler, predictor=\"new_cases\"):\n", " arr = predict_multi(model, len(test_orig)-config[\"seq_len\"], x_test[0, :, :], config)\n", " test_orig['predicted_cases'] = 0\n", " test_orig['predicted_cases'][config[\"seq_len\"]:] = scaler.inverse_transform(arr.squeeze(0))[:, 1]\n", " plt.plot(test_orig['predicted_cases'], label='predicted_cases')\n", " plt.plot(test_orig[predictor], label='actual_cases')\n", " plt.axvline(x=config['seq_len'], label='Predictions start'.format(config[\"seq_len\"]))\n", " plt.legend();\n", " wandb.log({\"test\":plt})\n", " plt.plot(test_orig['predicted_cases'], label='predicted_cases')\n", " plt.plot(test_orig[predictor], label='actual_cases')\n", " plt.legend();\n", " wandb.Image(plt, caption=\"Plot\")\n", " large_mse = tf.keras.losses.MSE(\n", " scaler.inverse_transform(arr.squeeze(0))[:, 1], test_orig[predictor][config[\"seq_len\"]:].values\n", " )\n", " wandb.run.summary[\"test_mse_full\"] = large_mse\n", " return large_mse\n", "\n", "def predict_multi(model, time_steps, start_rows, config, trg=None, known_colums_indices=None):\n", " \"\"\"\n", " start_rows:np.array of dimension ()\n", " \"\"\"\n", " start_rows=np.expand_dims(start_rows, axis=0)\n", " trg = np.expand_dims(trg, axis=0)\n", " print(start_rows)\n", " print(start_rows.shape)\n", " for i in range(0, time_steps):\n", " out = model.predict(start_rows[:, i:, :])\n", " out = out[np.newaxis, ...]\n", " if trg and known_colums_indices:\n", " for target in known_colums_indices:\n", " out[:, :, target] = trg[:, i, target]\n", " targ[:, i, :]\n", " start_rows = np.concatenate((start_rows, out), axis=1)\n", " return start_rows[:, config[\"seq_len\"]:, :]\n" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "tR_vweL-bOD1", "colab_type": "code", "outputId": "f6d40e8b-d959-48ff-85d9-d828cd00779b", "colab": { "base_uri": "https://localhost:8080/", "height": 286 } }, "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "%config InlineBackend.figure_format='retina'\n", "plt.plot(history.history['loss'], label='train')\n", "plt.plot(history.history['val_loss'], label='test')\n", "plt.legend();" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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4nNsjmItTrGmnIiIiCirhQsXZv38+Pg43vCGN+Cpp57C+vXrcd1112HevHmoqqoCANx2220YHR0t+HXmzJmT9fOVlV7YOzk5GXLldriYUz5zcfoKERERaeIuCSknwXpx3wMPPICnnnoKN91005QJKYcPH8Ztt91mY3nOWd/Rc0ZjoycRERHNQn79djFZ6N27vfke73rXu6bc99hjj5W2sDLCoDxKbPQkIiKiWai1tRVCCOzfvz/013Z0dADAlJnje/bswcc//vEIVlceWL4SJdaUExER0SzU2NiICy64AI8//jje9773Yc2aNaioqMDVV1+d92vf/va34/TTT8eXvvQlPPvsszjvvPOwf/9+PPjgg7jqqquKCvTLEYPyKOk15cMsXyEiIqLZ46677sKtt96Khx9+GHfffTeklFiyZMmpTHguDQ0NeOSRR/CJT3wC27Ztw+OPP46VK1fi05/+ND760Y/iW9/6lp3/AceEPm5mphBCbN+4cePG7du3233hE7uBf9jkHbeuAP74t3Zfn4iIiKx64YUXAABr1651vBKKWqH/tps2bcLTTz/9tJRyUymvx5ryKLF8hYiIiIiKwKA8SsGgfAZehSAiIiKi6DEoj1JlNVBV7x3LSWBswO16iIiIiKgsMCiPmp4tZ7MnERERERWAQXnUWFdORERERCExKI9aLTcQIiIiIqJwGJRHzciUs3yFiIiIiPJjUB61OmbKiYiIiCgcBuVRY005EREREYXEoDxqnL5CRERERCExKI8aGz2JiIiIKCQG5VFjoycRERERhcSgPGqsKSciIiKikBiUR60cpq8c+i3w6P8PnHzV9UqIiIiICAzKo5f0Rs/JceDu64HHPg9850OuV0NEREQzwN69eyGEwE033WT1dbds2QIhBLZt22b1dePAoDxqSS9fGTwO9B/2jg/vANKTbtdDRERERAzKI5f06SvD3epYps3bREREROQEg/Ko1TQDEN7xWD8wOeF0OVMEg/DB427WQURERDPCli1bsGLFCgDAnXfeCSHEqf/uuOOOU4/74Q9/iCuvvBLt7e2oqanBqlWr8LGPfQw9PVPLfXfu3In3vve96OjoQE1NDebNm4eNGzfilltuwfj4OACgo6MDt912GwDg8ssvN163HFW6XsCMk0oBtc0qSz7aB9S3uV2TbkpQfsLNOoiIiGhG2Lx5M3p6erB161ace+65uOaaa07dt2HDBgDAbbfdhi1btqCtrQ1ve9vbMH/+fOzcuRNf/OIX8dBDD+GJJ55Ac3MzAC8gv+CCCyCEwNVXX40VK1agr68Pu3fvxle/+lXcfvvtqKqqwi233IL7778fjz32GN7//vejo6PDxf9+ZBiUx6G2RQXlIz0JD8qZKSciIqLibd68GR0dHdi6dSs2bNiALVu2GPc/+uij2LJlCy666CI89NBDmDNHlfrecccd+MAHPoDPfOYz+Lu/+zsAXrZ9ZGQE999/P97xjncYz9Xd3Y36+noAwC233IKenh489thjuOmmm7B58+ZY/z/jxqA8DkmewMJMORERkT1bWvI/Jim2xNML9+UvfxkA8LWvfc0IyAHgpptuwtatW/GNb3zjVFDuq6urm/Jcra2tsawxCRiUxyHJzZ7BoHyIQTkRERHF54knnkBVVRXuuece3HPPPVPuHxsbw/Hjx3Hy5EnMnTsX1113HbZu3YprrrkG1157La644gpccsklWLVqlYPV28OgPA7GWMSkZ8pZvkJERETxOXnyJCYmJk41ZeYyMDCAuXPn4vzzz8fjjz+Oz372s7j33ntx1113AQDOOOMMfOYzn8F73/teG8u2jkF5HMopU87yFSIiovjEVBJSTlpaWpBOp9HV1VXw11x00UV48MEHMTo6iu3bt+Phhx/GV77yFdxwww2YN28errjiihhX7AZHIsahjkE5ERERzR4VFRUAgMnJqZsSXnjhheju7sauXbtCP29NTQ0uvvhi/NVf/dWp2vQHHnigoNctNwzK41BWjZ4sXyEiIqLStLa2QgiB/fv3T7nv1ltvBQB8+MMfxqFDh6bcPzg4iF/96lenbv/yl7/E8PDwlMcdPXoUAE5NXwGAuXPnAkDW1y03LF+JQ6LLVwInCWz0JCIiohI1NjbiggsuwOOPP473ve99WLNmDSoqKnD11VfjjW98Iz73uc/hk5/8JFavXo0rr7wSK1aswMDAAPbt24fHHnsMl156KR5++GEAwBe+8AU88sgjeN3rXocVK1agsbERu3btwg9+8AO0trbi5ptvPvW6l19+OVKpFD75yU/iueeeOzWd5VOf+pST70MpGJTHwWj0TFpQ3j319uQ4UFHlZj1EREQ0I9x111249dZb8fDDD+Puu++GlBJLlizBOeecg49//OO45JJL8OUv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DmANgLcD+CKAN4rInUopZal9RERERESxsRWUHwJwG4B7lFJlf6OI/AGAnwB4B3SA/g07zSMiIiIiio+VNBGl1A+UUt82A3Jv+2kAX/Be3hB7w4iIiIiILHAxd7vgLYtWW0FEREREFBOn6pSLSArAe72X983h+ANVdu1eskYREREREdWYaz3lnwawB8C9Sqnv2m4MEREREVEcnOkpF5EPA/hdAM8DeM9cvkcptb/KzzoAYN/StY6IiIiIqHac6CkXkd8C8BkAzwK4USnVZ7lJRERERESxsR6Ui8hHAHwOwEHogPy05SYREREREcXKalAuIr8P4C8BPAkdkJ+12R4iIiIiIhusBeUi8lHogZ0HANyslOq11RYiIiIiIpusDPQUkfcB+CSAEoCHAHxYRKKHHVNKfTnmphERERERxc5W9ZWt3jIJ4CNVjnkAwJdjaQ0RERERkUVW0leUUh9XSsksXzfYaBsRERERUdysV18hIiIiIlrpGJQTEREREVnGoJyIiIiIyDIG5UREREREljEoJyIiIiKyjEE5EREREZFlDMqJiIiIiCxjUE5EREREZBmDciIiIiIiyxiUExERERFZxqCciIiIiMgyBuVERERERJYxKCciIiIisoxBORERERGRZQzKiYiIiIgsY1BORERERGQZg3IiIiIiIssYlBMRERERWcagnIiIiIjIMgblRERERESWMSgnIiIiIrKMQTkRERERkWUMyomIiIiILGNQTkRERERkGYNyIiIiIiLLGJQTEREREVnGoJyIiIiIyDIG5UREREREljEoJyIiIiKyjEE5EREREZFlDMqJiIiIiCxjUE5EREREZBmDciIiIiIiyxiUExERERFZxqCciIiIiMgyBuVERERERJYxKCciIiIisixluwH15BsHTqIpm8LVOzrR2pC23RwiIiIiWiYYlC8RpRT+7LvP48xQHsmEYN/mVbh+Vzdet6sbe9a3IZEQq+0bnijgsSN9+NGLvXjocA9O9I3j4o1tuPXidXjT3nVY09pgtX1EREREKxmD8iXywplhnBnKAwBKZYXHj/Xj8WP9+D/fO4TOpgyu3dmF63d147qd3ehuyda8PYVSGT8/MYCHDvfiRy/24mcnBlAqq9AxP325Hz99uR+f/I9nccV5Hbj14nV44561WM0AnYiIiChWDMqXSEtDGr9543Y8cKgHB18Z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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "image/png": { "width": 370, "height": 248 }, "needs_background": "light" } } ] }, { "cell_type": "markdown", "metadata": { "id": "XVag4FbaY7ac", "colab_type": "text" }, "source": [ "### Forecasting on all county levels\n", "Now that we have loooked at Antwerp specifically we will design a general function to work on all geographic counties." ] }, { "cell_type": "code", "metadata": { "id": "9SIqUoXPZHZu", "colab_type": "code", "colab": {} }, "source": [ "import numpy as np\n", "import tensorflow as tf\n", "from sklearn.preprocessing import RobustScaler\n", "\n", "def run_geo_sweeps(county_info, start_idx=0, end_idx=1, test_columns=[]):\n", " for s in range(start_idx, end_idx):\n", " county = county_info[s].fillna(0)\n", " county_name = county['full_county'].values[0]\n", " config_default = {\"epochs\":30, \"validation_split\":0.1, \n", " \"loss\":\"mean_squared_error\", \"optimizer\":'adam', \n", " \"geo_segment\":county_name, \"seq_len\":7, \"train_steps\":60, \n", " \"test_steps\":27, \"scaler\":\"RobustScaler\", \"new_cases\":True, \n", " \"beta\":0.899, \"additional_features\":[\"none\"]}\n", " county['new_cases'] = county.cases.diff()\n", " r = RobustScaler()\n", " x_train_full = county[['deaths', 'new_cases']][1:config_default[\"train_steps\"]]\n", " x_train_full = pd.DataFrame(r.fit_transform(x_train_full))\n", " y_train_full = x_train_full\n", " r_test = RobustScaler()\n", " test_orig = county[['deaths', 'new_cases']][60:]\n", " test = pd.DataFrame(r_test.fit_transform(test_orig), columns=[\"deaths\", \"new_cases\"])\n", " sweep_id = wandb.sweep(sweep_config, project=\"covid-forecast\")\n", " wandb.agent(sweep_id, lambda:train(x_train_full, y_train_full, test, test_orig, r_test, config_default))\n" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "QJHExFR70zLH", "colab_type": "code", "colab": {} }, "source": [ "run_geo_sweeps(county_info, 8, 28)" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "zPaMFelHjm-m", "colab_type": "text" }, "source": [ "### Examining Results\n", "We will now predict both one step ahead and 20 steps ahead." ] }, { "cell_type": "code", "metadata": { "id": "F5zjK1JYf52W", "colab_type": "code", "outputId": "00fa37da-16a3-428d-bb6c-e6f10371bb94", "colab": { "base_uri": "https://localhost:8080/", "height": 319 } }, "source": [ "res = model.predict(X_test)\n", "res = r_test.inverse_transform(res)\n", "res" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([[-2.1279370e-02, 2.0092883e+03],\n", " [-1.8879963e-02, 2.2472920e+03],\n", " [-1.6375745e-02, 2.5275439e+03],\n", " [-1.3892809e-02, 2.8506108e+03],\n", " [-1.1596879e-02, 3.1829221e+03],\n", " [-9.0861954e-03, 3.5029392e+03],\n", " [-6.4477865e-03, 3.7825161e+03],\n", " [-3.6051013e-03, 4.0421055e+03],\n", " [-1.2287628e-03, 4.2927124e+03],\n", " [ 3.3153594e-04, 4.5448154e+03],\n", " [ 1.1798348e-03, 4.7915127e+03],\n", " [ 2.0689592e-03, 5.0360225e+03],\n", " [ 3.3188127e-03, 5.2662153e+03],\n", " [ 5.0343592e-03, 5.5053794e+03],\n", " [ 6.5031778e-03, 5.7533242e+03],\n", " [ 7.2021466e-03, 5.9751943e+03],\n", " [ 7.6369299e-03, 6.1531494e+03]], dtype=float32)" ] }, "metadata": { "tags": [] }, "execution_count": 30 } ] }, { "cell_type": "code", "metadata": { "id": "Z_9dG21n1bJC", "colab_type": "code", "outputId": "aee9ba88-9e6e-4ec8-ad2c-a114d299538a", "colab": { "base_uri": "https://localhost:8080/", "height": 319 } }, "source": [ "y_true = r_test.inverse_transform(y_test)\n", "y_true" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([[ 0., 3521.],\n", " [ 0., 3822.],\n", " [ 0., 4086.],\n", " [ 0., 4179.],\n", " [ 0., 4265.],\n", " [ 0., 4330.],\n", " [ 0., 4470.],\n", " [ 0., 4645.],\n", " [ 0., 4855.],\n", " [ 0., 4965.],\n", " [ 0., 5028.],\n", " [ 0., 5079.],\n", " [ 0., 5241.],\n", " [ 0., 5415.],\n", " [ 0., 5449.],\n", " [ 0., 5449.],\n", " [ 0., 5449.]])" ] }, "metadata": { "tags": [] }, "execution_count": 31 } ] }, { "cell_type": "markdown", "metadata": { "id": "bkob-4bnYdeT", "colab_type": "text" }, "source": [ "### PyTorch models\n", "Use flow-forecast library \n" ] }, { "cell_type": "code", "metadata": { "id": "A1nZRmkrNkQI", "colab_type": "code", "colab": {} }, "source": [ "import os\n", "!gcloud source repos clone github_aistream-peelout_flow-forecast --project=gmap-997\n", "os.chdir('/content/github_aistream-peelout_flow-forecast')\n", "!git checkout -t origin/branch_fixes\n", "!python setup.py develop\n", "!pip install -r requirements.txt\n", "!mkdir data\n", "from flood_forecast.trainer import train_function" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "uaY8acW4thxu", "colab_type": "code", "outputId": "f193e666-2206-461e-bbe9-f8cbfa5874c6", "colab": { "base_uri": "https://localhost:8080/", "height": 104 } }, "source": [ "def make_config_file(file_path, df_len):\n", " run = wandb.init(project=\"covid-forecast\")\n", " wandb_config = wandb.config\n", " train_number = df_len * .7\n", " validation_number = df_len *.9\n", " config_default={ \n", " \"model_name\": \"MultiAttnHeadSimple\",\n", " \"model_type\": \"PyTorch\",\n", " \"model_params\": {\n", " \"number_time_series\":3,\n", " \"seq_len\":wandb_config[\"forecast_history\"], \n", " \"output_seq_len\":wandb_config[\"out_seq_length\"],\n", " \"forecast_length\":wandb_config[\"out_seq_length\"]\n", " },\n", " \"dataset_params\":\n", " { \"class\": \"default\",\n", " \"training_path\": file_path,\n", " \"validation_path\": file_path,\n", " \"test_path\": file_path,\n", " \"batch_size\":wandb_config[\"batch_size\"],\n", " \"forecast_history\":wandb_config[\"forecast_history\"],\n", " \"forecast_length\":wandb_config[\"out_seq_length\"],\n", " \"train_end\": int(train_number),\n", " \"valid_start\":int(train_number+1),\n", " \"valid_end\": int(validation_number),\n", " \"target_col\": [\"new_cases\"],\n", " \"relevant_cols\": [\"new_cases\", \"month\", \"weekday\"],\n", " \"scaler\": \"StandardScaler\", \n", " \"interpolate\": False\n", " },\n", " \"training_params\":\n", " {\n", " \"criterion\":\"MSE\",\n", " \"optimizer\": \"Adam\",\n", " \"optim_params\":\n", " {\n", "\n", " },\n", " \"lr\": wandb_config[\"lr\"],\n", " \"epochs\": 10,\n", " \"batch_size\":wandb_config[\"batch_size\"]\n", " \n", " },\n", " \"GCS\": False,\n", " \n", " \"wandb\": {\n", " \"name\": \"multihead_pytorch_antwerp\",\n", " \"tags\": [\"covid_run\", \"circleci\"],\n", " \"project\": \"covid-forecast\"\n", " },\n", " \"forward_params\":{},\n", " \"metrics\":[\"MSE\"],\n", " \"inference_params\":\n", " { \n", " \"datetime_start\":\"2020-04-21\",\n", " \"hours_to_forecast\":10, \n", " \"test_csv_path\":file_path,\n", " \"decoder_params\":{\n", " \"decoder_function\": \"simple_decode\", \n", " \"unsqueeze_dim\": 1\n", " },\n", " \"dataset_params\":{\n", " \"file_path\": file_path,\n", " \"forecast_history\":wandb_config[\"forecast_history\"],\n", " \"forecast_length\":wandb_config[\"out_seq_length\"],\n", " \"relevant_cols\": [\"new_cases\", \"month\", \"weekday\"],\n", " \"target_col\": [\"new_cases\"],\n", " \"scaling\": \"StandardScaler\",\n", " \"interpolate_param\": False\n", " }\n", " }\n", " }\n", " print(config_default)\n", " wandb.config = config_default\n", " return config_default\n", "county_info[0]['datetime'] = county_info[0]['date']\n", "county_info[0]['precip'] = 0\n", "county_info[0]['temp'] = 0\n", "county_info[0] = county_info[0].fillna(0)\n", "county_info[0]['new_cases'] = county_info[0]['cases'].diff()\n", "county_info[0].iloc[0]['new_cases'] = 0\n", "county_info[0] = county_info[0].fillna(0)\n", "county_info[0].to_csv(\"antwerp.csv\")\n", "sweep_config = {\n", " \"name\": \"Default sweep\",\n", " \"method\": \"grid\",\n", " \"parameters\": {\n", " \"batch_size\": {\n", " \"values\": [2, 3, 4, 5]\n", " },\n", " \"lr\":{\n", " \"values\":[0.001, 0.002, 0.004, 0.01]\n", " },\n", " \"forecast_history\":{\n", " \"values\":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n", " },\n", " \"out_seq_length\":{\n", " \"values\":[1, 2, 3]\n", " }\n", " }\n", "}\n" ], "execution_count": 47, "outputs": [ { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:81: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n" ], "name": "stderr" } ] }, { "cell_type": "markdown", "metadata": { "id": "MAvfpboIfBKF", "colab_type": "text" }, "source": [ "We will now combine Wandb parameter sweeps with flood forecast" ] }, { "cell_type": "code", "metadata": { "id": "QSdkIJi0-hLG", "colab_type": "code", "outputId": "34364adc-c8ae-45af-e04e-e2cacfba03e6", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 } }, "source": [ "len_csv = len(county_info[0])\n", "sweep_id = wandb.sweep(sweep_config, project=\"covid-forecast\")\n", "wandb.agent(sweep_id, lambda:train_function(\"PyTorch\", make_config_file(\"antwerp.csv\", len_csv)))\n" ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "Create sweep with ID: yw9zbqtn\n", "Sweep URL: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn\n", "wandb: Agent Starting Run: favq6tdk with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.001\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: favq6tdk\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/favq6tdk
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/vm7aqn2e
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "11.736990986595629\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.3452056172528126\n", "The running loss is:\n", "24.813077855855227\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "0.7297964075251537\n", "The running loss is:\n", "28.300584806129336\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.8323701413567451\n", "The running loss is:\n", "10.4155727809557\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.30634037591046176\n", "The running loss is:\n", "11.473218071194424\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.33744759032924776\n", "The running loss is:\n", "8.870212249457836\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.2608885955722893\n", "The running loss is:\n", "8.28752523707226\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.24375074226683116\n", "The running loss is:\n", "7.280146740449709\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.2141219629544032\n", "The running loss is:\n", "12.525580656249076\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.3683994310661493\n", "The running loss is:\n", "19.792637944687158\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.5821364101378576\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 102.806030\n", "91 91 Antwerp, Flanders, Belgium ... 91 71.026802\n", "92 92 Antwerp, Flanders, Belgium ... 92 56.383720\n", "93 93 Antwerp, Flanders, Belgium ... 93 51.088078\n", "94 94 Antwerp, Flanders, Belgium ... 94 50.891293\n", "95 95 Antwerp, Flanders, Belgium ... 95 53.475834\n", "96 96 Antwerp, Flanders, Belgium ... 96 57.577534\n", "97 97 Antwerp, Flanders, Belgium ... 97 43.663624\n", "98 98 Antwerp, Flanders, Belgium ... 98 38.765736\n", "99 99 Antwerp, Flanders, Belgium ... 99 38.785915\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: favq6tdk \n", "\n", "wandb: Agent Starting Run: qej41xa6 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.001\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: qej41xa6\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/qej41xa6
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/34sg55f5
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "20.978312958031893\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.6170092046479968\n", "The running loss is:\n", "39.80216880142689\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "1.170652023571379\n", "The running loss is:\n", "24.19058443978429\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.7114877776407144\n", "The running loss is:\n", "20.301503472030163\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.5971030432950047\n", "The running loss is:\n", "18.146781336516142\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.53372886283871\n", "The running loss is:\n", "20.873035572469234\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.6139128109549775\n", "The running loss is:\n", "17.74494293704629\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.5219100863837144\n", "The running loss is:\n", "18.19329888187349\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.5350970259374556\n", "The running loss is:\n", "14.98734188452363\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.4408041730742244\n", "The running loss is:\n", "17.561892744153738\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.5165262571809923\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 57.193180\n", "91 91 Antwerp, Flanders, Belgium ... 91 23.370998\n", "92 92 Antwerp, Flanders, Belgium ... 92 14.213340\n", "93 93 Antwerp, Flanders, Belgium ... 93 13.168525\n", "94 94 Antwerp, Flanders, Belgium ... 94 14.792251\n", "95 95 Antwerp, Flanders, Belgium ... 95 17.293728\n", "96 96 Antwerp, Flanders, Belgium ... 96 20.083920\n", "97 97 Antwerp, Flanders, Belgium ... 97 9.197349\n", "98 98 Antwerp, Flanders, Belgium ... 98 7.583842\n", "99 99 Antwerp, Flanders, Belgium ... 99 9.020511\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: qej41xa6 \n", "\n", "wandb: Agent Starting Run: 4lsu567z with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.001\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: 4lsu567z\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/4lsu567z
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/rqu5z438
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.944805666804314\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.6649941111152823\n", "The running loss is:\n", "39.04568848013878\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "1.1832026812163265\n", "The running loss is:\n", "22.351303592324257\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6773122300704321\n", "The running loss is:\n", "24.924195021390915\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.7552786370118459\n", "The running loss is:\n", "17.094573065638542\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5180173656254103\n", "The running loss is:\n", "22.243711099028587\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6740518514857148\n", "The running loss is:\n", "14.625111401081085\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.4431851939721541\n", "The running loss is:\n", "18.527046501636505\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.5614256515647426\n", "The running loss is:\n", "13.53986869752407\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.41029905144012335\n", "The running loss is:\n", "13.372476078569889\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.4052265478354512\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 155.923538\n", "91 91 Antwerp, Flanders, Belgium ... 91 151.458740\n", "92 92 Antwerp, Flanders, Belgium ... 92 150.204483\n", "93 93 Antwerp, Flanders, Belgium ... 93 150.787048\n", "94 94 Antwerp, Flanders, Belgium ... 94 152.420502\n", "95 95 Antwerp, Flanders, Belgium ... 95 154.655197\n", "96 96 Antwerp, Flanders, Belgium ... 96 157.233871\n", "97 97 Antwerp, Flanders, Belgium ... 97 150.908249\n", "98 98 Antwerp, Flanders, Belgium ... 98 148.589386\n", "99 99 Antwerp, Flanders, Belgium ... 99 148.562866\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 4lsu567z \n", "\n", "wandb: Agent Starting Run: gga943m2 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.002\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: gga943m2\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/gga943m2
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/10hh6n0y
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "11.736990986595629\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.3452056172528126\n", "The running loss is:\n", "24.813077855855227\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "0.7297964075251537\n", "The running loss is:\n", "28.300584806129336\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.8323701413567451\n", "The running loss is:\n", "10.4155727809557\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.30634037591046176\n", "The running loss is:\n", "11.473218071194424\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.33744759032924776\n", "The running loss is:\n", "8.870212249457836\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.2608885955722893\n", "The running loss is:\n", "8.28752523707226\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.24375074226683116\n", "The running loss is:\n", "7.280146740449709\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.2141219629544032\n", "The running loss is:\n", "12.525580656249076\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.3683994310661493\n", "The running loss is:\n", "19.792637944687158\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.5821364101378576\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 102.806030\n", "91 91 Antwerp, Flanders, Belgium ... 91 71.026802\n", "92 92 Antwerp, Flanders, Belgium ... 92 56.383720\n", "93 93 Antwerp, Flanders, Belgium ... 93 51.088078\n", "94 94 Antwerp, Flanders, Belgium ... 94 50.891293\n", "95 95 Antwerp, Flanders, Belgium ... 95 53.475834\n", "96 96 Antwerp, Flanders, Belgium ... 96 57.577534\n", "97 97 Antwerp, Flanders, Belgium ... 97 43.663624\n", "98 98 Antwerp, Flanders, Belgium ... 98 38.765736\n", "99 99 Antwerp, Flanders, Belgium ... 99 38.785915\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: gga943m2 \n", "\n", "wandb: Agent Starting Run: 8blainoj with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.002\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: 8blainoj\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/8blainoj
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/3dt4m4w7
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "20.978312958031893\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.6170092046479968\n", "The running loss is:\n", "39.80216880142689\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "1.170652023571379\n", "The running loss is:\n", "24.19058443978429\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.7114877776407144\n", "The running loss is:\n", "20.301503472030163\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.5971030432950047\n", "The running loss is:\n", "18.146781336516142\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.53372886283871\n", "The running loss is:\n", "20.873035572469234\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.6139128109549775\n", "The running loss is:\n", "17.74494293704629\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.5219100863837144\n", "The running loss is:\n", "18.19329888187349\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.5350970259374556\n", "The running loss is:\n", "14.98734188452363\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.4408041730742244\n", "The running loss is:\n", "17.561892744153738\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.5165262571809923\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 57.193180\n", "91 91 Antwerp, Flanders, Belgium ... 91 23.370998\n", "92 92 Antwerp, Flanders, Belgium ... 92 14.213340\n", "93 93 Antwerp, Flanders, Belgium ... 93 13.168525\n", "94 94 Antwerp, Flanders, Belgium ... 94 14.792251\n", "95 95 Antwerp, Flanders, Belgium ... 95 17.293728\n", "96 96 Antwerp, Flanders, Belgium ... 96 20.083920\n", "97 97 Antwerp, Flanders, Belgium ... 97 9.197349\n", "98 98 Antwerp, Flanders, Belgium ... 98 7.583842\n", "99 99 Antwerp, Flanders, Belgium ... 99 9.020511\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 8blainoj \n", "\n", "wandb: Agent Starting Run: aomxdwio with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.002\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: aomxdwio\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/aomxdwio
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/rdyizes8
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.944805666804314\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.6649941111152823\n", "The running loss is:\n", "39.04568848013878\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "1.1832026812163265\n", "The running loss is:\n", "22.351303592324257\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6773122300704321\n", "The running loss is:\n", "24.924195021390915\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.7552786370118459\n", "The running loss is:\n", "17.094573065638542\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5180173656254103\n", "The running loss is:\n", "22.243711099028587\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6740518514857148\n", "The running loss is:\n", "14.625111401081085\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.4431851939721541\n", "The running loss is:\n", "18.527046501636505\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.5614256515647426\n", "The running loss is:\n", "13.53986869752407\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.41029905144012335\n", "The running loss is:\n", "13.372476078569889\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.4052265478354512\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 155.923538\n", "91 91 Antwerp, Flanders, Belgium ... 91 151.458740\n", "92 92 Antwerp, Flanders, Belgium ... 92 150.204483\n", "93 93 Antwerp, Flanders, Belgium ... 93 150.787048\n", "94 94 Antwerp, Flanders, Belgium ... 94 152.420502\n", "95 95 Antwerp, Flanders, Belgium ... 95 154.655197\n", "96 96 Antwerp, Flanders, Belgium ... 96 157.233871\n", "97 97 Antwerp, Flanders, Belgium ... 97 150.908249\n", "98 98 Antwerp, Flanders, Belgium ... 98 148.589386\n", "99 99 Antwerp, Flanders, Belgium ... 99 148.562866\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: aomxdwio \n", "\n", "wandb: Agent Starting Run: 30hdvsam with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.004\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: 30hdvsam\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/30hdvsam
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/fvf5dvms
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "11.736990986595629\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.3452056172528126\n", "The running loss is:\n", "24.813077855855227\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "0.7297964075251537\n", "The running loss is:\n", "28.300584806129336\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.8323701413567451\n", "The running loss is:\n", "10.4155727809557\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.30634037591046176\n", "The running loss is:\n", "11.473218071194424\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.33744759032924776\n", "The running loss is:\n", "8.870212249457836\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.2608885955722893\n", "The running loss is:\n", "8.28752523707226\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.24375074226683116\n", "The running loss is:\n", "7.280146740449709\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.2141219629544032\n", "The running loss is:\n", "12.525580656249076\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.3683994310661493\n", "The running loss is:\n", "19.792637944687158\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.5821364101378576\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 102.806030\n", "91 91 Antwerp, Flanders, Belgium ... 91 71.026802\n", "92 92 Antwerp, Flanders, Belgium ... 92 56.383720\n", "93 93 Antwerp, Flanders, Belgium ... 93 51.088078\n", "94 94 Antwerp, Flanders, Belgium ... 94 50.891293\n", "95 95 Antwerp, Flanders, Belgium ... 95 53.475834\n", "96 96 Antwerp, Flanders, Belgium ... 96 57.577534\n", "97 97 Antwerp, Flanders, Belgium ... 97 43.663624\n", "98 98 Antwerp, Flanders, Belgium ... 98 38.765736\n", "99 99 Antwerp, Flanders, Belgium ... 99 38.785915\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 30hdvsam \n", "\n", "wandb: Agent Starting Run: t62et1z8 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.004\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: t62et1z8\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/t62et1z8
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/11t5bt23
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "20.978312958031893\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.6170092046479968\n", "The running loss is:\n", "39.80216880142689\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "1.170652023571379\n", "The running loss is:\n", "24.19058443978429\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.7114877776407144\n", "The running loss is:\n", "20.301503472030163\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.5971030432950047\n", "The running loss is:\n", "18.146781336516142\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.53372886283871\n", "The running loss is:\n", "20.873035572469234\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.6139128109549775\n", "The running loss is:\n", "17.74494293704629\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.5219100863837144\n", "The running loss is:\n", "18.19329888187349\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.5350970259374556\n", "The running loss is:\n", "14.98734188452363\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.4408041730742244\n", "The running loss is:\n", "17.561892744153738\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.5165262571809923\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 57.193180\n", "91 91 Antwerp, Flanders, Belgium ... 91 23.370998\n", "92 92 Antwerp, Flanders, Belgium ... 92 14.213340\n", "93 93 Antwerp, Flanders, Belgium ... 93 13.168525\n", "94 94 Antwerp, Flanders, Belgium ... 94 14.792251\n", "95 95 Antwerp, Flanders, Belgium ... 95 17.293728\n", "96 96 Antwerp, Flanders, Belgium ... 96 20.083920\n", "97 97 Antwerp, Flanders, Belgium ... 97 9.197349\n", "98 98 Antwerp, Flanders, Belgium ... 98 7.583842\n", "99 99 Antwerp, Flanders, Belgium ... 99 9.020511\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: t62et1z8 \n", "\n", "wandb: Agent Starting Run: 4b3oei6w with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.004\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: 4b3oei6w\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/4b3oei6w
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/3llx5uby
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.944805666804314\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.6649941111152823\n", "The running loss is:\n", "39.04568848013878\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "1.1832026812163265\n", "The running loss is:\n", "22.351303592324257\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6773122300704321\n", "The running loss is:\n", "24.924195021390915\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.7552786370118459\n", "The running loss is:\n", "17.094573065638542\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5180173656254103\n", "The running loss is:\n", "22.243711099028587\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6740518514857148\n", "The running loss is:\n", "14.625111401081085\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.4431851939721541\n", "The running loss is:\n", "18.527046501636505\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.5614256515647426\n", "The running loss is:\n", "13.53986869752407\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.41029905144012335\n", "The running loss is:\n", "13.372476078569889\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.4052265478354512\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 155.923538\n", "91 91 Antwerp, Flanders, Belgium ... 91 151.458740\n", "92 92 Antwerp, Flanders, Belgium ... 92 150.204483\n", "93 93 Antwerp, Flanders, Belgium ... 93 150.787048\n", "94 94 Antwerp, Flanders, Belgium ... 94 152.420502\n", "95 95 Antwerp, Flanders, Belgium ... 95 154.655197\n", "96 96 Antwerp, Flanders, Belgium ... 96 157.233871\n", "97 97 Antwerp, Flanders, Belgium ... 97 150.908249\n", "98 98 Antwerp, Flanders, Belgium ... 98 148.589386\n", "99 99 Antwerp, Flanders, Belgium ... 99 148.562866\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 4b3oei6w \n", "\n", "wandb: Agent Starting Run: 5vlib7vq with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.01\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: 5vlib7vq\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/5vlib7vq
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/3rfyc638
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "11.736990986595629\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.3452056172528126\n", "The running loss is:\n", "24.813077855855227\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "0.7297964075251537\n", "The running loss is:\n", "28.300584806129336\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.8323701413567451\n", "The running loss is:\n", "10.4155727809557\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.30634037591046176\n", "The running loss is:\n", "11.473218071194424\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.33744759032924776\n", "The running loss is:\n", "8.870212249457836\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.2608885955722893\n", "The running loss is:\n", "8.28752523707226\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.24375074226683116\n", "The running loss is:\n", "7.280146740449709\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.2141219629544032\n", "The running loss is:\n", "12.525580656249076\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.3683994310661493\n", "The running loss is:\n", "19.792637944687158\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.5821364101378576\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 102.806030\n", "91 91 Antwerp, Flanders, Belgium ... 91 71.026802\n", "92 92 Antwerp, Flanders, Belgium ... 92 56.383720\n", "93 93 Antwerp, Flanders, Belgium ... 93 51.088078\n", "94 94 Antwerp, Flanders, Belgium ... 94 50.891293\n", "95 95 Antwerp, Flanders, Belgium ... 95 53.475834\n", "96 96 Antwerp, Flanders, Belgium ... 96 57.577534\n", "97 97 Antwerp, Flanders, Belgium ... 97 43.663624\n", "98 98 Antwerp, Flanders, Belgium ... 98 38.765736\n", "99 99 Antwerp, Flanders, Belgium ... 99 38.785915\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 5vlib7vq \n", "\n", "wandb: Agent Starting Run: qkoip9zi with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.01\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: qkoip9zi\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/qkoip9zi
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/28v9nx9o
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "20.978312958031893\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.6170092046479968\n", "The running loss is:\n", "39.80216880142689\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "1.170652023571379\n", "The running loss is:\n", "24.19058443978429\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.7114877776407144\n", "The running loss is:\n", "20.301503472030163\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.5971030432950047\n", "The running loss is:\n", "18.146781336516142\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.53372886283871\n", "The running loss is:\n", "20.873035572469234\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.6139128109549775\n", "The running loss is:\n", "17.74494293704629\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.5219100863837144\n", "The running loss is:\n", "18.19329888187349\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.5350970259374556\n", "The running loss is:\n", "14.98734188452363\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.4408041730742244\n", "The running loss is:\n", "17.561892744153738\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.5165262571809923\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 57.193180\n", "91 91 Antwerp, Flanders, Belgium ... 91 23.370998\n", "92 92 Antwerp, Flanders, Belgium ... 92 14.213340\n", "93 93 Antwerp, Flanders, Belgium ... 93 13.168525\n", "94 94 Antwerp, Flanders, Belgium ... 94 14.792251\n", "95 95 Antwerp, Flanders, Belgium ... 95 17.293728\n", "96 96 Antwerp, Flanders, Belgium ... 96 20.083920\n", "97 97 Antwerp, Flanders, Belgium ... 97 9.197349\n", "98 98 Antwerp, Flanders, Belgium ... 98 7.583842\n", "99 99 Antwerp, Flanders, Belgium ... 99 9.020511\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: qkoip9zi \n", "\n", "wandb: Agent Starting Run: vrtzj2tq with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 1\n", "\tlr: 0.01\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: vrtzj2tq\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/vrtzj2tq
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 1, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 1, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 1, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1uqyugnb
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.944805666804314\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.6649941111152823\n", "The running loss is:\n", "39.04568848013878\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "1.1832026812163265\n", "The running loss is:\n", "22.351303592324257\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6773122300704321\n", "The running loss is:\n", "24.924195021390915\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.7552786370118459\n", "The running loss is:\n", "17.094573065638542\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5180173656254103\n", "The running loss is:\n", "22.243711099028587\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6740518514857148\n", "The running loss is:\n", "14.625111401081085\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.4431851939721541\n", "The running loss is:\n", "18.527046501636505\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.5614256515647426\n", "The running loss is:\n", "13.53986869752407\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.41029905144012335\n", "The running loss is:\n", "13.372476078569889\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.4052265478354512\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 1, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 155.923538\n", "91 91 Antwerp, Flanders, Belgium ... 91 151.458740\n", "92 92 Antwerp, Flanders, Belgium ... 92 150.204483\n", "93 93 Antwerp, Flanders, Belgium ... 93 150.787048\n", "94 94 Antwerp, Flanders, Belgium ... 94 152.420502\n", "95 95 Antwerp, Flanders, Belgium ... 95 154.655197\n", "96 96 Antwerp, Flanders, Belgium ... 96 157.233871\n", "97 97 Antwerp, Flanders, Belgium ... 97 150.908249\n", "98 98 Antwerp, Flanders, Belgium ... 98 148.589386\n", "99 99 Antwerp, Flanders, Belgium ... 99 148.562866\n", "\n", "[11 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: vrtzj2tq \n", "\n", "wandb: Agent Starting Run: 0n6zfk4d with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.001\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: 0n6zfk4d\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/0n6zfk4d
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1whznqjw
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "7.926211021491326\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.2331238535732743\n", "The running loss is:\n", "45.07759717758745\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "1.3258116816937484\n", "The running loss is:\n", "17.52304550539702\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.5153836913352066\n", "The running loss is:\n", "19.223857637960464\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.5654075775870725\n", "The running loss is:\n", "17.085357565616505\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.5025105166357795\n", "The running loss is:\n", "26.338379439665005\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.7746582188136766\n", "The running loss is:\n", "12.023202999029309\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.3536236176185091\n", "The running loss is:\n", "10.84097226295853\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.3188521253811332\n", "The running loss is:\n", "9.669757608440705\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.28440463554237366\n", "The running loss is:\n", "7.7529250888037495\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.22802720849422792\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 157.648819\n", "91 91 Antwerp, Flanders, Belgium ... 91 163.518372\n", "92 92 Antwerp, Flanders, Belgium ... 92 164.045349\n", "93 93 Antwerp, Flanders, Belgium ... 93 172.106415\n", "94 94 Antwerp, Flanders, Belgium ... 94 178.464401\n", "95 95 Antwerp, Flanders, Belgium ... 95 189.383789\n", "96 96 Antwerp, Flanders, Belgium ... 96 200.001709\n", "97 97 Antwerp, Flanders, Belgium ... 97 199.110626\n", "98 98 Antwerp, Flanders, Belgium ... 98 195.757309\n", "99 99 Antwerp, Flanders, Belgium ... 99 198.477951\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 0n6zfk4d \n", "\n", "wandb: Agent Starting Run: rukyahky with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.001\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: rukyahky\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/rukyahky
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/qffmxv23
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.949298333376646\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.665130252526565\n", "The running loss is:\n", "28.23917729780078\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.8557326453879024\n", "The running loss is:\n", "20.276927853934467\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6144523592101354\n", "The running loss is:\n", "22.451173399109393\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.6803385878517998\n", "The running loss is:\n", "18.38559128716588\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5571391299141176\n", "The running loss is:\n", "22.97731645638123\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6962823168600373\n", "The running loss is:\n", "15.07943250075914\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.45695250002300425\n", "The running loss is:\n", "19.21207500435412\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.582184091041034\n", "The running loss is:\n", "15.169635845348239\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.4596859347075224\n", "The running loss is:\n", "18.277867312077433\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.5538747670326495\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 85.166397\n", "91 91 Antwerp, Flanders, Belgium ... 91 92.528320\n", "92 92 Antwerp, Flanders, Belgium ... 92 80.694923\n", "93 93 Antwerp, Flanders, Belgium ... 93 80.634438\n", "94 94 Antwerp, Flanders, Belgium ... 94 77.969078\n", "95 95 Antwerp, Flanders, Belgium ... 95 78.311951\n", "96 96 Antwerp, Flanders, Belgium ... 96 78.250671\n", "97 97 Antwerp, Flanders, Belgium ... 97 72.981339\n", "98 98 Antwerp, Flanders, Belgium ... 98 72.524170\n", "99 99 Antwerp, Flanders, Belgium ... 99 71.966652\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: rukyahky \n", "\n", "wandb: Agent Starting Run: vspjwn1i with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.001\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: vspjwn1i\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/vspjwn1i
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/veptivl8
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.00543548539281\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.6365283480422064\n", "The running loss is:\n", "31.75407860055566\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.9622448060774442\n", "The running loss is:\n", "21.44613552838564\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6498828947995648\n", "The running loss is:\n", "24.966893255710602\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.7565725229003213\n", "The running loss is:\n", "19.329234207049012\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5857343699105761\n", "The running loss is:\n", "22.27110578864813\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6748819935953978\n", "The running loss is:\n", "17.701665556058288\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.5364141077593421\n", "The running loss is:\n", "25.693841315805912\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.7786012519941186\n", "The running loss is:\n", "15.266029976308346\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.4626069689790408\n", "The running loss is:\n", "16.428095784038305\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.4978210843647971\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 164.231934\n", "91 91 Antwerp, Flanders, Belgium ... 91 173.492966\n", "92 92 Antwerp, Flanders, Belgium ... 92 176.606049\n", "93 93 Antwerp, Flanders, Belgium ... 93 182.805557\n", "94 94 Antwerp, Flanders, Belgium ... 94 187.054810\n", "95 95 Antwerp, Flanders, Belgium ... 95 192.212372\n", "96 96 Antwerp, Flanders, Belgium ... 96 196.656876\n", "97 97 Antwerp, Flanders, Belgium ... 97 206.050522\n", "98 98 Antwerp, Flanders, Belgium ... 98 200.513489\n", "99 99 Antwerp, Flanders, Belgium ... 99 204.270187\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: vspjwn1i \n", "\n", "wandb: Agent Starting Run: skf5u077 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.002\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: skf5u077\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/skf5u077
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1w88celb
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "7.926211021491326\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.2331238535732743\n", "The running loss is:\n", "45.07759717758745\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "1.3258116816937484\n", "The running loss is:\n", "17.52304550539702\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.5153836913352066\n", "The running loss is:\n", "19.223857637960464\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.5654075775870725\n", "The running loss is:\n", "17.085357565616505\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.5025105166357795\n", "The running loss is:\n", "26.338379439665005\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.7746582188136766\n", "The running loss is:\n", "12.023202999029309\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.3536236176185091\n", "The running loss is:\n", "10.84097226295853\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.3188521253811332\n", "The running loss is:\n", "9.669757608440705\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.28440463554237366\n", "The running loss is:\n", "7.7529250888037495\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.22802720849422792\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 157.648819\n", "91 91 Antwerp, Flanders, Belgium ... 91 163.518372\n", "92 92 Antwerp, Flanders, Belgium ... 92 164.045349\n", "93 93 Antwerp, Flanders, Belgium ... 93 172.106415\n", "94 94 Antwerp, Flanders, Belgium ... 94 178.464401\n", "95 95 Antwerp, Flanders, Belgium ... 95 189.383789\n", "96 96 Antwerp, Flanders, Belgium ... 96 200.001709\n", "97 97 Antwerp, Flanders, Belgium ... 97 199.110626\n", "98 98 Antwerp, Flanders, Belgium ... 98 195.757309\n", "99 99 Antwerp, Flanders, Belgium ... 99 198.477951\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: skf5u077 \n", "\n", "wandb: Agent Starting Run: kwo2n9nm with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.002\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: kwo2n9nm\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/kwo2n9nm
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/2gzzn1tl
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.949298333376646\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.665130252526565\n", "The running loss is:\n", "28.23917729780078\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.8557326453879024\n", "The running loss is:\n", "20.276927853934467\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6144523592101354\n", "The running loss is:\n", "22.451173399109393\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.6803385878517998\n", "The running loss is:\n", "18.38559128716588\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5571391299141176\n", "The running loss is:\n", "22.97731645638123\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6962823168600373\n", "The running loss is:\n", "15.07943250075914\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.45695250002300425\n", "The running loss is:\n", "19.21207500435412\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.582184091041034\n", "The running loss is:\n", "15.169635845348239\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.4596859347075224\n", "The running loss is:\n", "18.277867312077433\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.5538747670326495\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 85.166397\n", "91 91 Antwerp, Flanders, Belgium ... 91 92.528320\n", "92 92 Antwerp, Flanders, Belgium ... 92 80.694923\n", "93 93 Antwerp, Flanders, Belgium ... 93 80.634438\n", "94 94 Antwerp, Flanders, Belgium ... 94 77.969078\n", "95 95 Antwerp, Flanders, Belgium ... 95 78.311951\n", "96 96 Antwerp, Flanders, Belgium ... 96 78.250671\n", "97 97 Antwerp, Flanders, Belgium ... 97 72.981339\n", "98 98 Antwerp, Flanders, Belgium ... 98 72.524170\n", "99 99 Antwerp, Flanders, Belgium ... 99 71.966652\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: kwo2n9nm \n", "\n", "wandb: Agent Starting Run: 27c31yeh with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.002\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: 27c31yeh\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/27c31yeh
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/ah1ai3ea
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.00543548539281\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.6365283480422064\n", "The running loss is:\n", "31.75407860055566\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.9622448060774442\n", "The running loss is:\n", "21.44613552838564\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6498828947995648\n", "The running loss is:\n", "24.966893255710602\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.7565725229003213\n", "The running loss is:\n", "19.329234207049012\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5857343699105761\n", "The running loss is:\n", "22.27110578864813\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6748819935953978\n", "The running loss is:\n", "17.701665556058288\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.5364141077593421\n", "The running loss is:\n", "25.693841315805912\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.7786012519941186\n", "The running loss is:\n", "15.266029976308346\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.4626069689790408\n", "The running loss is:\n", "16.428095784038305\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.4978210843647971\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 164.231934\n", "91 91 Antwerp, Flanders, Belgium ... 91 173.492966\n", "92 92 Antwerp, Flanders, Belgium ... 92 176.606049\n", "93 93 Antwerp, Flanders, Belgium ... 93 182.805557\n", "94 94 Antwerp, Flanders, Belgium ... 94 187.054810\n", "95 95 Antwerp, Flanders, Belgium ... 95 192.212372\n", "96 96 Antwerp, Flanders, Belgium ... 96 196.656876\n", "97 97 Antwerp, Flanders, Belgium ... 97 206.050522\n", "98 98 Antwerp, Flanders, Belgium ... 98 200.513489\n", "99 99 Antwerp, Flanders, Belgium ... 99 204.270187\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 27c31yeh \n", "\n", "wandb: Agent Starting Run: icihioxa with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.004\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: icihioxa\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/icihioxa
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/kvi21av5
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "7.926211021491326\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.2331238535732743\n", "The running loss is:\n", "45.07759717758745\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "1.3258116816937484\n", "The running loss is:\n", "17.52304550539702\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.5153836913352066\n", "The running loss is:\n", "19.223857637960464\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.5654075775870725\n", "The running loss is:\n", "17.085357565616505\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.5025105166357795\n", "The running loss is:\n", "26.338379439665005\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.7746582188136766\n", "The running loss is:\n", "12.023202999029309\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.3536236176185091\n", "The running loss is:\n", "10.84097226295853\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.3188521253811332\n", "The running loss is:\n", "9.669757608440705\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.28440463554237366\n", "The running loss is:\n", "7.7529250888037495\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.22802720849422792\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 157.648819\n", "91 91 Antwerp, Flanders, Belgium ... 91 163.518372\n", "92 92 Antwerp, Flanders, Belgium ... 92 164.045349\n", "93 93 Antwerp, Flanders, Belgium ... 93 172.106415\n", "94 94 Antwerp, Flanders, Belgium ... 94 178.464401\n", "95 95 Antwerp, Flanders, Belgium ... 95 189.383789\n", "96 96 Antwerp, Flanders, Belgium ... 96 200.001709\n", "97 97 Antwerp, Flanders, Belgium ... 97 199.110626\n", "98 98 Antwerp, Flanders, Belgium ... 98 195.757309\n", "99 99 Antwerp, Flanders, Belgium ... 99 198.477951\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: icihioxa \n", "\n", "wandb: Agent Starting Run: jzz869u5 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.004\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: jzz869u5\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/jzz869u5
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/163t7mhf
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.949298333376646\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.665130252526565\n", "The running loss is:\n", "28.23917729780078\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.8557326453879024\n", "The running loss is:\n", "20.276927853934467\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6144523592101354\n", "The running loss is:\n", "22.451173399109393\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.6803385878517998\n", "The running loss is:\n", "18.38559128716588\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5571391299141176\n", "The running loss is:\n", "22.97731645638123\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6962823168600373\n", "The running loss is:\n", "15.07943250075914\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.45695250002300425\n", "The running loss is:\n", "19.21207500435412\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.582184091041034\n", "The running loss is:\n", "15.169635845348239\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.4596859347075224\n", "The running loss is:\n", "18.277867312077433\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.5538747670326495\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 85.166397\n", "91 91 Antwerp, Flanders, Belgium ... 91 92.528320\n", "92 92 Antwerp, Flanders, Belgium ... 92 80.694923\n", "93 93 Antwerp, Flanders, Belgium ... 93 80.634438\n", "94 94 Antwerp, Flanders, Belgium ... 94 77.969078\n", "95 95 Antwerp, Flanders, Belgium ... 95 78.311951\n", "96 96 Antwerp, Flanders, Belgium ... 96 78.250671\n", "97 97 Antwerp, Flanders, Belgium ... 97 72.981339\n", "98 98 Antwerp, Flanders, Belgium ... 98 72.524170\n", "99 99 Antwerp, Flanders, Belgium ... 99 71.966652\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: jzz869u5 \n", "\n", "wandb: Agent Starting Run: 4vrhs88h with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.004\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: 4vrhs88h\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/4vrhs88h
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/2yg6m7n6
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.00543548539281\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.6365283480422064\n", "The running loss is:\n", "31.75407860055566\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.9622448060774442\n", "The running loss is:\n", "21.44613552838564\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6498828947995648\n", "The running loss is:\n", "24.966893255710602\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.7565725229003213\n", "The running loss is:\n", "19.329234207049012\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5857343699105761\n", "The running loss is:\n", "22.27110578864813\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6748819935953978\n", "The running loss is:\n", "17.701665556058288\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.5364141077593421\n", "The running loss is:\n", "25.693841315805912\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.7786012519941186\n", "The running loss is:\n", "15.266029976308346\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.4626069689790408\n", "The running loss is:\n", "16.428095784038305\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.4978210843647971\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 164.231934\n", "91 91 Antwerp, Flanders, Belgium ... 91 173.492966\n", "92 92 Antwerp, Flanders, Belgium ... 92 176.606049\n", "93 93 Antwerp, Flanders, Belgium ... 93 182.805557\n", "94 94 Antwerp, Flanders, Belgium ... 94 187.054810\n", "95 95 Antwerp, Flanders, Belgium ... 95 192.212372\n", "96 96 Antwerp, Flanders, Belgium ... 96 196.656876\n", "97 97 Antwerp, Flanders, Belgium ... 97 206.050522\n", "98 98 Antwerp, Flanders, Belgium ... 98 200.513489\n", "99 99 Antwerp, Flanders, Belgium ... 99 204.270187\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 4vrhs88h \n", "\n", "wandb: Agent Starting Run: r2mnfi6q with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.01\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: r2mnfi6q\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/r2mnfi6q
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1q44113p
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "7.926211021491326\n", "The number of items in train is: \n", "34\n", "The loss for epoch 0\n", "0.2331238535732743\n", "The running loss is:\n", "45.07759717758745\n", "The number of items in train is: \n", "34\n", "The loss for epoch 1\n", "1.3258116816937484\n", "The running loss is:\n", "17.52304550539702\n", "The number of items in train is: \n", "34\n", "The loss for epoch 2\n", "0.5153836913352066\n", "The running loss is:\n", "19.223857637960464\n", "The number of items in train is: \n", "34\n", "The loss for epoch 3\n", "0.5654075775870725\n", "The running loss is:\n", "17.085357565616505\n", "The number of items in train is: \n", "34\n", "The loss for epoch 4\n", "0.5025105166357795\n", "The running loss is:\n", "26.338379439665005\n", "The number of items in train is: \n", "34\n", "The loss for epoch 5\n", "0.7746582188136766\n", "The running loss is:\n", "12.023202999029309\n", "The number of items in train is: \n", "34\n", "The loss for epoch 6\n", "0.3536236176185091\n", "The running loss is:\n", "10.84097226295853\n", "The number of items in train is: \n", "34\n", "The loss for epoch 7\n", "0.3188521253811332\n", "The running loss is:\n", "9.669757608440705\n", "The number of items in train is: \n", "34\n", "The loss for epoch 8\n", "0.28440463554237366\n", "The running loss is:\n", "7.7529250888037495\n", "The number of items in train is: \n", "34\n", "The loss for epoch 9\n", "0.22802720849422792\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 157.648819\n", "91 91 Antwerp, Flanders, Belgium ... 91 163.518372\n", "92 92 Antwerp, Flanders, Belgium ... 92 164.045349\n", "93 93 Antwerp, Flanders, Belgium ... 93 172.106415\n", "94 94 Antwerp, Flanders, Belgium ... 94 178.464401\n", "95 95 Antwerp, Flanders, Belgium ... 95 189.383789\n", "96 96 Antwerp, Flanders, Belgium ... 96 200.001709\n", "97 97 Antwerp, Flanders, Belgium ... 97 199.110626\n", "98 98 Antwerp, Flanders, Belgium ... 98 195.757309\n", "99 99 Antwerp, Flanders, Belgium ... 99 198.477951\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: r2mnfi6q \n", "\n", "wandb: Agent Starting Run: 6jzdmv5b with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.01\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: 6jzdmv5b\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/6jzdmv5b
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1v5fpitr
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.949298333376646\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.665130252526565\n", "The running loss is:\n", "28.23917729780078\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.8557326453879024\n", "The running loss is:\n", "20.276927853934467\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6144523592101354\n", "The running loss is:\n", "22.451173399109393\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.6803385878517998\n", "The running loss is:\n", "18.38559128716588\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5571391299141176\n", "The running loss is:\n", "22.97731645638123\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6962823168600373\n", "The running loss is:\n", "15.07943250075914\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.45695250002300425\n", "The running loss is:\n", "19.21207500435412\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.582184091041034\n", "The running loss is:\n", "15.169635845348239\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.4596859347075224\n", "The running loss is:\n", "18.277867312077433\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.5538747670326495\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 85.166397\n", "91 91 Antwerp, Flanders, Belgium ... 91 92.528320\n", "92 92 Antwerp, Flanders, Belgium ... 92 80.694923\n", "93 93 Antwerp, Flanders, Belgium ... 93 80.634438\n", "94 94 Antwerp, Flanders, Belgium ... 94 77.969078\n", "95 95 Antwerp, Flanders, Belgium ... 95 78.311951\n", "96 96 Antwerp, Flanders, Belgium ... 96 78.250671\n", "97 97 Antwerp, Flanders, Belgium ... 97 72.981339\n", "98 98 Antwerp, Flanders, Belgium ... 98 72.524170\n", "99 99 Antwerp, Flanders, Belgium ... 99 71.966652\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 6jzdmv5b \n", "\n", "wandb: Agent Starting Run: aq47jf5a with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 2\n", "\tlr: 0.01\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: aq47jf5a\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/aq47jf5a
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 2, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 2, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 2, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/ugw55m4u
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "21.00543548539281\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.6365283480422064\n", "The running loss is:\n", "31.75407860055566\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.9622448060774442\n", "The running loss is:\n", "21.44613552838564\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.6498828947995648\n", "The running loss is:\n", "24.966893255710602\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.7565725229003213\n", "The running loss is:\n", "19.329234207049012\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.5857343699105761\n", "The running loss is:\n", "22.27110578864813\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6748819935953978\n", "The running loss is:\n", "17.701665556058288\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.5364141077593421\n", "The running loss is:\n", "25.693841315805912\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.7786012519941186\n", "The running loss is:\n", "15.266029976308346\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.4626069689790408\n", "The running loss is:\n", "16.428095784038305\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.4978210843647971\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 2, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 164.231934\n", "91 91 Antwerp, Flanders, Belgium ... 91 173.492966\n", "92 92 Antwerp, Flanders, Belgium ... 92 176.606049\n", "93 93 Antwerp, Flanders, Belgium ... 93 182.805557\n", "94 94 Antwerp, Flanders, Belgium ... 94 187.054810\n", "95 95 Antwerp, Flanders, Belgium ... 95 192.212372\n", "96 96 Antwerp, Flanders, Belgium ... 96 196.656876\n", "97 97 Antwerp, Flanders, Belgium ... 97 206.050522\n", "98 98 Antwerp, Flanders, Belgium ... 98 200.513489\n", "99 99 Antwerp, Flanders, Belgium ... 99 204.270187\n", "\n", "[12 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: aq47jf5a \n", "\n", "wandb: Agent Starting Run: oz15bs5z with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.001\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: oz15bs5z\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/oz15bs5z
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/2c0nsw1y
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "10.025347635382786\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.30379841319341777\n", "The running loss is:\n", "34.230189617257565\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "1.0372784732502291\n", "The running loss is:\n", "13.429732192773372\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.4069615815991931\n", "The running loss is:\n", "26.592998671345413\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.8058484445862246\n", "The running loss is:\n", "12.567596087465063\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.3808362450746989\n", "The running loss is:\n", "20.822010218165815\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6309700066110853\n", "The running loss is:\n", "7.111795865843305\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.2155089656316153\n", "The running loss is:\n", "11.406340244342573\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.34564667407098704\n", "The running loss is:\n", "5.787523627048358\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.17537950384995024\n", "The running loss is:\n", "8.48353370220866\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.2570767788548079\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 136.612915\n", "91 91 Antwerp, Flanders, Belgium ... 91 132.998718\n", "92 92 Antwerp, Flanders, Belgium ... 92 135.038666\n", "93 93 Antwerp, Flanders, Belgium ... 93 122.781960\n", "94 94 Antwerp, Flanders, Belgium ... 94 122.583794\n", "95 95 Antwerp, Flanders, Belgium ... 95 123.441513\n", "96 96 Antwerp, Flanders, Belgium ... 96 120.397736\n", "97 97 Antwerp, Flanders, Belgium ... 97 111.034378\n", "98 98 Antwerp, Flanders, Belgium ... 98 106.719803\n", "99 99 Antwerp, Flanders, Belgium ... 99 104.161469\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: oz15bs5z \n", "\n", "wandb: Agent Starting Run: 8771p5cp with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.001\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: 8771p5cp\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/8771p5cp
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1hub5ozj
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "28.064961809664965\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.8504533881716656\n", "The running loss is:\n", "29.085500955581665\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.881378816835808\n", "The running loss is:\n", "26.46319116279483\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.8019148837210555\n", "The running loss is:\n", "27.79352070391178\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.8422279001185389\n", "The running loss is:\n", "37.66246119979769\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "1.1412867030241725\n", "The running loss is:\n", "23.635434065014124\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.7162252746973977\n", "The running loss is:\n", "22.120809108018875\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.6703275487278447\n", "The running loss is:\n", "20.774387892335653\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.6295269058283531\n", "The running loss is:\n", "17.475550305098295\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.5295621304575241\n", "The running loss is:\n", "17.86318363249302\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.5413085949240308\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 149.282455\n", "91 91 Antwerp, Flanders, Belgium ... 91 184.569229\n", "92 92 Antwerp, Flanders, Belgium ... 92 186.867966\n", "93 93 Antwerp, Flanders, Belgium ... 93 188.032913\n", "94 94 Antwerp, Flanders, Belgium ... 94 202.545227\n", "95 95 Antwerp, Flanders, Belgium ... 95 206.003845\n", "96 96 Antwerp, Flanders, Belgium ... 96 210.492386\n", "97 97 Antwerp, Flanders, Belgium ... 97 248.335281\n", "98 98 Antwerp, Flanders, Belgium ... 98 260.891876\n", "99 99 Antwerp, Flanders, Belgium ... 99 248.564087\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 8771p5cp \n", "\n", "wandb: Agent Starting Run: 7ljdlr01 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.001\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: 7ljdlr01\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/7ljdlr01
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/39r7o8f0
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "17.937730296049267\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.5605540717515396\n", "The running loss is:\n", "35.50285805051681\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "1.1094643140786502\n", "The running loss is:\n", "17.564409082289785\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.5488877838215558\n", "The running loss is:\n", "23.59525622660294\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.7373517570813419\n", "The running loss is:\n", "15.578202691394836\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.4868188341060886\n", "The running loss is:\n", "24.60211830935441\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7688161971673253\n", "The running loss is:\n", "14.085245068301447\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.4401639083844202\n", "The running loss is:\n", "12.162914328742772\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.38009107277321164\n", "The running loss is:\n", "12.102874213131145\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.37821481916034827\n", "The running loss is:\n", "11.44598395540379\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.35768699860636843\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 132.449570\n", "91 91 Antwerp, Flanders, Belgium ... 91 163.160934\n", "92 92 Antwerp, Flanders, Belgium ... 92 169.112091\n", "93 93 Antwerp, Flanders, Belgium ... 93 168.411591\n", "94 94 Antwerp, Flanders, Belgium ... 94 187.403351\n", "95 95 Antwerp, Flanders, Belgium ... 95 200.974945\n", "96 96 Antwerp, Flanders, Belgium ... 96 218.312180\n", "97 97 Antwerp, Flanders, Belgium ... 97 233.340790\n", "98 98 Antwerp, Flanders, Belgium ... 98 246.575729\n", "99 99 Antwerp, Flanders, Belgium ... 99 250.199844\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 7ljdlr01 \n", "\n", "wandb: Agent Starting Run: ybqj85zn with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.002\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: ybqj85zn\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/ybqj85zn
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1y9l4xa8
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "10.025347635382786\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.30379841319341777\n", "The running loss is:\n", "34.230189617257565\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "1.0372784732502291\n", "The running loss is:\n", "13.429732192773372\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.4069615815991931\n", "The running loss is:\n", "26.592998671345413\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.8058484445862246\n", "The running loss is:\n", "12.567596087465063\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.3808362450746989\n", "The running loss is:\n", "20.822010218165815\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6309700066110853\n", "The running loss is:\n", "7.111795865843305\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.2155089656316153\n", "The running loss is:\n", "11.406340244342573\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.34564667407098704\n", "The running loss is:\n", "5.787523627048358\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.17537950384995024\n", "The running loss is:\n", "8.48353370220866\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.2570767788548079\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 136.612915\n", "91 91 Antwerp, Flanders, Belgium ... 91 132.998718\n", "92 92 Antwerp, Flanders, Belgium ... 92 135.038666\n", "93 93 Antwerp, Flanders, Belgium ... 93 122.781960\n", "94 94 Antwerp, Flanders, Belgium ... 94 122.583794\n", "95 95 Antwerp, Flanders, Belgium ... 95 123.441513\n", "96 96 Antwerp, Flanders, Belgium ... 96 120.397736\n", "97 97 Antwerp, Flanders, Belgium ... 97 111.034378\n", "98 98 Antwerp, Flanders, Belgium ... 98 106.719803\n", "99 99 Antwerp, Flanders, Belgium ... 99 104.161469\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: ybqj85zn \n", "\n", "wandb: Agent Starting Run: 20kzhohq with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.002\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: 20kzhohq\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/20kzhohq
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/30j9yxvg
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "28.064961809664965\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.8504533881716656\n", "The running loss is:\n", "29.085500955581665\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.881378816835808\n", "The running loss is:\n", "26.46319116279483\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.8019148837210555\n", "The running loss is:\n", "27.79352070391178\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.8422279001185389\n", "The running loss is:\n", "37.66246119979769\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "1.1412867030241725\n", "The running loss is:\n", "23.635434065014124\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.7162252746973977\n", "The running loss is:\n", "22.120809108018875\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.6703275487278447\n", "The running loss is:\n", "20.774387892335653\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.6295269058283531\n", "The running loss is:\n", "17.475550305098295\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.5295621304575241\n", "The running loss is:\n", "17.86318363249302\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.5413085949240308\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 149.282455\n", "91 91 Antwerp, Flanders, Belgium ... 91 184.569229\n", "92 92 Antwerp, Flanders, Belgium ... 92 186.867966\n", "93 93 Antwerp, Flanders, Belgium ... 93 188.032913\n", "94 94 Antwerp, Flanders, Belgium ... 94 202.545227\n", "95 95 Antwerp, Flanders, Belgium ... 95 206.003845\n", "96 96 Antwerp, Flanders, Belgium ... 96 210.492386\n", "97 97 Antwerp, Flanders, Belgium ... 97 248.335281\n", "98 98 Antwerp, Flanders, Belgium ... 98 260.891876\n", "99 99 Antwerp, Flanders, Belgium ... 99 248.564087\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 20kzhohq \n", "\n", "wandb: Agent Starting Run: c01gud1e with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.002\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: c01gud1e\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/c01gud1e
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/223c0jqe
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "17.937730296049267\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.5605540717515396\n", "The running loss is:\n", "35.50285805051681\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "1.1094643140786502\n", "The running loss is:\n", "17.564409082289785\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.5488877838215558\n", "The running loss is:\n", "23.59525622660294\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.7373517570813419\n", "The running loss is:\n", "15.578202691394836\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.4868188341060886\n", "The running loss is:\n", "24.60211830935441\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7688161971673253\n", "The running loss is:\n", "14.085245068301447\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.4401639083844202\n", "The running loss is:\n", "12.162914328742772\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.38009107277321164\n", "The running loss is:\n", "12.102874213131145\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.37821481916034827\n", "The running loss is:\n", "11.44598395540379\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.35768699860636843\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 132.449570\n", "91 91 Antwerp, Flanders, Belgium ... 91 163.160934\n", "92 92 Antwerp, Flanders, Belgium ... 92 169.112091\n", "93 93 Antwerp, Flanders, Belgium ... 93 168.411591\n", "94 94 Antwerp, Flanders, Belgium ... 94 187.403351\n", "95 95 Antwerp, Flanders, Belgium ... 95 200.974945\n", "96 96 Antwerp, Flanders, Belgium ... 96 218.312180\n", "97 97 Antwerp, Flanders, Belgium ... 97 233.340790\n", "98 98 Antwerp, Flanders, Belgium ... 98 246.575729\n", "99 99 Antwerp, Flanders, Belgium ... 99 250.199844\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: c01gud1e \n", "\n", "wandb: Agent Starting Run: t4sfrea9 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.004\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: t4sfrea9\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/t4sfrea9
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1z12dyyx
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "10.025347635382786\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.30379841319341777\n", "The running loss is:\n", "34.230189617257565\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "1.0372784732502291\n", "The running loss is:\n", "13.429732192773372\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.4069615815991931\n", "The running loss is:\n", "26.592998671345413\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.8058484445862246\n", "The running loss is:\n", "12.567596087465063\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.3808362450746989\n", "The running loss is:\n", "20.822010218165815\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6309700066110853\n", "The running loss is:\n", "7.111795865843305\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.2155089656316153\n", "The running loss is:\n", "11.406340244342573\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.34564667407098704\n", "The running loss is:\n", "5.787523627048358\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.17537950384995024\n", "The running loss is:\n", "8.48353370220866\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.2570767788548079\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 136.612915\n", "91 91 Antwerp, Flanders, Belgium ... 91 132.998718\n", "92 92 Antwerp, Flanders, Belgium ... 92 135.038666\n", "93 93 Antwerp, Flanders, Belgium ... 93 122.781960\n", "94 94 Antwerp, Flanders, Belgium ... 94 122.583794\n", "95 95 Antwerp, Flanders, Belgium ... 95 123.441513\n", "96 96 Antwerp, Flanders, Belgium ... 96 120.397736\n", "97 97 Antwerp, Flanders, Belgium ... 97 111.034378\n", "98 98 Antwerp, Flanders, Belgium ... 98 106.719803\n", "99 99 Antwerp, Flanders, Belgium ... 99 104.161469\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: t4sfrea9 \n", "\n", "wandb: Agent Starting Run: qikm90u1 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.004\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: qikm90u1\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/qikm90u1
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1x7mulrm
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "28.064961809664965\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.8504533881716656\n", "The running loss is:\n", "29.085500955581665\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.881378816835808\n", "The running loss is:\n", "26.46319116279483\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.8019148837210555\n", "The running loss is:\n", "27.79352070391178\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.8422279001185389\n", "The running loss is:\n", "37.66246119979769\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "1.1412867030241725\n", "The running loss is:\n", "23.635434065014124\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.7162252746973977\n", "The running loss is:\n", "22.120809108018875\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.6703275487278447\n", "The running loss is:\n", "20.774387892335653\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.6295269058283531\n", "The running loss is:\n", "17.475550305098295\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.5295621304575241\n", "The running loss is:\n", "17.86318363249302\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.5413085949240308\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 149.282455\n", "91 91 Antwerp, Flanders, Belgium ... 91 184.569229\n", "92 92 Antwerp, Flanders, Belgium ... 92 186.867966\n", "93 93 Antwerp, Flanders, Belgium ... 93 188.032913\n", "94 94 Antwerp, Flanders, Belgium ... 94 202.545227\n", "95 95 Antwerp, Flanders, Belgium ... 95 206.003845\n", "96 96 Antwerp, Flanders, Belgium ... 96 210.492386\n", "97 97 Antwerp, Flanders, Belgium ... 97 248.335281\n", "98 98 Antwerp, Flanders, Belgium ... 98 260.891876\n", "99 99 Antwerp, Flanders, Belgium ... 99 248.564087\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: qikm90u1 \n", "\n", "wandb: Agent Starting Run: pj34i53z with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.004\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: pj34i53z\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/pj34i53z
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1espsqb2
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "17.937730296049267\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.5605540717515396\n", "The running loss is:\n", "35.50285805051681\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "1.1094643140786502\n", "The running loss is:\n", "17.564409082289785\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.5488877838215558\n", "The running loss is:\n", "23.59525622660294\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.7373517570813419\n", "The running loss is:\n", "15.578202691394836\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.4868188341060886\n", "The running loss is:\n", "24.60211830935441\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7688161971673253\n", "The running loss is:\n", "14.085245068301447\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.4401639083844202\n", "The running loss is:\n", "12.162914328742772\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.38009107277321164\n", "The running loss is:\n", "12.102874213131145\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.37821481916034827\n", "The running loss is:\n", "11.44598395540379\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.35768699860636843\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 132.449570\n", "91 91 Antwerp, Flanders, Belgium ... 91 163.160934\n", "92 92 Antwerp, Flanders, Belgium ... 92 169.112091\n", "93 93 Antwerp, Flanders, Belgium ... 93 168.411591\n", "94 94 Antwerp, Flanders, Belgium ... 94 187.403351\n", "95 95 Antwerp, Flanders, Belgium ... 95 200.974945\n", "96 96 Antwerp, Flanders, Belgium ... 96 218.312180\n", "97 97 Antwerp, Flanders, Belgium ... 97 233.340790\n", "98 98 Antwerp, Flanders, Belgium ... 98 246.575729\n", "99 99 Antwerp, Flanders, Belgium ... 99 250.199844\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: pj34i53z \n", "\n", "wandb: Agent Starting Run: 331k3vz1 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.01\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: 331k3vz1\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/331k3vz1
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1ogqls97
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "10.025347635382786\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.30379841319341777\n", "The running loss is:\n", "34.230189617257565\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "1.0372784732502291\n", "The running loss is:\n", "13.429732192773372\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.4069615815991931\n", "The running loss is:\n", "26.592998671345413\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.8058484445862246\n", "The running loss is:\n", "12.567596087465063\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.3808362450746989\n", "The running loss is:\n", "20.822010218165815\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.6309700066110853\n", "The running loss is:\n", "7.111795865843305\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.2155089656316153\n", "The running loss is:\n", "11.406340244342573\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.34564667407098704\n", "The running loss is:\n", "5.787523627048358\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.17537950384995024\n", "The running loss is:\n", "8.48353370220866\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.2570767788548079\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 136.612915\n", "91 91 Antwerp, Flanders, Belgium ... 91 132.998718\n", "92 92 Antwerp, Flanders, Belgium ... 92 135.038666\n", "93 93 Antwerp, Flanders, Belgium ... 93 122.781960\n", "94 94 Antwerp, Flanders, Belgium ... 94 122.583794\n", "95 95 Antwerp, Flanders, Belgium ... 95 123.441513\n", "96 96 Antwerp, Flanders, Belgium ... 96 120.397736\n", "97 97 Antwerp, Flanders, Belgium ... 97 111.034378\n", "98 98 Antwerp, Flanders, Belgium ... 98 106.719803\n", "99 99 Antwerp, Flanders, Belgium ... 99 104.161469\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 331k3vz1 \n", "\n", "wandb: Agent Starting Run: 69i46xdy with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.01\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: 69i46xdy\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/69i46xdy
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/33slpwqj
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "28.064961809664965\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.8504533881716656\n", "The running loss is:\n", "29.085500955581665\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.881378816835808\n", "The running loss is:\n", "26.46319116279483\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.8019148837210555\n", "The running loss is:\n", "27.79352070391178\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.8422279001185389\n", "The running loss is:\n", "37.66246119979769\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "1.1412867030241725\n", "The running loss is:\n", "23.635434065014124\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.7162252746973977\n", "The running loss is:\n", "22.120809108018875\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.6703275487278447\n", "The running loss is:\n", "20.774387892335653\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.6295269058283531\n", "The running loss is:\n", "17.475550305098295\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.5295621304575241\n", "The running loss is:\n", "17.86318363249302\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.5413085949240308\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 149.282455\n", "91 91 Antwerp, Flanders, Belgium ... 91 184.569229\n", "92 92 Antwerp, Flanders, Belgium ... 92 186.867966\n", "93 93 Antwerp, Flanders, Belgium ... 93 188.032913\n", "94 94 Antwerp, Flanders, Belgium ... 94 202.545227\n", "95 95 Antwerp, Flanders, Belgium ... 95 206.003845\n", "96 96 Antwerp, Flanders, Belgium ... 96 210.492386\n", "97 97 Antwerp, Flanders, Belgium ... 97 248.335281\n", "98 98 Antwerp, Flanders, Belgium ... 98 260.891876\n", "99 99 Antwerp, Flanders, Belgium ... 99 248.564087\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 69i46xdy \n", "\n", "wandb: Agent Starting Run: nx8bd762 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 3\n", "\tlr: 0.01\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: nx8bd762\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/nx8bd762
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 3, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 3, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 3, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/hvy5224i
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "17.937730296049267\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.5605540717515396\n", "The running loss is:\n", "35.50285805051681\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "1.1094643140786502\n", "The running loss is:\n", "17.564409082289785\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.5488877838215558\n", "The running loss is:\n", "23.59525622660294\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.7373517570813419\n", "The running loss is:\n", "15.578202691394836\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.4868188341060886\n", "The running loss is:\n", "24.60211830935441\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7688161971673253\n", "The running loss is:\n", "14.085245068301447\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.4401639083844202\n", "The running loss is:\n", "12.162914328742772\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.38009107277321164\n", "The running loss is:\n", "12.102874213131145\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.37821481916034827\n", "The running loss is:\n", "11.44598395540379\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.35768699860636843\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 3, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 132.449570\n", "91 91 Antwerp, Flanders, Belgium ... 91 163.160934\n", "92 92 Antwerp, Flanders, Belgium ... 92 169.112091\n", "93 93 Antwerp, Flanders, Belgium ... 93 168.411591\n", "94 94 Antwerp, Flanders, Belgium ... 94 187.403351\n", "95 95 Antwerp, Flanders, Belgium ... 95 200.974945\n", "96 96 Antwerp, Flanders, Belgium ... 96 218.312180\n", "97 97 Antwerp, Flanders, Belgium ... 97 233.340790\n", "98 98 Antwerp, Flanders, Belgium ... 98 246.575729\n", "99 99 Antwerp, Flanders, Belgium ... 99 250.199844\n", "\n", "[13 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: nx8bd762 \n", "\n", "wandb: Agent Starting Run: lsdw0an2 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.001\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: lsdw0an2\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/lsdw0an2
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1xvh68mj
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "13.547936960821971\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.41054354426733247\n", "The running loss is:\n", "26.5433846085798\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.8043449881387819\n", "The running loss is:\n", "14.103622088208795\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.4273824875214786\n", "The running loss is:\n", "9.100044154096395\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.2757589137604968\n", "The running loss is:\n", "14.748382066725753\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.4469206686886592\n", "The running loss is:\n", "11.233333861382562\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.3404040564055322\n", "The running loss is:\n", "21.369321470090654\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.6475551960633531\n", "The running loss is:\n", "7.361885572201572\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.22308744158186583\n", "The running loss is:\n", "8.053950862027705\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.24405911703114258\n", "The running loss is:\n", "11.17254789127037\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.3385620573112233\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 125.017883\n", "91 91 Antwerp, Flanders, Belgium ... 91 123.411812\n", "92 92 Antwerp, Flanders, Belgium ... 92 125.127426\n", "93 93 Antwerp, Flanders, Belgium ... 93 125.062477\n", "94 94 Antwerp, Flanders, Belgium ... 94 115.939461\n", "95 95 Antwerp, Flanders, Belgium ... 95 121.196037\n", "96 96 Antwerp, Flanders, Belgium ... 96 127.404915\n", "97 97 Antwerp, Flanders, Belgium ... 97 114.615707\n", "98 98 Antwerp, Flanders, Belgium ... 98 110.940880\n", "99 99 Antwerp, Flanders, Belgium ... 99 107.993706\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: lsdw0an2 \n", "\n", "wandb: Agent Starting Run: 4pvrvo3l with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.001\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: 4pvrvo3l\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/4pvrvo3l
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1piocvrp
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "9.96654413593933\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.31145450424810406\n", "The running loss is:\n", "28.999742947518826\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "0.9062419671099633\n", "The running loss is:\n", "7.978736505378038\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.24933551579306368\n", "The running loss is:\n", "16.54671422811225\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.5170848196285078\n", "The running loss is:\n", "9.03373872069642\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.2823043350217631\n", "The running loss is:\n", "23.664487095782533\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7395152217432042\n", "The running loss is:\n", "9.5151820583269\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.2973494393227156\n", "The running loss is:\n", "7.392919855192304\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.2310287454747595\n", "The running loss is:\n", "13.802258587442338\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.4313205808575731\n", "The running loss is:\n", "6.292614362668246\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.1966441988333827\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 164.089966\n", "91 91 Antwerp, Flanders, Belgium ... 91 161.481049\n", "92 92 Antwerp, Flanders, Belgium ... 92 161.767853\n", "93 93 Antwerp, Flanders, Belgium ... 93 162.047974\n", "94 94 Antwerp, Flanders, Belgium ... 94 165.752609\n", "95 95 Antwerp, Flanders, Belgium ... 95 170.131912\n", "96 96 Antwerp, Flanders, Belgium ... 96 176.269791\n", "97 97 Antwerp, Flanders, Belgium ... 97 175.326233\n", "98 98 Antwerp, Flanders, Belgium ... 98 177.572510\n", "99 99 Antwerp, Flanders, Belgium ... 99 179.625351\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 4pvrvo3l \n", "\n", "wandb: Agent Starting Run: vhal3k4y with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.001\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: vhal3k4y\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/vhal3k4y
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/2wf8hukj
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "7.6697259191423655\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.23967893497319892\n", "The running loss is:\n", "37.96821307018399\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "1.1865066584432498\n", "The running loss is:\n", "12.867059556767344\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.4020956111489795\n", "The running loss is:\n", "25.48514431528747\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.7964107598527335\n", "The running loss is:\n", "11.341065876185894\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.3544083086308092\n", "The running loss is:\n", "24.40359308384359\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7626122838701122\n", "The running loss is:\n", "10.748747183941305\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.33589834949816577\n", "The running loss is:\n", "15.834405758418143\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.49482517995056696\n", "The running loss is:\n", "8.714372392743826\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.27232413727324456\n", "The running loss is:\n", "13.327436484396458\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.4164823901373893\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 112.782478\n", "91 91 Antwerp, Flanders, Belgium ... 91 106.982094\n", "92 92 Antwerp, Flanders, Belgium ... 92 104.220634\n", "93 93 Antwerp, Flanders, Belgium ... 93 103.812248\n", "94 94 Antwerp, Flanders, Belgium ... 94 96.546860\n", "95 95 Antwerp, Flanders, Belgium ... 95 98.490540\n", "96 96 Antwerp, Flanders, Belgium ... 96 101.250137\n", "97 97 Antwerp, Flanders, Belgium ... 97 93.525597\n", "98 98 Antwerp, Flanders, Belgium ... 98 91.633041\n", "99 99 Antwerp, Flanders, Belgium ... 99 92.601295\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: vhal3k4y \n", "\n", "wandb: Agent Starting Run: k3ia09x1 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.002\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: k3ia09x1\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/k3ia09x1
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/349nrh3u
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "13.547936960821971\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.41054354426733247\n", "The running loss is:\n", "26.5433846085798\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.8043449881387819\n", "The running loss is:\n", "14.103622088208795\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.4273824875214786\n", "The running loss is:\n", "9.100044154096395\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.2757589137604968\n", "The running loss is:\n", "14.748382066725753\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.4469206686886592\n", "The running loss is:\n", "11.233333861382562\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.3404040564055322\n", "The running loss is:\n", "21.369321470090654\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.6475551960633531\n", "The running loss is:\n", "7.361885572201572\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.22308744158186583\n", "The running loss is:\n", "8.053950862027705\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.24405911703114258\n", "The running loss is:\n", "11.17254789127037\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.3385620573112233\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 125.017883\n", "91 91 Antwerp, Flanders, Belgium ... 91 123.411812\n", "92 92 Antwerp, Flanders, Belgium ... 92 125.127426\n", "93 93 Antwerp, Flanders, Belgium ... 93 125.062477\n", "94 94 Antwerp, Flanders, Belgium ... 94 115.939461\n", "95 95 Antwerp, Flanders, Belgium ... 95 121.196037\n", "96 96 Antwerp, Flanders, Belgium ... 96 127.404915\n", "97 97 Antwerp, Flanders, Belgium ... 97 114.615707\n", "98 98 Antwerp, Flanders, Belgium ... 98 110.940880\n", "99 99 Antwerp, Flanders, Belgium ... 99 107.993706\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: k3ia09x1 \n", "\n", "wandb: Agent Starting Run: x7rh0o15 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.002\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: x7rh0o15\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/x7rh0o15
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/3l9j7l2d
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "9.96654413593933\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.31145450424810406\n", "The running loss is:\n", "28.999742947518826\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "0.9062419671099633\n", "The running loss is:\n", "7.978736505378038\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.24933551579306368\n", "The running loss is:\n", "16.54671422811225\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.5170848196285078\n", "The running loss is:\n", "9.03373872069642\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.2823043350217631\n", "The running loss is:\n", "23.664487095782533\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7395152217432042\n", "The running loss is:\n", "9.5151820583269\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.2973494393227156\n", "The running loss is:\n", "7.392919855192304\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.2310287454747595\n", "The running loss is:\n", "13.802258587442338\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.4313205808575731\n", "The running loss is:\n", "6.292614362668246\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.1966441988333827\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 164.089966\n", "91 91 Antwerp, Flanders, Belgium ... 91 161.481049\n", "92 92 Antwerp, Flanders, Belgium ... 92 161.767853\n", "93 93 Antwerp, Flanders, Belgium ... 93 162.047974\n", "94 94 Antwerp, Flanders, Belgium ... 94 165.752609\n", "95 95 Antwerp, Flanders, Belgium ... 95 170.131912\n", "96 96 Antwerp, Flanders, Belgium ... 96 176.269791\n", "97 97 Antwerp, Flanders, Belgium ... 97 175.326233\n", "98 98 Antwerp, Flanders, Belgium ... 98 177.572510\n", "99 99 Antwerp, Flanders, Belgium ... 99 179.625351\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: x7rh0o15 \n", "\n", "wandb: Agent Starting Run: 0aeujmcx with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.002\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: 0aeujmcx\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/0aeujmcx
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.002, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1ydm388y
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "7.6697259191423655\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.23967893497319892\n", "The running loss is:\n", "37.96821307018399\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "1.1865066584432498\n", "The running loss is:\n", "12.867059556767344\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.4020956111489795\n", "The running loss is:\n", "25.48514431528747\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.7964107598527335\n", "The running loss is:\n", "11.341065876185894\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.3544083086308092\n", "The running loss is:\n", "24.40359308384359\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7626122838701122\n", "The running loss is:\n", "10.748747183941305\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.33589834949816577\n", "The running loss is:\n", "15.834405758418143\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.49482517995056696\n", "The running loss is:\n", "8.714372392743826\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.27232413727324456\n", "The running loss is:\n", "13.327436484396458\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.4164823901373893\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 112.782478\n", "91 91 Antwerp, Flanders, Belgium ... 91 106.982094\n", "92 92 Antwerp, Flanders, Belgium ... 92 104.220634\n", "93 93 Antwerp, Flanders, Belgium ... 93 103.812248\n", "94 94 Antwerp, Flanders, Belgium ... 94 96.546860\n", "95 95 Antwerp, Flanders, Belgium ... 95 98.490540\n", "96 96 Antwerp, Flanders, Belgium ... 96 101.250137\n", "97 97 Antwerp, Flanders, Belgium ... 97 93.525597\n", "98 98 Antwerp, Flanders, Belgium ... 98 91.633041\n", "99 99 Antwerp, Flanders, Belgium ... 99 92.601295\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 0aeujmcx \n", "\n", "wandb: Agent Starting Run: fjxfqi0k with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.004\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: fjxfqi0k\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/fjxfqi0k
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1l2iqjry
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "13.547936960821971\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.41054354426733247\n", "The running loss is:\n", "26.5433846085798\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.8043449881387819\n", "The running loss is:\n", "14.103622088208795\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.4273824875214786\n", "The running loss is:\n", "9.100044154096395\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.2757589137604968\n", "The running loss is:\n", "14.748382066725753\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.4469206686886592\n", "The running loss is:\n", "11.233333861382562\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.3404040564055322\n", "The running loss is:\n", "21.369321470090654\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.6475551960633531\n", "The running loss is:\n", "7.361885572201572\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.22308744158186583\n", "The running loss is:\n", "8.053950862027705\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.24405911703114258\n", "The running loss is:\n", "11.17254789127037\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.3385620573112233\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 125.017883\n", "91 91 Antwerp, Flanders, Belgium ... 91 123.411812\n", "92 92 Antwerp, Flanders, Belgium ... 92 125.127426\n", "93 93 Antwerp, Flanders, Belgium ... 93 125.062477\n", "94 94 Antwerp, Flanders, Belgium ... 94 115.939461\n", "95 95 Antwerp, Flanders, Belgium ... 95 121.196037\n", "96 96 Antwerp, Flanders, Belgium ... 96 127.404915\n", "97 97 Antwerp, Flanders, Belgium ... 97 114.615707\n", "98 98 Antwerp, Flanders, Belgium ... 98 110.940880\n", "99 99 Antwerp, Flanders, Belgium ... 99 107.993706\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: fjxfqi0k \n", "\n", "wandb: Agent Starting Run: wwngpqi2 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.004\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: wwngpqi2\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/wwngpqi2
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/1zozxgfj
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "9.96654413593933\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.31145450424810406\n", "The running loss is:\n", "28.999742947518826\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "0.9062419671099633\n", "The running loss is:\n", "7.978736505378038\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.24933551579306368\n", "The running loss is:\n", "16.54671422811225\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.5170848196285078\n", "The running loss is:\n", "9.03373872069642\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.2823043350217631\n", "The running loss is:\n", "23.664487095782533\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7395152217432042\n", "The running loss is:\n", "9.5151820583269\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.2973494393227156\n", "The running loss is:\n", "7.392919855192304\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.2310287454747595\n", "The running loss is:\n", "13.802258587442338\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.4313205808575731\n", "The running loss is:\n", "6.292614362668246\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.1966441988333827\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 164.089966\n", "91 91 Antwerp, Flanders, Belgium ... 91 161.481049\n", "92 92 Antwerp, Flanders, Belgium ... 92 161.767853\n", "93 93 Antwerp, Flanders, Belgium ... 93 162.047974\n", "94 94 Antwerp, Flanders, Belgium ... 94 165.752609\n", "95 95 Antwerp, Flanders, Belgium ... 95 170.131912\n", "96 96 Antwerp, Flanders, Belgium ... 96 176.269791\n", "97 97 Antwerp, Flanders, Belgium ... 97 175.326233\n", "98 98 Antwerp, Flanders, Belgium ... 98 177.572510\n", "99 99 Antwerp, Flanders, Belgium ... 99 179.625351\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: wwngpqi2 \n", "\n", "wandb: Agent Starting Run: cok8djrp with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.004\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: cok8djrp\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/cok8djrp
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.004, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/6lgehgg0
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "7.6697259191423655\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.23967893497319892\n", "The running loss is:\n", "37.96821307018399\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "1.1865066584432498\n", "The running loss is:\n", "12.867059556767344\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.4020956111489795\n", "The running loss is:\n", "25.48514431528747\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.7964107598527335\n", "The running loss is:\n", "11.341065876185894\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.3544083086308092\n", "The running loss is:\n", "24.40359308384359\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7626122838701122\n", "The running loss is:\n", "10.748747183941305\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.33589834949816577\n", "The running loss is:\n", "15.834405758418143\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.49482517995056696\n", "The running loss is:\n", "8.714372392743826\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.27232413727324456\n", "The running loss is:\n", "13.327436484396458\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.4164823901373893\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 112.782478\n", "91 91 Antwerp, Flanders, Belgium ... 91 106.982094\n", "92 92 Antwerp, Flanders, Belgium ... 92 104.220634\n", "93 93 Antwerp, Flanders, Belgium ... 93 103.812248\n", "94 94 Antwerp, Flanders, Belgium ... 94 96.546860\n", "95 95 Antwerp, Flanders, Belgium ... 95 98.490540\n", "96 96 Antwerp, Flanders, Belgium ... 96 101.250137\n", "97 97 Antwerp, Flanders, Belgium ... 97 93.525597\n", "98 98 Antwerp, Flanders, Belgium ... 98 91.633041\n", "99 99 Antwerp, Flanders, Belgium ... 99 92.601295\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: cok8djrp \n", "\n", "wandb: Agent Starting Run: bppv32v7 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.01\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: bppv32v7\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/bppv32v7
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/2infhrjw
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "13.547936960821971\n", "The number of items in train is: \n", "33\n", "The loss for epoch 0\n", "0.41054354426733247\n", "The running loss is:\n", "26.5433846085798\n", "The number of items in train is: \n", "33\n", "The loss for epoch 1\n", "0.8043449881387819\n", "The running loss is:\n", "14.103622088208795\n", "The number of items in train is: \n", "33\n", "The loss for epoch 2\n", "0.4273824875214786\n", "The running loss is:\n", "9.100044154096395\n", "The number of items in train is: \n", "33\n", "The loss for epoch 3\n", "0.2757589137604968\n", "The running loss is:\n", "14.748382066725753\n", "The number of items in train is: \n", "33\n", "The loss for epoch 4\n", "0.4469206686886592\n", "The running loss is:\n", "11.233333861382562\n", "The number of items in train is: \n", "33\n", "The loss for epoch 5\n", "0.3404040564055322\n", "The running loss is:\n", "21.369321470090654\n", "The number of items in train is: \n", "33\n", "The loss for epoch 6\n", "0.6475551960633531\n", "The running loss is:\n", "7.361885572201572\n", "The number of items in train is: \n", "33\n", "The loss for epoch 7\n", "0.22308744158186583\n", "The running loss is:\n", "8.053950862027705\n", "The number of items in train is: \n", "33\n", "The loss for epoch 8\n", "0.24405911703114258\n", "The running loss is:\n", "11.17254789127037\n", "The number of items in train is: \n", "33\n", "The loss for epoch 9\n", "0.3385620573112233\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 125.017883\n", "91 91 Antwerp, Flanders, Belgium ... 91 123.411812\n", "92 92 Antwerp, Flanders, Belgium ... 92 125.127426\n", "93 93 Antwerp, Flanders, Belgium ... 93 125.062477\n", "94 94 Antwerp, Flanders, Belgium ... 94 115.939461\n", "95 95 Antwerp, Flanders, Belgium ... 95 121.196037\n", "96 96 Antwerp, Flanders, Belgium ... 96 127.404915\n", "97 97 Antwerp, Flanders, Belgium ... 97 114.615707\n", "98 98 Antwerp, Flanders, Belgium ... 98 110.940880\n", "99 99 Antwerp, Flanders, Belgium ... 99 107.993706\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: bppv32v7 \n", "\n", "wandb: Agent Starting Run: 4tz4kpt6 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.01\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: 4tz4kpt6\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/4tz4kpt6
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/146h292j
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "9.96654413593933\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.31145450424810406\n", "The running loss is:\n", "28.999742947518826\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "0.9062419671099633\n", "The running loss is:\n", "7.978736505378038\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.24933551579306368\n", "The running loss is:\n", "16.54671422811225\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.5170848196285078\n", "The running loss is:\n", "9.03373872069642\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.2823043350217631\n", "The running loss is:\n", "23.664487095782533\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7395152217432042\n", "The running loss is:\n", "9.5151820583269\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.2973494393227156\n", "The running loss is:\n", "7.392919855192304\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.2310287454747595\n", "The running loss is:\n", "13.802258587442338\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.4313205808575731\n", "The running loss is:\n", "6.292614362668246\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.1966441988333827\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 164.089966\n", "91 91 Antwerp, Flanders, Belgium ... 91 161.481049\n", "92 92 Antwerp, Flanders, Belgium ... 92 161.767853\n", "93 93 Antwerp, Flanders, Belgium ... 93 162.047974\n", "94 94 Antwerp, Flanders, Belgium ... 94 165.752609\n", "95 95 Antwerp, Flanders, Belgium ... 95 170.131912\n", "96 96 Antwerp, Flanders, Belgium ... 96 176.269791\n", "97 97 Antwerp, Flanders, Belgium ... 97 175.326233\n", "98 98 Antwerp, Flanders, Belgium ... 98 177.572510\n", "99 99 Antwerp, Flanders, Belgium ... 99 179.625351\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 4tz4kpt6 \n", "\n", "wandb: Agent Starting Run: ln5wb2zx with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 4\n", "\tlr: 0.01\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: ln5wb2zx\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/ln5wb2zx
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 4, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 4, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.01, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 4, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/z7hrbbhc
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "7.6697259191423655\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.23967893497319892\n", "The running loss is:\n", "37.96821307018399\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "1.1865066584432498\n", "The running loss is:\n", "12.867059556767344\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.4020956111489795\n", "The running loss is:\n", "25.48514431528747\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.7964107598527335\n", "The running loss is:\n", "11.341065876185894\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.3544083086308092\n", "The running loss is:\n", "24.40359308384359\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7626122838701122\n", "The running loss is:\n", "10.748747183941305\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.33589834949816577\n", "The running loss is:\n", "15.834405758418143\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.49482517995056696\n", "The running loss is:\n", "8.714372392743826\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.27232413727324456\n", "The running loss is:\n", "13.327436484396458\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.4164823901373893\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 4, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 112.782478\n", "91 91 Antwerp, Flanders, Belgium ... 91 106.982094\n", "92 92 Antwerp, Flanders, Belgium ... 92 104.220634\n", "93 93 Antwerp, Flanders, Belgium ... 93 103.812248\n", "94 94 Antwerp, Flanders, Belgium ... 94 96.546860\n", "95 95 Antwerp, Flanders, Belgium ... 95 98.490540\n", "96 96 Antwerp, Flanders, Belgium ... 96 101.250137\n", "97 97 Antwerp, Flanders, Belgium ... 97 93.525597\n", "98 98 Antwerp, Flanders, Belgium ... 98 91.633041\n", "99 99 Antwerp, Flanders, Belgium ... 99 92.601295\n", "\n", "[14 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: ln5wb2zx \n", "\n", "wandb: Agent Starting Run: 05q1yi30 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 5\n", "\tlr: 0.001\n", "\tout_seq_length: 1\n", "wandb: Agent Started Run: 05q1yi30\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/05q1yi30
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 5, 'output_seq_len': 1, 'forecast_length': 1}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 5, 'forecast_length': 1, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 5, 'forecast_length': 1, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/e7dv6y6d
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "14.149641871917993\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.4421763084974373\n", "The running loss is:\n", "19.153084758669138\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "0.5985338987084106\n", "The running loss is:\n", "12.141699264757335\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.3794281020236667\n", "The running loss is:\n", "10.726733310613781\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.33521041595668066\n", "The running loss is:\n", "27.875308595306706\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.8711033936033346\n", "The running loss is:\n", "15.057293181307614\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.47054041191586293\n", "The running loss is:\n", "8.554784269770607\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.2673370084303315\n", "The running loss is:\n", "15.368095055688173\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.4802529704902554\n", "The running loss is:\n", "12.053984255064279\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.3766870079707587\n", "The running loss is:\n", "15.878508637310006\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.4962033949159377\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 5, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "85 85 Antwerp, Flanders, Belgium ... 85 0.000000\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 110.934616\n", "91 91 Antwerp, Flanders, Belgium ... 91 83.300751\n", "92 92 Antwerp, Flanders, Belgium ... 92 80.099800\n", "93 93 Antwerp, Flanders, Belgium ... 93 81.591988\n", "94 94 Antwerp, Flanders, Belgium ... 94 80.869614\n", "95 95 Antwerp, Flanders, Belgium ... 95 70.832413\n", "96 96 Antwerp, Flanders, Belgium ... 96 71.445686\n", "97 97 Antwerp, Flanders, Belgium ... 97 69.036293\n", "98 98 Antwerp, Flanders, Belgium ... 98 71.953468\n", "99 99 Antwerp, Flanders, Belgium ... 99 66.996086\n", "\n", "[15 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: 05q1yi30 \n", "\n", "wandb: Agent Starting Run: ewgswxyt with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 5\n", "\tlr: 0.001\n", "\tout_seq_length: 2\n", "wandb: Agent Started Run: ewgswxyt\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/ewgswxyt
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 5, 'output_seq_len': 2, 'forecast_length': 2}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 5, 'forecast_length': 2, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 5, 'forecast_length': 2, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/2kn7yl2t
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "11.650028791336808\n", "The number of items in train is: \n", "32\n", "The loss for epoch 0\n", "0.36406339972927526\n", "The running loss is:\n", "30.865524154622108\n", "The number of items in train is: \n", "32\n", "The loss for epoch 1\n", "0.9645476298319409\n", "The running loss is:\n", "13.431060584727675\n", "The number of items in train is: \n", "32\n", "The loss for epoch 2\n", "0.41972064327273984\n", "The running loss is:\n", "31.62627243832685\n", "The number of items in train is: \n", "32\n", "The loss for epoch 3\n", "0.9883210136977141\n", "The running loss is:\n", "12.02412142243702\n", "The number of items in train is: \n", "32\n", "The loss for epoch 4\n", "0.37575379445115686\n", "The running loss is:\n", "23.094838136807084\n", "The number of items in train is: \n", "32\n", "The loss for epoch 5\n", "0.7217136917752214\n", "The running loss is:\n", "12.464333229334443\n", "The number of items in train is: \n", "32\n", "The loss for epoch 6\n", "0.38951041341670134\n", "The running loss is:\n", "22.23100734280888\n", "The number of items in train is: \n", "32\n", "The loss for epoch 7\n", "0.6947189794627775\n", "The running loss is:\n", "8.372417403385043\n", "The number of items in train is: \n", "32\n", "The loss for epoch 8\n", "0.2616380438557826\n", "The running loss is:\n", "7.372722903382964\n", "The number of items in train is: \n", "32\n", "The loss for epoch 9\n", "0.23039759073071764\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "CSV Path below\n", "antwerp.csv\n", "torch.Size([1, 5, 3])\n", "Add debugging crap below\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:136: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'] = 0\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:137: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor.numpy().tolist()\n", "/usr/local/lib/python3.6/dist-packages/pandas/core/series.py:1042: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " self._set_with(key, value)\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:59: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df, end_tensor, forecast_history, junk, test_data = infer_on_torch_model(model, **inference_params)\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "torch.Size([10])\n", "test_data scale\n", "Un-transforming data\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/content/github_aistream-peelout_flow-forecast/flood_forecast/evaluator.py:67: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df['preds'][history_length:] = end_tensor_list\n", "/content/github_aistream-peelout_flow-forecast/flood_forecast/trainer.py:30: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " test_acc = evaluate_model(trained_model, model_type, params[\"dataset_params\"][\"target_col\"], params[\"metrics\"], params[\"inference_params\"], {})\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "Current historical dataframe\n", " Unnamed: 0 name ... original_index preds\n", "85 85 Antwerp, Flanders, Belgium ... 85 0.000000\n", "86 86 Antwerp, Flanders, Belgium ... 86 0.000000\n", "87 87 Antwerp, Flanders, Belgium ... 87 0.000000\n", "88 88 Antwerp, Flanders, Belgium ... 88 0.000000\n", "89 89 Antwerp, Flanders, Belgium ... 89 0.000000\n", "90 90 Antwerp, Flanders, Belgium ... 90 143.672546\n", "91 91 Antwerp, Flanders, Belgium ... 91 132.610565\n", "92 92 Antwerp, Flanders, Belgium ... 92 127.962723\n", "93 93 Antwerp, Flanders, Belgium ... 93 125.382195\n", "94 94 Antwerp, Flanders, Belgium ... 94 126.953491\n", "95 95 Antwerp, Flanders, Belgium ... 95 122.859352\n", "96 96 Antwerp, Flanders, Belgium ... 96 122.826790\n", "97 97 Antwerp, Flanders, Belgium ... 97 117.627235\n", "98 98 Antwerp, Flanders, Belgium ... 98 114.252800\n", "99 99 Antwerp, Flanders, Belgium ... 99 113.222778\n", "\n", "[15 rows x 32 columns]\n" ], "name": "stdout" }, { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/mpltools.py:368: MatplotlibDeprecationWarning:\n", "\n", "\n", "The is_frame_like function was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:410: UserWarning:\n", "\n", "Bummer! Plotly can currently only draw Line2D objects from matplotlib that are in 'data' coordinates!\n", "\n", "/usr/local/lib/python3.6/dist-packages/plotly/matplotlylib/renderer.py:512: UserWarning:\n", "\n", "I found a path object that I don't think is part of a bar chart. Ignoring.\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "wandb: Agent Finished Run: ewgswxyt \n", "\n", "wandb: Agent Starting Run: 4879h427 with config:\n", "\tbatch_size: 2\n", "\tforecast_history: 5\n", "\tlr: 0.001\n", "\tout_seq_length: 3\n", "wandb: Agent Started Run: 4879h427\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Sweep page: https://app.wandb.ai/igodfried/covid-forecast/sweeps/yw9zbqtn
\n", "Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/4879h427
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "{'model_name': 'MultiAttnHeadSimple', 'model_type': 'PyTorch', 'model_params': {'number_time_series': 3, 'seq_len': 5, 'output_seq_len': 3, 'forecast_length': 3}, 'dataset_params': {'class': 'default', 'training_path': 'antwerp.csv', 'validation_path': 'antwerp.csv', 'test_path': 'antwerp.csv', 'batch_size': 2, 'forecast_history': 5, 'forecast_length': 3, 'train_end': 71, 'valid_start': 72, 'valid_end': 91, 'target_col': ['new_cases'], 'relevant_cols': ['new_cases', 'month', 'weekday'], 'scaler': 'StandardScaler', 'interpolate': False}, 'training_params': {'criterion': 'MSE', 'optimizer': 'Adam', 'optim_params': {}, 'lr': 0.001, 'epochs': 10, 'batch_size': 2}, 'GCS': False, 'wandb': {'name': 'multihead_pytorch_antwerp', 'tags': ['covid_run', 'circleci'], 'project': 'covid-forecast'}, 'forward_params': {}, 'metrics': ['MSE'], 'inference_params': {'datetime_start': '2020-04-21', 'hours_to_forecast': 10, 'test_csv_path': 'antwerp.csv', 'decoder_params': {'decoder_function': 'simple_decode', 'unsqueeze_dim': 1}, 'dataset_params': {'file_path': 'antwerp.csv', 'forecast_history': 5, 'forecast_length': 3, 'relevant_cols': ['new_cases', 'month', 'weekday'], 'target_col': ['new_cases'], 'scaling': 'StandardScaler', 'interpolate_param': False}}}\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n", "interpolate should be below\n", "Now loading and scaling antwerp.csv\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "text/html": [ "\n", " Logging results to Weights & Biases (Documentation).
\n", " Project page: https://app.wandb.ai/igodfried/covid-forecast
\n", " Run page: https://app.wandb.ai/igodfried/covid-forecast/runs/2jru0rtt
\n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] } }, { "output_type": "stream", "text": [ "Torch is using cpu\n", "The running loss is:\n", "11.67289599776268\n", "The number of items in train is: \n", "31\n", "The loss for epoch 0\n", "0.3765450321858929\n", "The running loss is:\n", "36.93330478295684\n", "The number of items in train is: \n", "31\n", "The loss for epoch 1\n", "1.1913969284824786\n", "The running loss is:\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "eQxoiQaBALTH", "colab_type": "code", "outputId": "32a027c1-6ac1-4891-9b3a-589fc122d94d", "colab": { "base_uri": "https://localhost:8080/", "height": 780 } }, "source": [ "pd.read_csv(\"antwerp.csv\")" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0namelevelcitycountystatecountrypopulationlatlongurlaggregatetzcasesdeathsrecoveredactivetestedhospitalizeddischargedgrowthFactordatemonthweekdaystate_countyfull_countydatetimenew_cases
00Antwerp, Flanders, Belgiumcounty0AntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/0Europe/Brussels4.00.00.00.00.00.00.00.02020-01-2212Flanders_AntwerpFlanders_Antwerp2020-01-220.0
11Antwerp, Flanders, Belgiumcounty0AntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/0Europe/Brussels4.00.00.00.00.00.00.00.02020-01-2313Flanders_AntwerpFlanders_Antwerp2020-01-230.0
22Antwerp, Flanders, Belgiumcounty0AntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/0Europe/Brussels4.00.00.00.00.00.00.00.02020-01-2414Flanders_AntwerpFlanders_Antwerp2020-01-240.0
33Antwerp, Flanders, Belgiumcounty0AntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/0Europe/Brussels4.00.00.00.00.00.00.00.02020-01-2515Flanders_AntwerpFlanders_Antwerp2020-01-250.0
44Antwerp, Flanders, Belgiumcounty0AntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/0Europe/Brussels4.00.00.00.00.00.00.00.02020-01-2616Flanders_AntwerpFlanders_Antwerp2020-01-260.0
.......................................................................................
9393Antwerp, Flanders, Belgiumcounty0AntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/0Europe/Brussels5713.00.00.00.00.02134.01788.00.02020-04-2444Flanders_AntwerpFlanders_Antwerp2020-04-2471.0
9494Antwerp, Flanders, Belgiumcounty0AntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/0Europe/Brussels5743.00.00.00.00.02169.01850.00.02020-04-2545Flanders_AntwerpFlanders_Antwerp2020-04-2530.0
9595Antwerp, Flanders, Belgiumcounty0AntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/0Europe/Brussels5761.00.00.00.00.02181.01869.00.02020-04-2646Flanders_AntwerpFlanders_Antwerp2020-04-2618.0
9696Antwerp, Flanders, Belgiumcounty0AntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/0Europe/Brussels5761.00.00.00.00.02202.01884.00.02020-04-2740Flanders_AntwerpFlanders_Antwerp2020-04-270.0
9797Antwerp, Flanders, Belgiumcounty0AntwerpFlandersBelgium1847486.051.24854.7175https://epistat.wiv-isp.be/0Europe/Brussels5761.00.00.00.00.02202.01884.00.02020-04-2841Flanders_AntwerpFlanders_Antwerp2020-04-280.0
\n", "

98 rows × 28 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 name ... datetime new_cases\n", "0 0 Antwerp, Flanders, Belgium ... 2020-01-22 0.0\n", "1 1 Antwerp, Flanders, Belgium ... 2020-01-23 0.0\n", "2 2 Antwerp, Flanders, Belgium ... 2020-01-24 0.0\n", "3 3 Antwerp, Flanders, Belgium ... 2020-01-25 0.0\n", "4 4 Antwerp, Flanders, Belgium ... 2020-01-26 0.0\n", ".. ... ... ... ... ...\n", "93 93 Antwerp, Flanders, Belgium ... 2020-04-24 71.0\n", "94 94 Antwerp, Flanders, Belgium ... 2020-04-25 30.0\n", "95 95 Antwerp, Flanders, Belgium ... 2020-04-26 18.0\n", "96 96 Antwerp, Flanders, Belgium ... 2020-04-27 0.0\n", "97 97 Antwerp, Flanders, Belgium ... 2020-04-28 0.0\n", "\n", "[98 rows x 28 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 65 } ] }, { "cell_type": "code", "metadata": { "id": "f9cWGDQKAdOo", "colab_type": "code", "outputId": "eb44ef9c-0af0-440e-8382-1ac371402047", "colab": { "base_uri": "https://localhost:8080/", "height": 54 } }, "source": [ "wandb.config" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 75 } ] }, { "cell_type": "code", "metadata": { "id": "hLGxcpr-U8AR", "colab_type": "code", "outputId": "90857643-05dc-4741-abe3-fb96884ca9c3", "colab": { "base_uri": "https://localhost:8080/", "height": 54 } }, "source": [ "!git clone https://github.com/CoronaWhy/task-ts -b add_mobility_data\n", "import os \n", "os.chdir('task-ts')\n" ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "fatal: destination path 'task-ts' already exists and is not an empty directory.\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "kbsf85dPKboY", "colab_type": "code", "outputId": "a7d1b931-57bb-4820-c6b6-46944c3dca34", "colab": { "base_uri": "https://localhost:8080/", "height": 104 } }, "source": [ "!pip install loguru\n", "from corona_ts.data_utils.data_crawler import load_data" ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "Requirement already satisfied: loguru in /usr/local/lib/python3.6/dist-packages (0.4.1)\n", "Requirement already satisfied: aiocontextvars>=0.2.0; python_version < \"3.7\" in /usr/local/lib/python3.6/dist-packages (from loguru) (0.2.2)\n", "Requirement already satisfied: contextvars==2.4; python_version < \"3.7\" in /usr/local/lib/python3.6/dist-packages (from aiocontextvars>=0.2.0; python_version < \"3.7\"->loguru) (2.4)\n", "Requirement already satisfied: immutables>=0.9 in /usr/local/lib/python3.6/dist-packages (from contextvars==2.4; python_version < \"3.7\"->aiocontextvars>=0.2.0; python_version < \"3.7\"->loguru) (0.12)\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "PK1abJe6K1n_", "colab_type": "code", "outputId": "c257bbe7-8fd4-4eb5-f6d3-b7af7bb1c475", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 } }, "source": [ "!git clone https://github.com/CoronaWhy/task-geo.git\n", "os.chdir('task-geo')\n", "!make install" ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "Cloning into 'task-geo'...\n", "remote: Enumerating objects: 176, done.\u001b[K\n", "remote: Counting objects: 100% (176/176), done.\u001b[K\n", "remote: Compressing objects: 100% (130/130), done.\u001b[K\n", "remote: Total 1530 (delta 67), reused 124 (delta 43), pack-reused 1354\u001b[K\n", "Receiving objects: 100% (1530/1530), 6.72 MiB | 5.07 MiB/s, done.\n", "Resolving deltas: 100% (706/706), done.\n", "rm -fr build/\n", "rm -fr dist/\n", "rm -fr .eggs/\n", "find . -name '*.egg-info' -exec rm -fr {} +\n", "find . -name '*.egg' -exec rm -fr {} +\n", "find . -name '*.pyc' -exec rm -f {} +\n", "find . -name '*.pyo' -exec rm -f {} +\n", "find . -name '*~' -exec rm -f {} +\n", "find . -name '__pycache__' -exec rm -fr {} +\n", "pip install .\n", "Processing /content/task-ts/task-geo\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.6/dist-packages (from task-geo==0.1.0.dev0) (1.0.3)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.6/dist-packages (from task-geo==0.1.0.dev0) (2.23.0)\n", "Requirement already satisfied: jupyter in /usr/local/lib/python3.6/dist-packages (from task-geo==0.1.0.dev0) (1.0.0)\n", "Collecting hdx-python-api\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/d4/27/5b7f2c83353e0ee6e9c4fab5ec3a6e141c837369f6a23e82f875bc29db53/hdx_python_api-4.5.6-py2.py3-none-any.whl (67kB)\n", "\u001b[K |████████████████████████████████| 71kB 2.3MB/s \n", "\u001b[?25hRequirement already satisfied: python-dateutil>=2.6.1 in /usr/local/lib/python3.6/dist-packages (from pandas->task-geo==0.1.0.dev0) (2.8.1)\n", "Requirement already satisfied: numpy>=1.13.3 in /usr/local/lib/python3.6/dist-packages (from pandas->task-geo==0.1.0.dev0) (1.18.3)\n", "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.6/dist-packages (from pandas->task-geo==0.1.0.dev0) (2018.9)\n", "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->task-geo==0.1.0.dev0) (2.9)\n", "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->task-geo==0.1.0.dev0) (3.0.4)\n", "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests->task-geo==0.1.0.dev0) (1.24.3)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests->task-geo==0.1.0.dev0) (2020.4.5.1)\n", "Requirement already satisfied: notebook in /usr/local/lib/python3.6/dist-packages (from jupyter->task-geo==0.1.0.dev0) (5.2.2)\n", "Requirement already satisfied: qtconsole in /usr/local/lib/python3.6/dist-packages (from jupyter->task-geo==0.1.0.dev0) (4.7.3)\n", "Requirement already satisfied: ipywidgets in /usr/local/lib/python3.6/dist-packages (from jupyter->task-geo==0.1.0.dev0) (7.5.1)\n", "Requirement already satisfied: jupyter-console in /usr/local/lib/python3.6/dist-packages (from jupyter->task-geo==0.1.0.dev0) (5.2.0)\n", "Requirement already satisfied: ipykernel in /usr/local/lib/python3.6/dist-packages (from jupyter->task-geo==0.1.0.dev0) (4.10.1)\n", "Requirement already satisfied: nbconvert in /usr/local/lib/python3.6/dist-packages (from jupyter->task-geo==0.1.0.dev0) (5.6.1)\n", "Requirement already satisfied: pyasn1 in /usr/local/lib/python3.6/dist-packages (from hdx-python-api->task-geo==0.1.0.dev0) (0.4.8)\n", "Collecting ndg-httpsclient\n", " Downloading https://files.pythonhosted.org/packages/fb/67/c2f508c00ed2a6911541494504b7cac16fe0b0473912568df65fd1801132/ndg_httpsclient-0.5.1-py3-none-any.whl\n", "Collecting quantulum3>=0.7.3; python_version >= \"3\"\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/d0/d5/60d72e7c9393199eba72f88deb06e0fddc4e357d600bdbe5f86e8cfc4512/quantulum3-0.7.3-py3-none-any.whl (11.1MB)\n", "\u001b[K |████████████████████████████████| 11.1MB 8.8MB/s \n", "\u001b[?25hCollecting pyOpenSSL\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/9e/de/f8342b68fa9e981d348039954657bdf681b2ab93de27443be51865ffa310/pyOpenSSL-19.1.0-py2.py3-none-any.whl (53kB)\n", "\u001b[K |████████████████████████████████| 61kB 8.6MB/s \n", "\u001b[?25hCollecting ckanapi>=4.3\n", " Downloading https://files.pythonhosted.org/packages/07/c6/50449e18aaf1600dfda955805c58aa7462493511f3ebbb20d0a65874397c/ckanapi-4.3.tar.gz\n", "Collecting hdx-python-country>=2.5.5\n", " Downloading https://files.pythonhosted.org/packages/f5/85/6e656be9218c0e7efaeabd975a3097296cb3d3824b8841ede6590c2de737/hdx_python_country-2.5.5-py2.py3-none-any.whl\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil>=2.6.1->pandas->task-geo==0.1.0.dev0) (1.12.0)\n", "Requirement already satisfied: jupyter-client in /usr/local/lib/python3.6/dist-packages (from notebook->jupyter->task-geo==0.1.0.dev0) (5.3.4)\n", "Requirement already satisfied: jupyter-core in /usr/local/lib/python3.6/dist-packages (from notebook->jupyter->task-geo==0.1.0.dev0) (4.6.3)\n", "Requirement already satisfied: nbformat in /usr/local/lib/python3.6/dist-packages (from notebook->jupyter->task-geo==0.1.0.dev0) (5.0.6)\n", "Requirement already satisfied: terminado>=0.3.3; sys_platform != \"win32\" in /usr/local/lib/python3.6/dist-packages (from notebook->jupyter->task-geo==0.1.0.dev0) (0.8.3)\n", "Requirement already satisfied: traitlets>=4.2.1 in /usr/local/lib/python3.6/dist-packages (from notebook->jupyter->task-geo==0.1.0.dev0) (4.3.3)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.6/dist-packages (from notebook->jupyter->task-geo==0.1.0.dev0) (2.11.2)\n", "Requirement already satisfied: tornado>=4 in /usr/local/lib/python3.6/dist-packages (from notebook->jupyter->task-geo==0.1.0.dev0) (4.5.3)\n", "Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.6/dist-packages (from notebook->jupyter->task-geo==0.1.0.dev0) (0.2.0)\n", "Requirement already satisfied: pyzmq>=17.1 in /usr/local/lib/python3.6/dist-packages (from qtconsole->jupyter->task-geo==0.1.0.dev0) (19.0.0)\n", "Requirement already satisfied: pygments in /usr/local/lib/python3.6/dist-packages (from qtconsole->jupyter->task-geo==0.1.0.dev0) (2.1.3)\n", "Requirement already satisfied: qtpy in /usr/local/lib/python3.6/dist-packages (from qtconsole->jupyter->task-geo==0.1.0.dev0) (1.9.0)\n", "Requirement already satisfied: ipython>=4.0.0; python_version >= \"3.3\" in /usr/local/lib/python3.6/dist-packages (from ipywidgets->jupyter->task-geo==0.1.0.dev0) (5.5.0)\n", "Requirement already satisfied: widgetsnbextension~=3.5.0 in /usr/local/lib/python3.6/dist-packages (from ipywidgets->jupyter->task-geo==0.1.0.dev0) (3.5.1)\n", "Requirement already satisfied: prompt-toolkit<2.0.0,>=1.0.0 in /usr/local/lib/python3.6/dist-packages (from jupyter-console->jupyter->task-geo==0.1.0.dev0) (1.0.18)\n", "Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter->task-geo==0.1.0.dev0) (1.4.2)\n", "Requirement already satisfied: entrypoints>=0.2.2 in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter->task-geo==0.1.0.dev0) (0.3)\n", "Requirement already satisfied: bleach in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter->task-geo==0.1.0.dev0) (3.1.4)\n", "Requirement already satisfied: testpath in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter->task-geo==0.1.0.dev0) (0.4.4)\n", "Requirement already satisfied: defusedxml in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter->task-geo==0.1.0.dev0) (0.6.0)\n", "Requirement already satisfied: mistune<2,>=0.8.1 in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter->task-geo==0.1.0.dev0) (0.8.4)\n", "Collecting num2words\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/eb/a2/ea800689730732e27711c41beed4b2a129b34974435bdc450377ec407738/num2words-0.5.10-py3-none-any.whl (101kB)\n", "\u001b[K |████████████████████████████████| 102kB 10.1MB/s \n", "\u001b[?25hRequirement already satisfied: inflect in /usr/local/lib/python3.6/dist-packages (from quantulum3>=0.7.3; python_version >= \"3\"->hdx-python-api->task-geo==0.1.0.dev0) (2.1.0)\n", "Collecting cryptography>=2.8\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/3c/04/686efee2dcdd25aecf357992e7d9362f443eb182ecd623f882bc9f7a6bba/cryptography-2.9.2-cp35-abi3-manylinux2010_x86_64.whl (2.7MB)\n", "\u001b[K |████████████████████████████████| 2.7MB 43.3MB/s \n", "\u001b[?25hRequirement already satisfied: setuptools in /usr/local/lib/python3.6/dist-packages (from ckanapi>=4.3->hdx-python-api->task-geo==0.1.0.dev0) (46.1.3)\n", "Requirement already satisfied: docopt in /usr/local/lib/python3.6/dist-packages (from ckanapi>=4.3->hdx-python-api->task-geo==0.1.0.dev0) (0.6.2)\n", "Requirement already satisfied: python-slugify>=1.0 in /usr/local/lib/python3.6/dist-packages (from ckanapi>=4.3->hdx-python-api->task-geo==0.1.0.dev0) (4.0.0)\n", "Collecting hdx-python-utilities>=2.3.3\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/0d/7a/45d463fffdf951ebb77347dd85020c3ba3e404835eb1864d3ce298d3df4d/hdx_python_utilities-2.3.3-py2.py3-none-any.whl (46kB)\n", "\u001b[K |████████████████████████████████| 51kB 7.6MB/s \n", "\u001b[?25hCollecting libhxl>=4.18; python_version >= \"3\"\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/d1/bb/7713720c382aad5260694fd5875fe013ee7ccef771e41a3298f661c01c84/libhxl-4.19.tar.gz (77kB)\n", "\u001b[K |████████████████████████████████| 81kB 10.0MB/s \n", "\u001b[?25hRequirement already satisfied: jsonschema!=2.5.0,>=2.4 in /usr/local/lib/python3.6/dist-packages (from nbformat->notebook->jupyter->task-geo==0.1.0.dev0) (2.6.0)\n", "Requirement already satisfied: ptyprocess; os_name != \"nt\" in /usr/local/lib/python3.6/dist-packages (from terminado>=0.3.3; sys_platform != \"win32\"->notebook->jupyter->task-geo==0.1.0.dev0) (0.6.0)\n", "Requirement already satisfied: decorator in /usr/local/lib/python3.6/dist-packages (from traitlets>=4.2.1->notebook->jupyter->task-geo==0.1.0.dev0) (4.4.2)\n", "Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.6/dist-packages (from jinja2->notebook->jupyter->task-geo==0.1.0.dev0) (1.1.1)\n", "Requirement already satisfied: simplegeneric>0.8 in /usr/local/lib/python3.6/dist-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets->jupyter->task-geo==0.1.0.dev0) (0.8.1)\n", "Requirement already satisfied: pickleshare in /usr/local/lib/python3.6/dist-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets->jupyter->task-geo==0.1.0.dev0) (0.7.5)\n", "Requirement already satisfied: pexpect; sys_platform != \"win32\" in /usr/local/lib/python3.6/dist-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets->jupyter->task-geo==0.1.0.dev0) (4.8.0)\n", "Requirement already satisfied: wcwidth in /usr/local/lib/python3.6/dist-packages (from prompt-toolkit<2.0.0,>=1.0.0->jupyter-console->jupyter->task-geo==0.1.0.dev0) (0.1.9)\n", "Requirement already satisfied: webencodings in /usr/local/lib/python3.6/dist-packages (from bleach->nbconvert->jupyter->task-geo==0.1.0.dev0) (0.5.1)\n", "Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/local/lib/python3.6/dist-packages (from cryptography>=2.8->pyOpenSSL->hdx-python-api->task-geo==0.1.0.dev0) (1.14.0)\n", "Requirement already satisfied: text-unidecode>=1.3 in /usr/local/lib/python3.6/dist-packages (from python-slugify>=1.0->ckanapi>=4.3->hdx-python-api->task-geo==0.1.0.dev0) (1.3)\n", "Collecting pyaml\n", " Downloading https://files.pythonhosted.org/packages/15/c4/1310a054d33abc318426a956e7d6df0df76a6ddfa9c66f6310274fb75d42/pyaml-20.4.0-py2.py3-none-any.whl\n", "Collecting psycopg2-binary\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/d3/8a/a7ed55c2c55bd4f5844d72734fedc0cef8a74518a0a19105a21c15628f1e/psycopg2_binary-2.8.5-cp36-cp36m-manylinux1_x86_64.whl (2.9MB)\n", "\u001b[K |████████████████████████████████| 2.9MB 47.2MB/s \n", "\u001b[?25hRequirement already satisfied: html5lib in /usr/local/lib/python3.6/dist-packages (from hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (1.0.1)\n", "Collecting basicauth\n", " Downloading https://files.pythonhosted.org/packages/76/47/08d21ffcc837bebf3306b8295f5d179f9bc498f6235ebf4a4e38be57839c/basicauth-0.4.1-py2.py3-none-any.whl\n", "Requirement already satisfied: typing in /usr/local/lib/python3.6/dist-packages (from hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (3.6.6)\n", "Collecting sshtunnel\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/c5/5c/4b320d7ec4b0d5d4d6df1fdf66a5799625b3623d0ce4efe81719c6f8dfb3/sshtunnel-0.1.5.tar.gz (49kB)\n", "\u001b[K |████████████████████████████████| 51kB 7.9MB/s \n", "\u001b[?25hCollecting tabulator[cchardet]>=1.38.4\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/b5/6f/3d755b247b354ce55e03f52c77a30b1e85358f3df34ecbbef983826a9ac8/tabulator-1.41.0-py2.py3-none-any.whl (68kB)\n", "\u001b[K |████████████████████████████████| 71kB 9.6MB/s \n", "\u001b[?25hCollecting yamlloader\n", " Downloading https://files.pythonhosted.org/packages/93/a2/2f0c2394af1559021703c8cbb1bc7419bb5a94ea6bde0ab8cd1e973bb605/yamlloader-0.5.5-py3-none-any.whl\n", "Collecting colorlog\n", " Downloading https://files.pythonhosted.org/packages/00/0d/22c73c2eccb21dd3498df7d22c0b1d4a30f5a5fb3feb64e1ce06bc247747/colorlog-4.1.0-py2.py3-none-any.whl\n", "Collecting email-validator\n", " Downloading https://files.pythonhosted.org/packages/45/54/1a1da475b684aa4eb30da169ea5ebd9341a5d3138138bc2b365222b9ac87/email_validator-1.1.0-py2.py3-none-any.whl\n", "Collecting ratelimit\n", " Downloading https://files.pythonhosted.org/packages/ab/38/ff60c8fc9e002d50d48822cc5095deb8ebbc5f91a6b8fdd9731c87a147c9/ratelimit-2.2.1.tar.gz\n", "Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.6/dist-packages (from hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (4.6.3)\n", "Requirement already satisfied: xlrd in /usr/local/lib/python3.6/dist-packages (from libhxl>=4.18; python_version >= \"3\"->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (1.1.0)\n", "Collecting unidecode\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/d0/42/d9edfed04228bacea2d824904cae367ee9efd05e6cce7ceaaedd0b0ad964/Unidecode-1.1.1-py2.py3-none-any.whl (238kB)\n", "\u001b[K |████████████████████████████████| 245kB 48.8MB/s \n", "\u001b[?25hCollecting python-io-wrapper\n", " Downloading https://files.pythonhosted.org/packages/76/81/88e02bc603e55883a087811a641fd3836749b7509365778fea29d74fd58c/python-io-wrapper-0.1.tar.gz\n", "Collecting jsonpath_rw\n", " Downloading https://files.pythonhosted.org/packages/71/7c/45001b1f19af8c4478489fbae4fc657b21c4c669d7a5a036a86882581d85/jsonpath-rw-1.4.0.tar.gz\n", "Collecting ply\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/a3/58/35da89ee790598a0700ea49b2a66594140f44dec458c07e8e3d4979137fc/ply-3.11-py2.py3-none-any.whl (49kB)\n", "\u001b[K |████████████████████████████████| 51kB 7.5MB/s \n", "\u001b[?25hRequirement already satisfied: pycparser in /usr/local/lib/python3.6/dist-packages (from cffi!=1.11.3,>=1.8->cryptography>=2.8->pyOpenSSL->hdx-python-api->task-geo==0.1.0.dev0) (2.20)\n", "Requirement already satisfied: PyYAML in /usr/local/lib/python3.6/dist-packages (from pyaml->hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (3.13)\n", "Collecting paramiko>=1.15.2\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/06/1e/1e08baaaf6c3d3df1459fd85f0e7d2d6aa916f33958f151ee1ecc9800971/paramiko-2.7.1-py2.py3-none-any.whl (206kB)\n", "\u001b[K |████████████████████████████████| 215kB 46.1MB/s \n", "\u001b[?25hCollecting openpyxl>=2.6\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/95/8c/83563c60489954e5b80f9e2596b93a68e1ac4e4a730deb1aae632066d704/openpyxl-3.0.3.tar.gz (172kB)\n", "\u001b[K |████████████████████████████████| 174kB 53.8MB/s \n", "\u001b[?25hCollecting ijson>=3.0.3\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/75/38/e2d650844fd69ced9fb8d2804ffd3cd76d43bcc1950c266367aaf9a456f6/ijson-3.0.3-cp36-cp36m-manylinux1_x86_64.whl (96kB)\n", "\u001b[K |████████████████████████████████| 102kB 12.9MB/s \n", "\u001b[?25hRequirement already satisfied: sqlalchemy>=0.9.6 in /usr/local/lib/python3.6/dist-packages (from tabulator[cchardet]>=1.38.4->hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (1.3.16)\n", "Requirement already satisfied: boto3>=1.9 in /usr/local/lib/python3.6/dist-packages (from tabulator[cchardet]>=1.38.4->hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (1.12.47)\n", "Collecting linear-tsv>=1.0\n", " Downloading https://files.pythonhosted.org/packages/82/e5/03207a0f11e1d60df85b97b61704ed701b725a7c2feaf83f7bfbd0c2d83e/linear-tsv-1.1.0.tar.gz\n", "Collecting unicodecsv>=0.14\n", " Downloading https://files.pythonhosted.org/packages/6f/a4/691ab63b17505a26096608cc309960b5a6bdf39e4ba1a793d5f9b1a53270/unicodecsv-0.14.1.tar.gz\n", "Collecting jsonlines>=1.1\n", " Downloading https://files.pythonhosted.org/packages/4f/9a/ab96291470e305504aa4b7a2e0ec132e930da89eb3ca7a82fbe03167c131/jsonlines-1.2.0-py2.py3-none-any.whl\n", "Requirement already satisfied: click>=6.0 in /usr/local/lib/python3.6/dist-packages (from tabulator[cchardet]>=1.38.4->hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (7.1.2)\n", "Collecting cchardet>=2.0; extra == \"cchardet\"\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/1e/c5/7e1a0d7b4afd83d6f8de794fce82820ec4c5136c6d52e14000822681a842/cchardet-2.1.6-cp36-cp36m-manylinux2010_x86_64.whl (241kB)\n", "\u001b[K |████████████████████████████████| 245kB 49.7MB/s \n", "\u001b[?25hCollecting dnspython>=1.15.0\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/ec/d3/3aa0e7213ef72b8585747aa0e271a9523e713813b9a20177ebe1e939deb0/dnspython-1.16.0-py2.py3-none-any.whl (188kB)\n", "\u001b[K |████████████████████████████████| 194kB 53.4MB/s \n", "\u001b[?25hCollecting pynacl>=1.0.1\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/27/15/2cd0a203f318c2240b42cd9dd13c931ddd61067809fee3479f44f086103e/PyNaCl-1.3.0-cp34-abi3-manylinux1_x86_64.whl (759kB)\n", "\u001b[K |████████████████████████████████| 768kB 54.6MB/s \n", "\u001b[?25hCollecting bcrypt>=3.1.3\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/8b/1d/82826443777dd4a624e38a08957b975e75df859b381ae302cfd7a30783ed/bcrypt-3.1.7-cp34-abi3-manylinux1_x86_64.whl (56kB)\n", "\u001b[K |████████████████████████████████| 61kB 8.5MB/s \n", "\u001b[?25hRequirement already satisfied: jdcal in /usr/local/lib/python3.6/dist-packages (from openpyxl>=2.6->tabulator[cchardet]>=1.38.4->hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (1.4.1)\n", "Requirement already satisfied: et_xmlfile in /usr/local/lib/python3.6/dist-packages (from openpyxl>=2.6->tabulator[cchardet]>=1.38.4->hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (1.0.1)\n", "Requirement already satisfied: botocore<1.16.0,>=1.15.47 in /usr/local/lib/python3.6/dist-packages (from boto3>=1.9->tabulator[cchardet]>=1.38.4->hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (1.15.47)\n", "Requirement already satisfied: s3transfer<0.4.0,>=0.3.0 in /usr/local/lib/python3.6/dist-packages (from boto3>=1.9->tabulator[cchardet]>=1.38.4->hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (0.3.3)\n", "Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in /usr/local/lib/python3.6/dist-packages (from boto3>=1.9->tabulator[cchardet]>=1.38.4->hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (0.9.5)\n", "Requirement already satisfied: docutils<0.16,>=0.10 in /usr/local/lib/python3.6/dist-packages (from botocore<1.16.0,>=1.15.47->boto3>=1.9->tabulator[cchardet]>=1.38.4->hdx-python-utilities>=2.3.3->hdx-python-country>=2.5.5->hdx-python-api->task-geo==0.1.0.dev0) (0.15.2)\n", "Building wheels for collected packages: task-geo, ckanapi, libhxl, sshtunnel, ratelimit, python-io-wrapper, jsonpath-rw, openpyxl, linear-tsv, unicodecsv\n", " Building wheel for task-geo (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for task-geo: filename=task_geo-0.1.0.dev0-py2.py3-none-any.whl size=177389 sha256=fa9f8ea35c5daa130fc5c33540c4cb66e54af488b1275dc3cca3eef090b6b72c\n", " Stored in directory: /root/.cache/pip/wheels/f2/42/40/dba27500b60934a7ac65cdefe4845fd3001fdc3a1c5938c8d4\n", " Building wheel for ckanapi (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for ckanapi: filename=ckanapi-4.3-cp36-none-any.whl size=38647 sha256=e873e55af78a0a989160eb522dac01a1cdc303b819568908215cd1c87538bfb9\n", " Stored in directory: /root/.cache/pip/wheels/41/f2/fb/c8ce857007de64cc6b36b8f1048272396bc0817c35ee3a3e73\n", " Building wheel for libhxl (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for libhxl: filename=libhxl-4.19-cp36-none-any.whl size=81540 sha256=780459df15ae2bc96ff813b4c9236d0fdf8c38a186b0932396ac6e7ef9dab8fd\n", " Stored in directory: /root/.cache/pip/wheels/99/4e/75/2c1d5d8cd3c34a42dcd9a388562d3dd3fb2197adbb47e20503\n", " Building wheel for sshtunnel (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for sshtunnel: filename=sshtunnel-0.1.5-py2.py3-none-any.whl size=23243 sha256=21bc695380c8d89c4b5765d40d9e64afcc2b42cf73f1813b0dea5514f0098ca5\n", " Stored in directory: /root/.cache/pip/wheels/e8/d2/38/b9791b7391f634099194ec6697fa671194f3353906d94c8f92\n", " Building wheel for ratelimit (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for ratelimit: filename=ratelimit-2.2.1-cp36-none-any.whl size=5893 sha256=8666de8ebdec13cbf6c7bcdd0029a993ba77e19e49185641bc488caf4c9f1a07\n", " Stored in directory: /root/.cache/pip/wheels/05/d9/82/3c6044cf1a54aab9151612458446d9b17a38416869e1b1d9b8\n", " Building wheel for python-io-wrapper (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for python-io-wrapper: filename=python_io_wrapper-0.1-cp36-none-any.whl size=2490 sha256=ae932fd2014bec6c0902559f3357e9549c1c1567d29d3b78cc852c53e8d5fb72\n", " Stored in directory: /root/.cache/pip/wheels/6b/26/be/da3c0a774901c557a0bee985e7aade5b9db75fe4dc8ef99ced\n", " Building wheel for jsonpath-rw (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for jsonpath-rw: filename=jsonpath_rw-1.4.0-cp36-none-any.whl size=15146 sha256=30ef8e57898b0eb41633f88e5d9d405fc2d50e0e6df252e9d553840dd0c95418\n", " Stored in directory: /root/.cache/pip/wheels/5c/00/9a/82822db383c2d96dcebf839786665a185f92d37e5026f9806f\n", " Building wheel for openpyxl (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for openpyxl: filename=openpyxl-3.0.3-py2.py3-none-any.whl size=241262 sha256=bd0378aa96fd157fb44a9cd8f6129489dd537094749833787851e9304ce5cd56\n", " Stored in directory: /root/.cache/pip/wheels/b5/85/ca/e768ac132e57e75e645a151f8badac71cc0089e7225dddf76b\n", " Building wheel for linear-tsv (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for linear-tsv: filename=linear_tsv-1.1.0-cp36-none-any.whl size=7383 sha256=244e9c6e9535cc9e2a8901455b85aeabdb2e2c10e06fa77a1eeabfad94f9d93c\n", " Stored in directory: /root/.cache/pip/wheels/3f/8a/cb/38917fd1ef4356b9870ace7331b83417dc594bf2c029bd991f\n", " Building wheel for unicodecsv (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for unicodecsv: filename=unicodecsv-0.14.1-cp36-none-any.whl size=10768 sha256=32b94e21c42944719e5521605927de64740facc54827f0a78f609652ed5cf6a0\n", " Stored in directory: /root/.cache/pip/wheels/a6/09/e9/e800279c98a0a8c94543f3de6c8a562f60e51363ed26e71283\n", "Successfully built task-geo ckanapi libhxl sshtunnel ratelimit python-io-wrapper jsonpath-rw openpyxl linear-tsv unicodecsv\n", "\u001b[31mERROR: hdx-python-utilities 2.3.3 has requirement six>=1.14.0, but you'll have six 1.12.0 which is incompatible.\u001b[0m\n", "Installing collected packages: cryptography, pyOpenSSL, ndg-httpsclient, num2words, quantulum3, ckanapi, pyaml, psycopg2-binary, basicauth, pynacl, bcrypt, paramiko, sshtunnel, openpyxl, ijson, linear-tsv, unicodecsv, jsonlines, cchardet, tabulator, yamlloader, colorlog, dnspython, email-validator, ratelimit, hdx-python-utilities, unidecode, python-io-wrapper, ply, jsonpath-rw, libhxl, hdx-python-country, hdx-python-api, task-geo\n", " Found existing installation: openpyxl 2.5.9\n", " Uninstalling openpyxl-2.5.9:\n", " Successfully uninstalled openpyxl-2.5.9\n", "Successfully installed basicauth-0.4.1 bcrypt-3.1.7 cchardet-2.1.6 ckanapi-4.3 colorlog-4.1.0 cryptography-2.9.2 dnspython-1.16.0 email-validator-1.1.0 hdx-python-api-4.5.6 hdx-python-country-2.5.5 hdx-python-utilities-2.3.3 ijson-3.0.3 jsonlines-1.2.0 jsonpath-rw-1.4.0 libhxl-4.19 linear-tsv-1.1.0 ndg-httpsclient-0.5.1 num2words-0.5.10 openpyxl-3.0.3 paramiko-2.7.1 ply-3.11 psycopg2-binary-2.8.5 pyOpenSSL-19.1.0 pyaml-20.4.0 pynacl-1.3.0 python-io-wrapper-0.1 quantulum3-0.7.3 ratelimit-2.2.1 sshtunnel-0.1.5 tabulator-1.41.0 task-geo-0.1.0.dev0 unicodecsv-0.14.1 unidecode-1.1.1 yamlloader-0.5.5\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "w7gA2A1-OW59", "colab_type": "code", "colab": {} }, "source": [ "os.chdir('..')" ], "execution_count": 0, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "IrE3tZaxOrGh", "colab_type": "code", "outputId": "70239ef7-c649-4d6c-98d1-0f73b6c7dffa", "colab": { "base_uri": "https://localhost:8080/", "height": 104 } }, "source": [ "df = load_data()" ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "/usr/local/lib/python3.6/dist-packages/IPython/core/interactiveshell.py:2882: DtypeWarning: Columns (2) have mixed types.Specify dtype option on import or set low_memory=False.\n", " exec(code_obj, self.user_global_ns, self.user_ns)\n", "/content/task-ts/corona_ts/data_utils/data_crawler.py:92: DtypeWarning: Columns (3) have mixed types.Specify dtype option on import or set low_memory=False.\n", " mobility_df = fetch_mobility_data()\n" ], "name": "stderr" } ] }, { "cell_type": "code", "metadata": { "id": "rdKehyM3OsD6", "colab_type": "code", "outputId": "5c9398d3-bed0-4cd2-adca-5264b6cfab3d", "colab": { "base_uri": "https://localhost:8080/", "height": 598 } }, "source": [ "df[df['region']=='Florida'].sort_by()" ], "execution_count": 0, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countryregionsub_regioncitylatlongdateleveltzcasesdeathsrecoveredactivetestedhospitalizeddischargedcountry_retail_recreationcountry_grocery_pharmacycountry_parkscountry_transit_stationscountry_workplacescountry_residentialregion_retail_recreationregion_grocery_pharmacyregion_parksregion_transit_stationsregion_workplacesregion_residential
27492United StatesFloridaManatee CountyNaN27.4270-82.40002020-03-01sub_regionAmerica/New_York100000013.09.018.07.03.0-1.08.07.010.07.01.0-1.0
27493United StatesFloridaManatee CountyNaN27.4270-82.40002020-03-01sub_regionAmerica/New_York100000013.09.018.07.03.0-1.03.05.016.0-4.0-3.0-1.0
27494United StatesFloridaManatee CountyNaN27.4270-82.40002020-03-01sub_regionAmerica/New_York100000013.09.018.07.03.0-1.019.019.0NaNNaN0.0NaN
27495United StatesFloridaManatee CountyNaN27.4270-82.40002020-03-01sub_regionAmerica/New_York100000013.09.018.07.03.0-1.019.011.033.024.011.0-3.0
27496United StatesFloridaManatee CountyNaN27.4270-82.40002020-03-01sub_regionAmerica/New_York100000013.09.018.07.03.0-1.019.012.0NaNNaN0.0NaN
.......................................................................................
7679488United StatesFloridaCalhoun CountyNaN30.4040-85.16152020-05-02sub_regionAmerica/Chicago1400014100NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
7679495United StatesFloridaCitrus CountyNaN28.8570-82.46402020-05-02sub_regionAmerica/New_York991100170400NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
7679499United StatesFloridaCollier CountyNaN26.1600-81.35952020-05-02sub_regionAmerica/New_York6282100586700NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
7679508United StatesFloridaClay CountyNaN29.9560-81.81502020-05-02sub_regionAmerica/New_York2781800406000NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
7679765United StatesFloridaNaNNaN27.8185-83.83852020-05-02regionAmerica/New_York3546313640041776200NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

192901 rows × 28 columns

\n", "
" ], "text/plain": [ " country region ... region_workplaces region_residential\n", "27492 United States Florida ... 1.0 -1.0\n", "27493 United States Florida ... -3.0 -1.0\n", "27494 United States Florida ... 0.0 NaN\n", "27495 United States Florida ... 11.0 -3.0\n", "27496 United States Florida ... 0.0 NaN\n", "... ... ... ... ... ...\n", "7679488 United States Florida ... NaN NaN\n", "7679495 United States Florida ... NaN NaN\n", "7679499 United States Florida ... NaN NaN\n", "7679508 United States Florida ... NaN NaN\n", "7679765 United States Florida ... NaN NaN\n", "\n", "[192901 rows x 28 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 17 } ] } ] }