22-T67/keras_test.ipynb

1935 lines
281 KiB
Plaintext
Raw Permalink Normal View History

2023-03-30 10:25:44 +08:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"from sklearn.model_selection import train_test_split\n",
"import numpy as np\n",
"import seaborn as sns\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import datetime as dt\n",
"\n",
"plt.rcParams['font.sans-serif'] = ['SimHei']\n",
"plt.rcParams['axes.unicode_minus'] = False"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"import os"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"os.environ['CUDA_VISIBLE_DEVICES'] = '0,1'"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-16 09:59:22.139088: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcudart.so.11.0\n"
]
}
],
"source": [
"import tensorflow as tf"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Date</th>\n",
" <th>PM2.5</th>\n",
" <th>PM10</th>\n",
" <th>SO2</th>\n",
" <th>NO2</th>\n",
" <th>O3</th>\n",
" <th>O3_8h</th>\n",
" <th>CO</th>\n",
" <th>wd</th>\n",
" <th>ws</th>\n",
" <th>air_temp</th>\n",
" <th>RH</th>\n",
" <th>blh</th>\n",
" <th>sp</th>\n",
" <th>sr</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2015-01-02 01:00:00</td>\n",
" <td>136.0</td>\n",
" <td>214.0</td>\n",
" <td>317.0</td>\n",
" <td>38.0</td>\n",
" <td>8.0</td>\n",
" <td>9.0</td>\n",
" <td>3.71</td>\n",
" <td>43.0</td>\n",
" <td>1.0</td>\n",
" <td>-11.0</td>\n",
" <td>45.0</td>\n",
" <td>36.619542</td>\n",
" <td>89545.385661</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2015-01-02 02:00:00</td>\n",
" <td>114.0</td>\n",
" <td>176.0</td>\n",
" <td>305.0</td>\n",
" <td>38.0</td>\n",
" <td>8.0</td>\n",
" <td>9.0</td>\n",
" <td>3.55</td>\n",
" <td>58.0</td>\n",
" <td>0.7</td>\n",
" <td>-11.1</td>\n",
" <td>47.0</td>\n",
" <td>33.766181</td>\n",
" <td>89537.049808</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2015-01-02 03:00:00</td>\n",
" <td>97.0</td>\n",
" <td>154.0</td>\n",
" <td>306.0</td>\n",
" <td>37.0</td>\n",
" <td>7.0</td>\n",
" <td>8.0</td>\n",
" <td>3.51</td>\n",
" <td>185.0</td>\n",
" <td>0.5</td>\n",
" <td>-11.7</td>\n",
" <td>50.0</td>\n",
" <td>31.642749</td>\n",
" <td>89549.808766</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2015-01-02 04:00:00</td>\n",
" <td>87.0</td>\n",
" <td>141.0</td>\n",
" <td>316.0</td>\n",
" <td>38.0</td>\n",
" <td>7.0</td>\n",
" <td>8.0</td>\n",
" <td>3.55</td>\n",
" <td>0.0</td>\n",
" <td>0.2</td>\n",
" <td>-12.7</td>\n",
" <td>52.0</td>\n",
" <td>28.258529</td>\n",
" <td>89521.398819</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2015-01-02 05:00:00</td>\n",
" <td>85.0</td>\n",
" <td>139.0</td>\n",
" <td>292.0</td>\n",
" <td>37.0</td>\n",
" <td>7.0</td>\n",
" <td>8.0</td>\n",
" <td>3.62</td>\n",
" <td>199.0</td>\n",
" <td>1.4</td>\n",
" <td>-10.9</td>\n",
" <td>61.0</td>\n",
" <td>26.400526</td>\n",
" <td>89526.162164</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date PM2.5 PM10 SO2 NO2 O3 O3_8h CO wd \\\n",
"0 2015-01-02 01:00:00 136.0 214.0 317.0 38.0 8.0 9.0 3.71 43.0 \n",
"1 2015-01-02 02:00:00 114.0 176.0 305.0 38.0 8.0 9.0 3.55 58.0 \n",
"2 2015-01-02 03:00:00 97.0 154.0 306.0 37.0 7.0 8.0 3.51 185.0 \n",
"3 2015-01-02 04:00:00 87.0 141.0 316.0 38.0 7.0 8.0 3.55 0.0 \n",
"4 2015-01-02 05:00:00 85.0 139.0 292.0 37.0 7.0 8.0 3.62 199.0 \n",
"\n",
" ws air_temp RH blh sp sr \n",
"0 1.0 -11.0 45.0 36.619542 89545.385661 0.0 \n",
"1 0.7 -11.1 47.0 33.766181 89537.049808 0.0 \n",
"2 0.5 -11.7 50.0 31.642749 89549.808766 0.0 \n",
"3 0.2 -12.7 52.0 28.258529 89521.398819 0.0 \n",
"4 1.4 -10.9 61.0 26.400526 89526.162164 0.0 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_excel('./data/merge_data_ty1.xlsx')\n",
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"data.Date = pd.to_datetime(data.Date)\n",
"data['days'] = data.Date.apply(lambda x: f\"{x.year}-{x.month}-{x.day}\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"['2016-12-4',\n",
" '2017-1-17',\n",
" '2017-9-18',\n",
" '2017-10-8',\n",
" '2017-6-26',\n",
" '2016-12-5',\n",
" '2017-9-17',\n",
" '2017-3-10',\n",
" '2015-5-7',\n",
" '2017-3-6',\n",
" '2016-6-28',\n",
" '2016-8-4',\n",
" '2017-2-7',\n",
" '2015-10-13',\n",
" '2020-11-24',\n",
" '2017-3-8',\n",
" '2016-12-22',\n",
" '2018-8-25',\n",
" '2020-12-9',\n",
" '2020-12-12',\n",
" '2019-5-5',\n",
" '2019-1-30',\n",
" '2018-8-27',\n",
" '2015-7-1',\n",
" '2017-2-5',\n",
" '2016-12-7',\n",
" '2016-5-24',\n",
" '2015-7-16',\n",
" '2017-6-15',\n",
" '2017-3-21',\n",
" '2017-4-23',\n",
" '2020-12-16',\n",
" '2018-7-23',\n",
" '2017-2-3',\n",
" '2018-8-29',\n",
" '2017-1-2',\n",
" '2017-1-9',\n",
" '2016-12-15',\n",
" '2019-8-13',\n",
" '2017-11-4',\n",
" '2018-6-1',\n",
" '2015-6-20',\n",
" '2015-7-2',\n",
" '2019-1-21',\n",
" '2019-9-1',\n",
" '2019-8-25',\n",
" '2016-10-18',\n",
" '2017-5-23',\n",
" '2015-7-21',\n",
" '2018-8-31',\n",
" '2016-12-8',\n",
" '2018-9-2',\n",
" '2017-8-18',\n",
" '2016-9-18',\n",
" '2019-10-3',\n",
" '2016-5-23',\n",
" '2016-5-31',\n",
" '2018-9-3',\n",
" '2017-4-14',\n",
" '2019-4-17',\n",
" '2015-3-12',\n",
" '2017-2-4',\n",
" '2018-12-8',\n",
" '2015-6-19',\n",
" '2015-9-19',\n",
" '2015-5-8',\n",
" '2015-12-14',\n",
" '2016-5-25',\n",
" '2015-4-19',\n",
" '2019-5-31',\n",
" '2019-6-21',\n",
" '2018-8-24',\n",
" '2017-10-21',\n",
" '2016-11-10',\n",
" '2015-1-4',\n",
" '2016-10-17',\n",
" '2019-10-7',\n",
" '2017-5-4',\n",
" '2017-7-9',\n",
" '2016-4-25',\n",
" '2017-10-11',\n",
" '2019-10-2',\n",
" '2020-12-8',\n",
" '2016-6-9',\n",
" '2019-9-3',\n",
" '2016-11-15',\n",
" '2017-5-14',\n",
" '2017-8-23',\n",
" '2016-11-2',\n",
" '2016-8-2',\n",
" '2016-4-24',\n",
" '2016-10-21',\n",
" '2019-6-22',\n",
" '2017-9-8',\n",
" '2015-12-13',\n",
" '2017-9-9',\n",
" '2017-1-30',\n",
" '2018-12-27',\n",
" '2015-9-20',\n",
" '2019-8-31',\n",
" '2019-9-22',\n",
" '2017-3-14',\n",
" '2016-12-6',\n",
" '2019-8-22',\n",
" '2019-9-21',\n",
" '2018-9-1',\n",
" '2018-8-30',\n",
" '2018-8-28',\n",
" '2018-8-26',\n",
" '2017-1-29',\n",
" '2017-12-9',\n",
" '2018-5-10',\n",
" '2019-8-23',\n",
" '2019-8-30']"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"days_counts = ((data.days.value_counts() < 19) * 1).to_frame().reset_index()\n",
"days_counts.columns = ['days', 'counts']\n",
"drop_days = days_counts[days_counts.counts == 1].days.values.tolist()\n",
"drop_days"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(48496, 16)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"new_data = data.drop(columns='days').set_index('Date').interpolate().reset_index()\n",
"new_data['days'] = new_data.Date.apply(lambda x: f\"{x.year}-{x.month}-{x.day}\")\n",
"new_data.shape"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Date</th>\n",
" <th>PM2.5</th>\n",
" <th>PM10</th>\n",
" <th>SO2</th>\n",
" <th>NO2</th>\n",
" <th>O3</th>\n",
" <th>O3_8h</th>\n",
" <th>CO</th>\n",
" <th>wd</th>\n",
" <th>ws</th>\n",
" <th>air_temp</th>\n",
" <th>RH</th>\n",
" <th>blh</th>\n",
" <th>sp</th>\n",
" <th>sr</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2015-01-02 01:00:00</td>\n",
" <td>136.0</td>\n",
" <td>214.0</td>\n",
" <td>317.0</td>\n",
" <td>38.0</td>\n",
" <td>8.0</td>\n",
" <td>9.0</td>\n",
" <td>3.71</td>\n",
" <td>43.0</td>\n",
" <td>1.0</td>\n",
" <td>-11.0</td>\n",
" <td>45.0</td>\n",
" <td>36.619542</td>\n",
" <td>89545.385661</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2015-01-02 02:00:00</td>\n",
" <td>114.0</td>\n",
" <td>176.0</td>\n",
" <td>305.0</td>\n",
" <td>38.0</td>\n",
" <td>8.0</td>\n",
" <td>9.0</td>\n",
" <td>3.55</td>\n",
" <td>58.0</td>\n",
" <td>0.7</td>\n",
" <td>-11.1</td>\n",
" <td>47.0</td>\n",
" <td>33.766181</td>\n",
" <td>89537.049808</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2015-01-02 03:00:00</td>\n",
" <td>97.0</td>\n",
" <td>154.0</td>\n",
" <td>306.0</td>\n",
" <td>37.0</td>\n",
" <td>7.0</td>\n",
" <td>8.0</td>\n",
" <td>3.51</td>\n",
" <td>185.0</td>\n",
" <td>0.5</td>\n",
" <td>-11.7</td>\n",
" <td>50.0</td>\n",
" <td>31.642749</td>\n",
" <td>89549.808766</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2015-01-02 04:00:00</td>\n",
" <td>87.0</td>\n",
" <td>141.0</td>\n",
" <td>316.0</td>\n",
" <td>38.0</td>\n",
" <td>7.0</td>\n",
" <td>8.0</td>\n",
" <td>3.55</td>\n",
" <td>0.0</td>\n",
" <td>0.2</td>\n",
" <td>-12.7</td>\n",
" <td>52.0</td>\n",
" <td>28.258529</td>\n",
" <td>89521.398819</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2015-01-02 05:00:00</td>\n",
" <td>85.0</td>\n",
" <td>139.0</td>\n",
" <td>292.0</td>\n",
" <td>37.0</td>\n",
" <td>7.0</td>\n",
" <td>8.0</td>\n",
" <td>3.62</td>\n",
" <td>199.0</td>\n",
" <td>1.4</td>\n",
" <td>-10.9</td>\n",
" <td>61.0</td>\n",
" <td>26.400526</td>\n",
" <td>89526.162164</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48491</th>\n",
" <td>2020-12-31 19:00:00</td>\n",
" <td>27.0</td>\n",
" <td>51.0</td>\n",
" <td>16.0</td>\n",
" <td>46.0</td>\n",
" <td>29.0</td>\n",
" <td>43.0</td>\n",
" <td>0.72</td>\n",
" <td>250.0</td>\n",
" <td>1.1</td>\n",
" <td>-10.8</td>\n",
" <td>40.0</td>\n",
" <td>49.236325</td>\n",
" <td>89445.869718</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48492</th>\n",
" <td>2020-12-31 20:00:00</td>\n",
" <td>26.0</td>\n",
" <td>51.0</td>\n",
" <td>12.0</td>\n",
" <td>47.0</td>\n",
" <td>26.0</td>\n",
" <td>41.0</td>\n",
" <td>0.83</td>\n",
" <td>242.0</td>\n",
" <td>0.3</td>\n",
" <td>-12.8</td>\n",
" <td>49.0</td>\n",
" <td>42.614894</td>\n",
" <td>89439.267234</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48493</th>\n",
" <td>2020-12-31 21:00:00</td>\n",
" <td>29.0</td>\n",
" <td>58.0</td>\n",
" <td>16.0</td>\n",
" <td>48.0</td>\n",
" <td>25.0</td>\n",
" <td>39.0</td>\n",
" <td>1.15</td>\n",
" <td>135.0</td>\n",
" <td>0.9</td>\n",
" <td>-12.4</td>\n",
" <td>42.0</td>\n",
" <td>43.656467</td>\n",
" <td>89416.920363</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48494</th>\n",
" <td>2020-12-31 22:00:00</td>\n",
" <td>32.0</td>\n",
" <td>60.0</td>\n",
" <td>23.0</td>\n",
" <td>49.0</td>\n",
" <td>20.0</td>\n",
" <td>35.0</td>\n",
" <td>0.90</td>\n",
" <td>184.0</td>\n",
" <td>1.7</td>\n",
" <td>-9.1</td>\n",
" <td>33.0</td>\n",
" <td>46.632391</td>\n",
" <td>89396.605025</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48495</th>\n",
" <td>2020-12-31 23:00:00</td>\n",
" <td>53.0</td>\n",
" <td>94.0</td>\n",
" <td>41.0</td>\n",
" <td>57.0</td>\n",
" <td>12.0</td>\n",
" <td>29.0</td>\n",
" <td>1.18</td>\n",
" <td>135.0</td>\n",
" <td>1.2</td>\n",
" <td>-13.1</td>\n",
" <td>44.0</td>\n",
" <td>46.557993</td>\n",
" <td>89371.210854</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>46992 rows × 15 columns</p>\n",
"</div>"
],
"text/plain": [
" Date PM2.5 PM10 SO2 NO2 O3 O3_8h CO \\\n",
"0 2015-01-02 01:00:00 136.0 214.0 317.0 38.0 8.0 9.0 3.71 \n",
"1 2015-01-02 02:00:00 114.0 176.0 305.0 38.0 8.0 9.0 3.55 \n",
"2 2015-01-02 03:00:00 97.0 154.0 306.0 37.0 7.0 8.0 3.51 \n",
"3 2015-01-02 04:00:00 87.0 141.0 316.0 38.0 7.0 8.0 3.55 \n",
"4 2015-01-02 05:00:00 85.0 139.0 292.0 37.0 7.0 8.0 3.62 \n",
"... ... ... ... ... ... ... ... ... \n",
"48491 2020-12-31 19:00:00 27.0 51.0 16.0 46.0 29.0 43.0 0.72 \n",
"48492 2020-12-31 20:00:00 26.0 51.0 12.0 47.0 26.0 41.0 0.83 \n",
"48493 2020-12-31 21:00:00 29.0 58.0 16.0 48.0 25.0 39.0 1.15 \n",
"48494 2020-12-31 22:00:00 32.0 60.0 23.0 49.0 20.0 35.0 0.90 \n",
"48495 2020-12-31 23:00:00 53.0 94.0 41.0 57.0 12.0 29.0 1.18 \n",
"\n",
" wd ws air_temp RH blh sp sr \n",
"0 43.0 1.0 -11.0 45.0 36.619542 89545.385661 0.0 \n",
"1 58.0 0.7 -11.1 47.0 33.766181 89537.049808 0.0 \n",
"2 185.0 0.5 -11.7 50.0 31.642749 89549.808766 0.0 \n",
"3 0.0 0.2 -12.7 52.0 28.258529 89521.398819 0.0 \n",
"4 199.0 1.4 -10.9 61.0 26.400526 89526.162164 0.0 \n",
"... ... ... ... ... ... ... ... \n",
"48491 250.0 1.1 -10.8 40.0 49.236325 89445.869718 0.0 \n",
"48492 242.0 0.3 -12.8 49.0 42.614894 89439.267234 0.0 \n",
"48493 135.0 0.9 -12.4 42.0 43.656467 89416.920363 0.0 \n",
"48494 184.0 1.7 -9.1 33.0 46.632391 89396.605025 0.0 \n",
"48495 135.0 1.2 -13.1 44.0 46.557993 89371.210854 0.0 \n",
"\n",
"[46992 rows x 15 columns]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"use_data = new_data[~new_data.days.isin(drop_days)].drop(columns='days')\n",
"use_data"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(['ws', 'air_temp', 'RH', 'blh', 'sp', 'sr'],\n",
" ['PM2.5', 'PM10', 'SO2', 'NO2', 'O3', 'CO'])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feature_cols = [x for x in use_data.columns[-7:].tolist() if x != 'wd']\n",
"out_cols = [x for x in use_data.columns[1:8].tolist() if x != 'O3_8h']\n",
"feature_cols, out_cols"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"use_cols = feature_cols + out_cols"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"for col in use_cols:\n",
" use_data[col] = use_data[col].astype(float)\n",
" if col in out_cols:\n",
" use_data[col] = np.log1p(use_data[col]) # 输出列,先做对数化再做归一化"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"maxs = use_data[use_cols].max()\n",
"mins = use_data[use_cols].min()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"for col in use_cols:\n",
" use_data[col] = (use_data[col] - mins[col]) / (maxs[col] - mins[col])"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"for col in feature_cols:\n",
" use_data[col] = np.log1p(use_data[col])"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PM2.5</th>\n",
" <th>PM10</th>\n",
" <th>SO2</th>\n",
" <th>NO2</th>\n",
" <th>O3</th>\n",
" <th>O3_8h</th>\n",
" <th>CO</th>\n",
" <th>wd</th>\n",
" <th>ws</th>\n",
" <th>air_temp</th>\n",
" <th>RH</th>\n",
" <th>blh</th>\n",
" <th>sp</th>\n",
" <th>sr</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" <td>46992.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.540643</td>\n",
" <td>0.520721</td>\n",
" <td>0.400111</td>\n",
" <td>0.592997</td>\n",
" <td>0.553253</td>\n",
" <td>50.459940</td>\n",
" <td>0.308149</td>\n",
" <td>183.429637</td>\n",
" <td>0.153186</td>\n",
" <td>0.424889</td>\n",
" <td>0.415632</td>\n",
" <td>0.098865</td>\n",
" <td>0.383629</td>\n",
" <td>0.157137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.146384</td>\n",
" <td>0.116015</td>\n",
" <td>0.187431</td>\n",
" <td>0.167457</td>\n",
" <td>0.219076</td>\n",
" <td>44.249202</td>\n",
" <td>0.146888</td>\n",
" <td>111.611348</td>\n",
" <td>0.090439</td>\n",
" <td>0.130073</td>\n",
" <td>0.177612</td>\n",
" <td>0.124225</td>\n",
" <td>0.118019</td>\n",
" <td>0.204083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.439383</td>\n",
" <td>0.447493</td>\n",
" <td>0.259803</td>\n",
" <td>0.487728</td>\n",
" <td>0.369501</td>\n",
" <td>15.000000</td>\n",
" <td>0.201095</td>\n",
" <td>84.000000</td>\n",
" <td>0.094410</td>\n",
" <td>0.322655</td>\n",
" <td>0.271934</td>\n",
" <td>0.005794</td>\n",
" <td>0.289696</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>0.545412</td>\n",
" <td>0.527246</td>\n",
" <td>0.381729</td>\n",
" <td>0.615689</td>\n",
" <td>0.591369</td>\n",
" <td>39.000000</td>\n",
" <td>0.283458</td>\n",
" <td>189.000000</td>\n",
" <td>0.147053</td>\n",
" <td>0.441955</td>\n",
" <td>0.426084</td>\n",
" <td>0.038142</td>\n",
" <td>0.394265</td>\n",
" <td>0.015822</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>0.640919</td>\n",
" <td>0.602141</td>\n",
" <td>0.523471</td>\n",
" <td>0.721767</td>\n",
" <td>0.725716</td>\n",
" <td>73.000000</td>\n",
" <td>0.392872</td>\n",
" <td>284.000000</td>\n",
" <td>0.180670</td>\n",
" <td>0.532543</td>\n",
" <td>0.577315</td>\n",
" <td>0.159395</td>\n",
" <td>0.474785</td>\n",
" <td>0.314768</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>268.000000</td>\n",
" <td>1.000000</td>\n",
" <td>360.000000</td>\n",
" <td>0.693147</td>\n",
" <td>0.693147</td>\n",
" <td>0.693147</td>\n",
" <td>0.693147</td>\n",
" <td>0.693147</td>\n",
" <td>0.693147</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" PM2.5 PM10 SO2 NO2 O3 \\\n",
"count 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000 \n",
"mean 0.540643 0.520721 0.400111 0.592997 0.553253 \n",
"std 0.146384 0.116015 0.187431 0.167457 0.219076 \n",
"min 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 0.439383 0.447493 0.259803 0.487728 0.369501 \n",
"50% 0.545412 0.527246 0.381729 0.615689 0.591369 \n",
"75% 0.640919 0.602141 0.523471 0.721767 0.725716 \n",
"max 1.000000 1.000000 1.000000 1.000000 1.000000 \n",
"\n",
" O3_8h CO wd ws air_temp \\\n",
"count 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000 \n",
"mean 50.459940 0.308149 183.429637 0.153186 0.424889 \n",
"std 44.249202 0.146888 111.611348 0.090439 0.130073 \n",
"min 1.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 15.000000 0.201095 84.000000 0.094410 0.322655 \n",
"50% 39.000000 0.283458 189.000000 0.147053 0.441955 \n",
"75% 73.000000 0.392872 284.000000 0.180670 0.532543 \n",
"max 268.000000 1.000000 360.000000 0.693147 0.693147 \n",
"\n",
" RH blh sp sr \n",
"count 46992.000000 46992.000000 46992.000000 46992.000000 \n",
"mean 0.415632 0.098865 0.383629 0.157137 \n",
"std 0.177612 0.124225 0.118019 0.204083 \n",
"min 0.000000 0.000000 0.000000 0.000000 \n",
"25% 0.271934 0.005794 0.289696 0.000000 \n",
"50% 0.426084 0.038142 0.394265 0.015822 \n",
"75% 0.577315 0.159395 0.474785 0.314768 \n",
"max 0.693147 0.693147 0.693147 0.693147 "
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"use_data.describe()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"train_data, valid = train_test_split(use_data[use_cols], test_size=0.2, random_state=42, shuffle=True)\n",
"valid_data, test_data = train_test_split(valid, test_size=0.5, random_state=42, shuffle=True)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"import tensorflow as tf"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"from tensorflow.keras.layers import Dense, Input, Concatenate, Subtract\n",
"import tensorflow.keras.backend as K"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"def create_multi_task_learning_model():\n",
" def create_task_branch(main_branch, name):\n",
" task_branch = Dense(100, activation='relu')(main_branch)\n",
" task_branch = Dense(50, activation='relu')(task_branch)\n",
" task_branch = Dense(40, activation='relu')(task_branch)\n",
" task_branch = Dense(20, activation='relu')(task_branch)\n",
" task_branch = Dense(10, activation='relu')(task_branch)\n",
" task_branch = Dense(5, activation='relu', name=f\"{name}_dense\")(task_branch)\n",
" return task_branch\n",
"\n",
" inputs = Input(shape=(1, 6), name='input')\n",
"\n",
" main_branch = Dense(800, activation='relu')(inputs)\n",
" main_branch = Dense(400, activation='relu')(main_branch)\n",
" main_branch = Dense(200, activation='relu')(main_branch)\n",
" main_branch = Dense(100, activation='relu')(main_branch)\n",
"\n",
" co = create_task_branch(main_branch, name='co')\n",
" so2 = create_task_branch(main_branch, name='so2')\n",
" no2 = create_task_branch(main_branch, name='no2')\n",
" o3 = create_task_branch(main_branch, name='o3')\n",
" pm25 = create_task_branch(main_branch, name='pm25')\n",
" pm10 = create_task_branch(main_branch, name='pm10')\n",
"\n",
" no2_merge = Concatenate()([no2, o3])\n",
" o3_merge = Concatenate()([o3, no2])\n",
" pm25_merge = Concatenate()([so2, no2, o3, pm25])\n",
" pm10_merge = Concatenate()([pm25, pm10])\n",
"\n",
" co_out = Dense(1, name='task_co_output')(co)\n",
" so2_out = Dense(1, name='task_so2_output')(so2)\n",
" no2_out = Dense(units=1, name='task_no2_output')(no2_merge)\n",
" o3_out = Dense(input_dim=10, units=1, name='task_o3_output')(o3_merge)\n",
" pm25_out = Dense(input_dim=20, units=1, name='task_pm25_output')(pm25_merge)\n",
" pm10_out = Dense(input_dim=10, units=1, name='task_pm10_output')(pm10_merge)\n",
"\n",
"\n",
" model = tf.keras.Model(inputs=inputs, outputs=[co_out, so2_out, no2_out, o3_out, pm25_out, pm10_out])\n",
" # model = tf.keras.Model(inputs=inputs, outputs=[no2_merge])\n",
" return model"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-16 09:59:31.598268: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcuda.so.1\n",
"2022-12-16 09:59:31.678629: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 0 with properties: \n",
"pciBusID: 0000:35:00.0 name: NVIDIA A100-PCIE-40GB computeCapability: 8.0\n",
"coreClock: 1.41GHz coreCount: 108 deviceMemorySize: 39.41GiB deviceMemoryBandwidth: 1.41TiB/s\n",
"2022-12-16 09:59:31.680731: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 1 with properties: \n",
"pciBusID: 0000:9c:00.0 name: NVIDIA A100-PCIE-40GB computeCapability: 8.0\n",
"coreClock: 1.41GHz coreCount: 108 deviceMemorySize: 39.41GiB deviceMemoryBandwidth: 1.41TiB/s\n",
"2022-12-16 09:59:31.680756: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcudart.so.11.0\n",
"2022-12-16 09:59:31.683080: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcublas.so.11\n",
"2022-12-16 09:59:31.683142: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcublasLt.so.11\n",
"2022-12-16 09:59:31.683848: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcufft.so.10\n",
"2022-12-16 09:59:31.684050: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcurand.so.10\n",
"2022-12-16 09:59:31.684630: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcusolver.so.11\n",
"2022-12-16 09:59:31.685110: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcusparse.so.11\n",
"2022-12-16 09:59:31.685220: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcudnn.so.8\n",
"2022-12-16 09:59:31.692409: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1871] Adding visible gpu devices: 0, 1\n",
"2022-12-16 09:59:31.692789: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n",
"To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
"2022-12-16 09:59:32.124092: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 0 with properties: \n",
"pciBusID: 0000:35:00.0 name: NVIDIA A100-PCIE-40GB computeCapability: 8.0\n",
"coreClock: 1.41GHz coreCount: 108 deviceMemorySize: 39.41GiB deviceMemoryBandwidth: 1.41TiB/s\n",
"2022-12-16 09:59:32.125883: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 1 with properties: \n",
"pciBusID: 0000:9c:00.0 name: NVIDIA A100-PCIE-40GB computeCapability: 8.0\n",
"coreClock: 1.41GHz coreCount: 108 deviceMemorySize: 39.41GiB deviceMemoryBandwidth: 1.41TiB/s\n",
"2022-12-16 09:59:32.132114: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1871] Adding visible gpu devices: 0, 1\n",
"2022-12-16 09:59:32.132166: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcudart.so.11.0\n",
"2022-12-16 09:59:32.813779: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1258] Device interconnect StreamExecutor with strength 1 edge matrix:\n",
"2022-12-16 09:59:32.813814: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1264] 0 1 \n",
"2022-12-16 09:59:32.813820: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1277] 0: N Y \n",
"2022-12-16 09:59:32.813823: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1277] 1: Y N \n",
"2022-12-16 09:59:32.822208: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1418] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 29641 MB memory) -> physical GPU (device: 0, name: NVIDIA A100-PCIE-40GB, pci bus id: 0000:35:00.0, compute capability: 8.0)\n",
"2022-12-16 09:59:32.824272: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1418] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 38244 MB memory) -> physical GPU (device: 1, name: NVIDIA A100-PCIE-40GB, pci bus id: 0000:9c:00.0, compute capability: 8.0)\n"
]
}
],
"source": [
"model = create_multi_task_learning_model()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \"model\"\n",
"__________________________________________________________________________________________________\n",
"Layer (type) Output Shape Param # Connected to \n",
"==================================================================================================\n",
"input (InputLayer) [(None, 1, 6)] 0 \n",
"__________________________________________________________________________________________________\n",
"dense (Dense) (None, 1, 800) 5600 input[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_1 (Dense) (None, 1, 400) 320400 dense[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_2 (Dense) (None, 1, 200) 80200 dense_1[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_3 (Dense) (None, 1, 100) 20100 dense_2[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_9 (Dense) (None, 1, 100) 10100 dense_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_14 (Dense) (None, 1, 100) 10100 dense_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_19 (Dense) (None, 1, 100) 10100 dense_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_24 (Dense) (None, 1, 100) 10100 dense_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_29 (Dense) (None, 1, 100) 10100 dense_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_4 (Dense) (None, 1, 100) 10100 dense_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_10 (Dense) (None, 1, 50) 5050 dense_9[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_15 (Dense) (None, 1, 50) 5050 dense_14[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_20 (Dense) (None, 1, 50) 5050 dense_19[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_25 (Dense) (None, 1, 50) 5050 dense_24[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_30 (Dense) (None, 1, 50) 5050 dense_29[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_5 (Dense) (None, 1, 50) 5050 dense_4[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_11 (Dense) (None, 1, 40) 2040 dense_10[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_16 (Dense) (None, 1, 40) 2040 dense_15[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_21 (Dense) (None, 1, 40) 2040 dense_20[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_26 (Dense) (None, 1, 40) 2040 dense_25[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_31 (Dense) (None, 1, 40) 2040 dense_30[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_6 (Dense) (None, 1, 40) 2040 dense_5[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_12 (Dense) (None, 1, 20) 820 dense_11[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_17 (Dense) (None, 1, 20) 820 dense_16[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_22 (Dense) (None, 1, 20) 820 dense_21[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_27 (Dense) (None, 1, 20) 820 dense_26[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_32 (Dense) (None, 1, 20) 820 dense_31[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_7 (Dense) (None, 1, 20) 820 dense_6[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_13 (Dense) (None, 1, 10) 210 dense_12[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_18 (Dense) (None, 1, 10) 210 dense_17[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_23 (Dense) (None, 1, 10) 210 dense_22[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_28 (Dense) (None, 1, 10) 210 dense_27[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_33 (Dense) (None, 1, 10) 210 dense_32[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_8 (Dense) (None, 1, 10) 210 dense_7[0][0] \n",
"__________________________________________________________________________________________________\n",
"so2_dense (Dense) (None, 1, 5) 55 dense_13[0][0] \n",
"__________________________________________________________________________________________________\n",
"no2_dense (Dense) (None, 1, 5) 55 dense_18[0][0] \n",
"__________________________________________________________________________________________________\n",
"o3_dense (Dense) (None, 1, 5) 55 dense_23[0][0] \n",
"__________________________________________________________________________________________________\n",
"pm25_dense (Dense) (None, 1, 5) 55 dense_28[0][0] \n",
"__________________________________________________________________________________________________\n",
"pm10_dense (Dense) (None, 1, 5) 55 dense_33[0][0] \n",
"__________________________________________________________________________________________________\n",
"co_dense (Dense) (None, 1, 5) 55 dense_8[0][0] \n",
"__________________________________________________________________________________________________\n",
"concatenate (Concatenate) (None, 1, 10) 0 no2_dense[0][0] \n",
" o3_dense[0][0] \n",
"__________________________________________________________________________________________________\n",
"concatenate_1 (Concatenate) (None, 1, 10) 0 o3_dense[0][0] \n",
" no2_dense[0][0] \n",
"__________________________________________________________________________________________________\n",
"concatenate_2 (Concatenate) (None, 1, 20) 0 so2_dense[0][0] \n",
" no2_dense[0][0] \n",
" o3_dense[0][0] \n",
" pm25_dense[0][0] \n",
"__________________________________________________________________________________________________\n",
"concatenate_3 (Concatenate) (None, 1, 10) 0 pm25_dense[0][0] \n",
" pm10_dense[0][0] \n",
"__________________________________________________________________________________________________\n",
"task_co_output (Dense) (None, 1, 1) 6 co_dense[0][0] \n",
"__________________________________________________________________________________________________\n",
"task_so2_output (Dense) (None, 1, 1) 6 so2_dense[0][0] \n",
"__________________________________________________________________________________________________\n",
"task_no2_output (Dense) (None, 1, 1) 11 concatenate[0][0] \n",
"__________________________________________________________________________________________________\n",
"task_o3_output (Dense) (None, 1, 1) 11 concatenate_1[0][0] \n",
"__________________________________________________________________________________________________\n",
"task_pm25_output (Dense) (None, 1, 1) 21 concatenate_2[0][0] \n",
"__________________________________________________________________________________________________\n",
"task_pm10_output (Dense) (None, 1, 1) 11 concatenate_3[0][0] \n",
"==================================================================================================\n",
"Total params: 536,016\n",
"Trainable params: 536,016\n",
"Non-trainable params: 0\n",
"__________________________________________________________________________________________________\n"
]
}
],
"source": [
"model.summary()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"from tensorflow.python.keras.utils.vis_utils import plot_model"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABtUAAATMCAYAAAD4YwiAAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdebhVZaE/8O+Gc5hlDDzyw3miSE1zAFNDEcVCRWRUUCzTe3Pmmg1qg6lNKg6pdG+3JK1k0LDhSmVqpoKVpna9kkpXbwYiiPPEOZz9+4NBOWDLzrQFPp/nWc/jfte71/6uV/+A5+t6V6lcLpcDAAAAAAAAvJOZbSqdAAAAAAAAAN7rlGoAAAAAAABQQKkGAAAAAAAABZRqAAAAAAAAUKCq0gEAAABoHaNHj650BGh1gwYNyuTJkysdAwCAjYBSDQAAYBMxa9asDBw4MP369at0FGgV8+bNq3QEAAA2Iko1AACATchZZ52VMWPGVDoGtApPZwIA0Jy8Uw0AAAAAAAAKKNUAAAAAAACggFINAAAAAAAACijVAAAAAAAAoIBSDQAAAAAAAAoo1QAAAAAAAKCAUg0AAAAAAAAKKNUAAAAAAACggFINAAAAAAAACijVAAAAAAAAoIBSDQAAAAAAAAoo1QAAAAAAAKCAUg0AAAAAAAAKKNUAAABgjTmZ1KWUUmntY+AlT1Y6WCNsTPcCAACVp1QDAABg/V75dU7ZsWtqhn83/1fpLK1mWK57pZzyn87N9kly5PWpLZcz7+xtKpyrMTamewEAgMpTqgEAALB+5frU15dTrq9PudJZ/qFVT2Ttd3meqXSUVrcp3zsAALSuqkoHAAAA4D1qs0Nz7YKXc22lcwAAALwHeFINAAAAAAAACijVAAAAWNfsCakqlVIqlVIqDc8Nb6x//AdP/iYXjd07W3XvmE69ts5uwz+T2QuWr7nMk5cMXDW3lFK/M3PrH67JSUM+kJrNOqRdpz7pf+Anc+U9S9bMn3/hh96a//YtDeecmC6rx9/3L7lzresflmmvJrnnrGyxek7VuMxu4TXZKO+9bknun35hJg3dIzvUdEn7jt3Tb5dDctIVv8uS+lVzXvhuDl6zDiuPD104f9X3b8yIt58bdeOaS5eXzMu1px+RD2/TK53atU/n3ttnn5H/lmkPvviOa/z9v/wiXxqzT7bt1WnV+OBMXdrYmwMAgKZRqgEAALCuETekrlyb64/8R+PzM+XMG1Jz5k3589+fySPTJ6bj7ZdkzPgpeWLV9G3Onpdy+fF8dbckL0zPqWfcn30v/K88+sziPHHXZRm8bHrOOOiA/NtvX06S9D/vwZTLt+b4zg1+d9h380r5f/O1D689vPL6q+Z/ZEoWlcspl8sp192YEWtmPZrLD6pJ51575ivzlqfRNsh7/yfN+Uw+Mu7KLD7om5nz6LNZ9rc/5gcndc2vJx+UAz57T95Iku4n5rbykvzHoR2TNnvkm0+U8+B5/Vd+v2pcZpefyiWDuuWoHy5Leda4leOLbs6EvfbPp2e8mpHX3JOnli3NE3denkOXXZ9Jgw7IeXNfW88aP5ALTv5BNv/0j/LHvy3LwnnnZ8+2jb0xAABoOqUaAAAAjbQsu514dT45aMt069wt2x58fs76ePvU/uHW3La+p4le7Zrx1/x7Jg3aJj06d8tWe07ItTecnfcvn58pZ1yRx1osZ33q68spl+tTLjfXNTeUe//ntR38pUz7/MHZoUendH7fDjnotBty+TGbZf4VX8usl1bPel8mTp6QPvUP5MrL7kjt275fd8+UXPF/x+as0T1Wjbyen3/+5PzoqY456rLpOfdj/dO7y2bZYsDhueDGizOk/HC+dtqVWbBOkuU56LPfz6cHb59enTqkzz4X5A91d+Zf3tfCCwAAAO9AqQYAAEAjDchee3V62+f22XLLPkkWZuHC9UzvPCj7fWjtR41KuxyaoX2T8kO35peLWi7n5DsX57VlD+TLg9o12zU3jHv/Jw2/Lq/ecUr6rDXYIbvttlNS+6f86ZG3RtsfMjn/ukspT193SW58bvXoC7nxW9/L5qedmf2rV4/dk9mzlyZt9s0Rwxs0YjVDMmRAUn//7Pzs6YZhdsnee3dqOAgAABWjVAMAAKCRuqVbt7VH2rVrl5VPhq1nevfu6b7OYJ/06ZMkz+bZZ1sgYovZSO/9xQdzwxePz0G7bJOaHh3TdtX7zbb9zH1JXstrr719cv+ccuawdHjt1lx6zf+sHHpsai69fXAmn7TjW9PeXJzFLyap/2VO6Lb2u9hKpe3yhQeS5PE8/njDMJ3TueFWmAAAUEFKNQAAAFrHc0uzdJ3tF1cXSqsLpiRpkzZtkixfnrXfgPZCXnhhfRcupVRq3qjNboO49ydz5eEfycSv3p4en7ouv3tsSd6oX/metr9N+UiS8jrbZ/Y+dnKO3bych759aX795vL8+tIr89zxk7Nm58ckaV+Tmu5Jqo7OzNpV731b53guVx/YXPcBAAAtQ6kGAABA63jj3tz1h7q1hsp//mV+vTAp7XZYDt1i9egW2WKLJH9/OmvtCPjMfbnv/9Z34U7p1ClvK6L+nHN3LuWQf1/W3HfQeO/pe5+dcVUfzIWP/CG/vee1pGZEJp8+ODv27pLqVYXd66+/vv6vtj84kz+9a0rP/jCXXHppLvnhFjntjI+maq1JH8nIkX2Suvvy23veWOcSj39j77Td6vTcW7fOKQAAeE9RqgEAANA6urXLbV/4VL4398k8/+qL+dsff5h/nXBJHm3XP5OvOCM7rZm4cw45ZOtk4fR8/du/z6JXXsuyBb/JN86YlSV91nfhD2aPPaqTx+7JHX97Nc/N/VF+/tcP5qP791x1/tFcflBNOvfaMxfMW76+C7S8it37P6HtwBw8uHPyzKx8/Vu35bGlr2X568vy2B2X55ypD73j1z7w6bNySMc386vzzs29B5+VT+3QcEaHHPa172bS9osz9RPjc9mtj2Thi2/k9WULctd3JuXICxZl9CXnZN+q9V0dAADeO5RqAAAArGv2hFSVqjPxliT5RSZ2LKXDhNnJvLPTr8F4//MeTDIro0ql7PWNBUkW5KLdSykNvy5rPZfUZVguuergPPSVwzNgiz7Z/oAzc0ePsbni9rvyrY9u9raJ7fLRC2/OtSe+P3+5eGi269Mve0/6Ubp+5pJMqEny3HdyYKmUHT73x1Xze2Ti5dflpF0fydnv750dxt6WXa6YljPfv/p6K1JXV59yuT7162zB2NCcTOpSSmn3i7IgSW6ZmOpSKQMveXIDvPf130tpneOoTF+RJFvmX6f/OleevGuevGpcdu/bPb223Tcn/6Auo4/ZO8mL+c7QUkp7fj1Pvv3e3ndMJk+oScp9c8Lkset5d1ySPofne7+fm6kjSpl+6kezY+9u6dN/SE6/uX0+dcs9uWFMv5Xz1rPGpdKozCr61wYAAK2gVC433BEdAACAjVGpVMr06dMzZsyYVv7lJ3Lhh3bM+UvPyNynL8/AVv71yto07v357388NVfvn//54+eyfaXDvM3o0aOTJDNnzqxwEgAANgIzba4AAAAANMGT+e7Uu/PxyTe8pwo1AABobrZ/BAAAAP4pL3x3WHocdV0WvvJcHp56Vr71/En5wpgelY4FAAAtSqkGAABAi3nykoEplXbM+Q8l+fsVGVRa/R6yjd/Gfu8vzD4h/6/HVjn02qp88cYvZ0974QAAsJHzR14AAABazDZnz0v57EqnqIyN+d67nzgn5RMrnQIAAFqXJ9UAAAAAAACggFINAAAAAAAACijVAAAAAAAAoIBSDQAAAAAAAAoo1QAAAAAAAKCAUg0AAAAAAAAKKNUAAAAAAACggFINAAAAAAAACijVAAAAAAAAoIBSDQAAAAAAAAoo1QAAAAAAAKCAUg0AAAAAAAAKKNUAAAAAAACgQFWlAwAAANB6pkyZkpkzZ1Y6BrSKefPmZeDAgZWOAQDARsKTagAAAJuIUaNGpV+/fpWOsclZsmRJ7rrrrkrH2CQNHDgwgwYNqnQMAAA2EqVyuVyudAgAAADYWM2YMSNjx46Nv34DAMAGbaYn1QAAAAAAAKCAUg0AAAAAAAAKKNUAAAAAAACggFINAAAAAAAACijVAAAAAAAAoIBSDQAAAAAAAAoo1QAAAAAAAKCAUg0
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot_model(model, to_file='model.png')"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"from tensorflow.keras import optimizers"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"opt = optimizers.Adam(learning_rate=0.01)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"def compile_multitask_model(model):\n",
" model.compile(optimizer=opt,\n",
" loss={\n",
" 'task_co_output': 'mean_squared_error',\n",
" 'task_so2_output': 'mean_squared_error',\n",
" 'task_no2_output': 'mean_squared_error',\n",
" 'task_o3_output': 'mean_squared_error',\n",
" 'task_pm25_output': 'mean_squared_error',\n",
" 'task_pm10_output': 'mean_squared_error',\n",
" },\n",
" metrics=['mse'],\n",
" )\n",
" return model"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"model = compile_multitask_model(model)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"new_train = np.expand_dims(train_data[feature_cols].values, axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"x_val, y_val = np.expand_dims(valid_data[feature_cols].values, axis=1), valid_data[out_cols]"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"pycharm": {
"name": "#%%\n"
},
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-16 10:03:12.456442: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:176] None of the MLIR Optimization Passes are enabled (registered 2)\n",
"2022-12-16 10:03:12.474167: I tensorflow/core/platform/profile_utils/cpu_utils.cc:114] CPU Frequency: 2200000000 Hz\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/100\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-16 10:03:15.809303: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcublas.so.11\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 11/294 [>.............................] - ETA: 4s - loss: 0.5554 - task_co_output_loss: 0.0512 - task_so2_output_loss: 0.0660 - task_no2_output_loss: 0.1084 - task_o3_output_loss: 0.1142 - task_pm25_output_loss: 0.0787 - task_pm10_output_loss: 0.1368 - task_co_output_mse: 0.0512 - task_so2_output_mse: 0.0660 - task_no2_output_mse: 0.1084 - task_o3_output_mse: 0.1142 - task_pm25_output_mse: 0.0787 - task_pm10_output_mse: 0.1368 "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-16 10:03:16.467287: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcublasLt.so.11\n",
"2022-12-16 10:03:16.467348: I tensorflow/stream_executor/cuda/cuda_blas.cc:1838] TensorFloat-32 will be used for the matrix multiplication. This will only be logged once.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"294/294 [==============================] - 10s 21ms/step - loss: 0.1347 - task_co_output_loss: 0.0189 - task_so2_output_loss: 0.0307 - task_no2_output_loss: 0.0218 - task_o3_output_loss: 0.0259 - task_pm25_output_loss: 0.0207 - task_pm10_output_loss: 0.0168 - task_co_output_mse: 0.0189 - task_so2_output_mse: 0.0307 - task_no2_output_mse: 0.0218 - task_o3_output_mse: 0.0259 - task_pm25_output_mse: 0.0207 - task_pm10_output_mse: 0.0168 - val_loss: 0.3267 - val_task_co_output_loss: 0.0630 - val_task_so2_output_loss: 0.0460 - val_task_no2_output_loss: 0.0553 - val_task_o3_output_loss: 0.0833 - val_task_pm25_output_loss: 0.0406 - val_task_pm10_output_loss: 0.0385 - val_task_co_output_mse: 0.0630 - val_task_so2_output_mse: 0.0460 - val_task_no2_output_mse: 0.0553 - val_task_o3_output_mse: 0.0833 - val_task_pm25_output_mse: 0.0406 - val_task_pm10_output_mse: 0.0385\n",
"Epoch 2/100\n",
"294/294 [==============================] - 5s 17ms/step - loss: 0.1027 - task_co_output_loss: 0.0156 - task_so2_output_loss: 0.0251 - task_no2_output_loss: 0.0161 - task_o3_output_loss: 0.0170 - task_pm25_output_loss: 0.0173 - task_pm10_output_loss: 0.0116 - task_co_output_mse: 0.0156 - task_so2_output_mse: 0.0251 - task_no2_output_mse: 0.0161 - task_o3_output_mse: 0.0170 - task_pm25_output_mse: 0.0173 - task_pm10_output_mse: 0.0116 - val_loss: 0.3224 - val_task_co_output_loss: 0.0679 - val_task_so2_output_loss: 0.0442 - val_task_no2_output_loss: 0.0556 - val_task_o3_output_loss: 0.0741 - val_task_pm25_output_loss: 0.0420 - val_task_pm10_output_loss: 0.0385 - val_task_co_output_mse: 0.0679 - val_task_so2_output_mse: 0.0442 - val_task_no2_output_mse: 0.0556 - val_task_o3_output_mse: 0.0741 - val_task_pm25_output_mse: 0.0420 - val_task_pm10_output_mse: 0.0385\n",
"Epoch 3/100\n",
"294/294 [==============================] - 5s 18ms/step - loss: 0.1002 - task_co_output_loss: 0.0155 - task_so2_output_loss: 0.0244 - task_no2_output_loss: 0.0157 - task_o3_output_loss: 0.0162 - task_pm25_output_loss: 0.0171 - task_pm10_output_loss: 0.0114 - task_co_output_mse: 0.0155 - task_so2_output_mse: 0.0244 - task_no2_output_mse: 0.0157 - task_o3_output_mse: 0.0162 - task_pm25_output_mse: 0.0171 - task_pm10_output_mse: 0.0114 - val_loss: 0.3274 - val_task_co_output_loss: 0.0685 - val_task_so2_output_loss: 0.0453 - val_task_no2_output_loss: 0.0533 - val_task_o3_output_loss: 0.0804 - val_task_pm25_output_loss: 0.0421 - val_task_pm10_output_loss: 0.0378 - val_task_co_output_mse: 0.0685 - val_task_so2_output_mse: 0.0453 - val_task_no2_output_mse: 0.0533 - val_task_o3_output_mse: 0.0804 - val_task_pm25_output_mse: 0.0421 - val_task_pm10_output_mse: 0.0378\n",
"Epoch 4/100\n",
"294/294 [==============================] - 5s 18ms/step - loss: 0.0990 - task_co_output_loss: 0.0154 - task_so2_output_loss: 0.0241 - task_no2_output_loss: 0.0155 - task_o3_output_loss: 0.0159 - task_pm25_output_loss: 0.0169 - task_pm10_output_loss: 0.0112 - task_co_output_mse: 0.0154 - task_so2_output_mse: 0.0241 - task_no2_output_mse: 0.0155 - task_o3_output_mse: 0.0159 - task_pm25_output_mse: 0.0169 - task_pm10_output_mse: 0.0112 - val_loss: 0.3540 - val_task_co_output_loss: 0.0716 - val_task_so2_output_loss: 0.0499 - val_task_no2_output_loss: 0.0584 - val_task_o3_output_loss: 0.0925 - val_task_pm25_output_loss: 0.0428 - val_task_pm10_output_loss: 0.0388 - val_task_co_output_mse: 0.0716 - val_task_so2_output_mse: 0.0499 - val_task_no2_output_mse: 0.0584 - val_task_o3_output_mse: 0.0925 - val_task_pm25_output_mse: 0.0428 - val_task_pm10_output_mse: 0.0388\n",
"Epoch 5/100\n",
"294/294 [==============================] - 5s 18ms/step - loss: 0.0973 - task_co_output_loss: 0.0152 - task_so2_output_loss: 0.0237 - task_no2_output_loss: 0.0152 - task_o3_output_loss: 0.0157 - task_pm25_output_loss: 0.0165 - task_pm10_output_loss: 0.0111 - task_co_output_mse: 0.0152 - task_so2_output_mse: 0.0237 - task_no2_output_mse: 0.0152 - task_o3_output_mse: 0.0157 - task_pm25_output_mse: 0.0165 - task_pm10_output_mse: 0.0111 - val_loss: 0.3306 - val_task_co_output_loss: 0.0740 - val_task_so2_output_loss: 0.0476 - val_task_no2_output_loss: 0.0566 - val_task_o3_output_loss: 0.0762 - val_task_pm25_output_loss: 0.0388 - val_task_pm10_output_loss: 0.0374 - val_task_co_output_mse: 0.0740 - val_task_so2_output_mse: 0.0476 - val_task_no2_output_mse: 0.0566 - val_task_o3_output_mse: 0.0762 - val_task_pm25_output_mse: 0.0388 - val_task_pm10_output_mse: 0.0374\n",
"Epoch 6/100\n",
"294/294 [==============================] - 5s 18ms/step - loss: 0.0952 - task_co_output_loss: 0.0150 - task_so2_output_loss: 0.0233 - task_no2_output_loss: 0.0149 - task_o3_output_loss: 0.0150 - task_pm25_output_loss: 0.0161 - task_pm10_output_loss: 0.0109 - task_co_output_mse: 0.0150 - task_so2_output_mse: 0.0233 - task_no2_output_mse: 0.0149 - task_o3_output_mse: 0.0150 - task_pm25_output_mse: 0.0161 - task_pm10_output_mse: 0.0109 - val_loss: 0.3430 - val_task_co_output_loss: 0.0713 - val_task_so2_output_loss: 0.0484 - val_task_no2_output_loss: 0.0545 - val_task_o3_output_loss: 0.0913 - val_task_pm25_output_loss: 0.0406 - val_task_pm10_output_loss: 0.0369 - val_task_co_output_mse: 0.0713 - val_task_so2_output_mse: 0.0484 - val_task_no2_output_mse: 0.0545 - val_task_o3_output_mse: 0.0913 - val_task_pm25_output_mse: 0.0406 - val_task_pm10_output_mse: 0.0369\n",
"Epoch 7/100\n",
"294/294 [==============================] - 5s 19ms/step - loss: 0.0935 - task_co_output_loss: 0.0148 - task_so2_output_loss: 0.0230 - task_no2_output_loss: 0.0145 - task_o3_output_loss: 0.0148 - task_pm25_output_loss: 0.0157 - task_pm10_output_loss: 0.0108 - task_co_output_mse: 0.0148 - task_so2_output_mse: 0.0230 - task_no2_output_mse: 0.0145 - task_o3_output_mse: 0.0148 - task_pm25_output_mse: 0.0157 - task_pm10_output_mse: 0.0108 - val_loss: 0.3280 - val_task_co_output_loss: 0.0698 - val_task_so2_output_loss: 0.0498 - val_task_no2_output_loss: 0.0518 - val_task_o3_output_loss: 0.0827 - val_task_pm25_output_loss: 0.0373 - val_task_pm10_output_loss: 0.0366 - val_task_co_output_mse: 0.0698 - val_task_so2_output_mse: 0.0498 - val_task_no2_output_mse: 0.0518 - val_task_o3_output_mse: 0.0827 - val_task_pm25_output_mse: 0.0373 - val_task_pm10_output_mse: 0.0366\n",
"Epoch 8/100\n",
"294/294 [==============================] - 5s 18ms/step - loss: 0.0924 - task_co_output_loss: 0.0147 - task_so2_output_loss: 0.0228 - task_no2_output_loss: 0.0144 - task_o3_output_loss: 0.0144 - task_pm25_output_loss: 0.0154 - task_pm10_output_loss: 0.0107 - task_co_output_mse: 0.0147 - task_so2_output_mse: 0.0228 - task_no2_output_mse: 0.0144 - task_o3_output_mse: 0.0144 - task_pm25_output_mse: 0.0154 - task_pm10_output_mse: 0.0107 - val_loss: 0.3324 - val_task_co_output_loss: 0.0664 - val_task_so2_output_loss: 0.0478 - val_task_no2_output_loss: 0.0568 - val_task_o3_output_loss: 0.0857 - val_task_pm25_output_loss: 0.0391 - val_task_pm10_output_loss: 0.0366 - val_task_co_output_mse: 0.0664 - val_task_so2_output_mse: 0.0478 - val_task_no2_output_mse: 0.0568 - val_task_o3_output_mse: 0.0857 - val_task_pm25_output_mse: 0.0391 - val_task_pm10_output_mse: 0.0366\n",
"Epoch 9/100\n",
"294/294 [==============================] - 5s 18ms/step - loss: 0.0921 - task_co_output_loss: 0.0147 - task_so2_output_loss: 0.0228 - task_no2_output_loss: 0.0142 - task_o3_output_loss: 0.0143 - task_pm25_output_loss: 0.0154 - task_pm10_output_loss: 0.0107 - task_co_output_mse: 0.0147 - task_so2_output_mse: 0.0228 - task_no2_output_mse: 0.0142 - task_o3_output_mse: 0.0143 - task_pm25_output_mse: 0.0154 - task_pm10_output_mse: 0.0107 - val_loss: 0.3411 - val_task_co_output_loss: 0.0760 - val_task_so2_output_loss: 0.0514 - val_task_no2_output_loss: 0.0551 - val_task_o3_output_loss: 0.0839 - val_task_pm25_output_loss: 0.0378 - val_task_pm10_output_loss: 0.0370 - val_task_co_output_mse: 0.0760 - val_task_so2_output_mse: 0.0514 - val_task_no2_output_mse: 0.0551 - val_task_o3_output_mse: 0.0839 - val_task_pm25_output_mse: 0.0378 - val_task_pm10_output_mse: 0.0370\n",
"Epoch 10/100\n",
"294/294 [==============================] - 5s 19ms/step - loss: 0.0912 - task_co_output_loss: 0.0146 - task_so2_output_loss: 0.0225 - task_no2_output_loss: 0.0142 - task_o3_output_loss: 0.0140 - task_pm25_output_loss: 0.0152 - task_pm10_output_loss: 0.0107 - task_co_output_mse: 0.0146 - task_so2_output_mse: 0.0225 - task_no2_output_mse: 0.0142 - task_o3_output_mse: 0.0140 - task_pm25_output_mse: 0.0152 - task_pm10_output_mse: 0.0107 - val_loss: 0.3283 - val_task_co_output_loss: 0.0608 - val_task_so2_output_loss: 0.0493 - val_task_no2_output_loss: 0.0555 - val_task_o3_output_loss: 0.0840 - val_task_pm25_output_loss: 0.0412 - val_task_pm10_output_loss: 0.0375 - val_task_co_output_mse: 0.0608 - val_task_so2_output_mse: 0.0493 - val_task_no2_output_mse: 0.0555 - val_task_o3_output_mse: 0.0840 - val_task_pm25_output_mse: 0.0412 - val_task_pm10_output_mse: 0.0375\n",
"Epoch 11/100\n",
"294/294 [==============================] - 6s 20ms/step - loss: 0.0903 - task_co_output_loss: 0.0145 - task_so2_output_loss: 0.0223 - task_no2_output_loss: 0.0140 - task_o3_output_loss: 0.0139 - task_pm25_output_loss: 0.0151 - task_pm10_output_loss: 0.0105 - task_co_output_mse: 0.0145 - task_so2_output_mse: 0.0223 - task_no2_output_mse: 0.0140 - task_o3_output_mse: 0.0139 - task_pm25_output_mse: 0.0151 - task_pm10_output_mse: 0.0105 - val_loss: 0.3372 - val_task_co_output_loss: 0.0667 - val_task_so2_output_loss: 0.0468 - val_task_no2_output_loss: 0.0570 - val_task_o3_output_loss: 0.0868 - val_task_pm25_output_loss: 0.0421 - val_task_pm10_output_loss: 0.0377 - val_task_co_output_mse: 0.0667 - val_task_so2_output_mse: 0.0468 - val_task_no2_output_mse: 0.0570 - val_task_o3_output_mse: 0.0868 - val_task_pm25_output_mse: 0.0421 - val_task_pm10_output_mse: 0.0377\n",
"Epoch 12/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0903 - task_co_output_loss: 0.0146 - task_so2_output_loss: 0.0221 - task_no2_output_loss: 0.0140 - task_o3_output_loss: 0.0140 - task_pm25_output_loss: 0.0151 - task_pm10_output_loss: 0.0104 - task_co_output_mse: 0.0146 - task_so2_output_mse: 0.0221 - task_no2_output_mse: 0.0140 - task_o3_output_mse: 0.0140 - task_pm25_output_mse: 0.0151 - task_pm10_output_mse: 0.0104 - val_loss: 0.3458 - val_task_co_output_loss: 0.0723 - val_task_so2_output_loss: 0.0522 - val_task_no2_output_loss: 0.0577 - val_task_o3_output_loss: 0.0849 - val_task_pm25_output_loss: 0.0421 - val_task_pm10_output_loss: 0.0367 - val_task_co_output_mse: 0.0723 - val_task_so2_output_mse: 0.0522 - val_task_no2_output_mse: 0.0577 - val_task_o3_output_mse: 0.0849 - val_task_pm25_output_mse: 0.0421 - val_task_pm10_output_mse: 0.0367\n",
"Epoch 13/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0888 - task_co_output_loss: 0.0145 - task_so2_output_loss: 0.0221 - task_no2_output_loss: 0.0136 - task_o3_output_loss: 0.0135 - task_pm25_output_loss: 0.0149 - task_pm10_output_loss: 0.0102 - task_co_output_mse: 0.0145 - task_so2_output_mse: 0.0221 - task_no2_output_mse: 0.0136 - task_o3_output_mse: 0.0135 - task_pm25_output_mse: 0.0149 - task_pm10_output_mse: 0.0102 - val_loss: 0.3197 - val_task_co_output_loss: 0.0700 - val_task_so2_output_loss: 0.0454 - val_task_no2_output_loss: 0.0561 - val_task_o3_output_loss: 0.0697 - val_task_pm25_output_loss: 0.0413 - val_task_pm10_output_loss: 0.0373 - val_task_co_output_mse: 0.0700 - val_task_so2_output_mse: 0.0454 - val_task_no2_output_mse: 0.0561 - val_task_o3_output_mse: 0.0697 - val_task_pm25_output_mse: 0.0413 - val_task_pm10_output_mse: 0.0373\n",
"Epoch 14/100\n",
"294/294 [==============================] - 5s 19ms/step - loss: 0.0880 - task_co_output_loss: 0.0144 - task_so2_output_loss: 0.0218 - task_no2_output_loss: 0.0135 - task_o3_output_loss: 0.0136 - task_pm25_output_loss: 0.0148 - task_pm10_output_loss: 0.0100 - task_co_output_mse: 0.0144 - task_so2_output_mse: 0.0218 - task_no2_output_mse: 0.0135 - task_o3_output_mse: 0.0136 - task_pm25_output_mse: 0.0148 - task_pm10_output_mse: 0.0100 - val_loss: 0.3524 - val_task_co_output_loss: 0.0685 - val_task_so2_output_loss: 0.0509 - val_task_no2_output_loss: 0.0649 - val_task_o3_output_loss: 0.0862 - val_task_pm25_output_loss: 0.0431 - val_task_pm10_output_loss: 0.0388 - val_task_co_output_mse: 0.0685 - val_task_so2_output_mse: 0.0509 - val_task_no2_output_mse: 0.0649 - val_task_o3_output_mse: 0.0862 - val_task_pm25_output_mse: 0.0431 - val_task_pm10_output_mse: 0.0388\n",
"Epoch 15/100\n",
"294/294 [==============================] - 5s 19ms/step - loss: 0.0869 - task_co_output_loss: 0.0143 - task_so2_output_loss: 0.0216 - task_no2_output_loss: 0.0131 - task_o3_output_loss: 0.0133 - task_pm25_output_loss: 0.0146 - task_pm10_output_loss: 0.0099 - task_co_output_mse: 0.0143 - task_so2_output_mse: 0.0216 - task_no2_output_mse: 0.0131 - task_o3_output_mse: 0.0133 - task_pm25_output_mse: 0.0146 - task_pm10_output_mse: 0.0099 - val_loss: 0.3391 - val_task_co_output_loss: 0.0700 - val_task_so2_output_loss: 0.0516 - val_task_no2_output_loss: 0.0560 - val_task_o3_output_loss: 0.0836 - val_task_pm25_output_loss: 0.0413 - val_task_pm10_output_loss: 0.0365 - val_task_co_output_mse: 0.0700 - val_task_so2_output_mse: 0.0516 - val_task_no2_output_mse: 0.0560 - val_task_o3_output_mse: 0.0836 - val_task_pm25_output_mse: 0.0413 - val_task_pm10_output_mse: 0.0365\n",
"Epoch 16/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0865 - task_co_output_loss: 0.0142 - task_so2_output_loss: 0.0215 - task_no2_output_loss: 0.0130 - task_o3_output_loss: 0.0133 - task_pm25_output_loss: 0.0146 - task_pm10_output_loss: 0.0099 - task_co_output_mse: 0.0142 - task_so2_output_mse: 0.0215 - task_no2_output_mse: 0.0130 - task_o3_output_mse: 0.0133 - task_pm25_output_mse: 0.0146 - task_pm10_output_mse: 0.0099 - val_loss: 0.3357 - val_task_co_output_loss: 0.0661 - val_task_so2_output_loss: 0.0443 - val_task_no2_output_loss: 0.0613 - val_task_o3_output_loss: 0.0830 - val_task_pm25_output_loss: 0.0433 - val_task_pm10_output_loss: 0.0378 - val_task_co_output_mse: 0.0661 - val_task_so2_output_mse: 0.0443 - val_task_no2_output_mse: 0.0613 - val_task_o3_output_mse: 0.0830 - val_task_pm25_output_mse: 0.0433 - val_task_pm10_output_mse: 0.0378\n",
"Epoch 17/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0860 - task_co_output_loss: 0.0141 - task_so2_output_loss: 0.0215 - task_no2_output_loss: 0.0128 - task_o3_output_loss: 0.0133 - task_pm25_output_loss: 0.0145 - task_pm10_output_loss: 0.0097 - task_co_output_mse: 0.0141 - task_so2_output_mse: 0.0215 - task_no2_output_mse: 0.0128 - task_o3_output_mse: 0.0133 - task_pm25_output_mse: 0.0145 - task_pm10_output_mse: 0.0097 - val_loss: 0.3308 - val_task_co_output_loss: 0.0627 - val_task_so2_output_loss: 0.0482 - val_task_no2_output_loss: 0.0575 - val_task_o3_output_loss: 0.0835 - val_task_pm25_output_loss: 0.0412 - val_task_pm10_output_loss: 0.0376 - val_task_co_output_mse: 0.0627 - val_task_so2_output_mse: 0.0482 - val_task_no2_output_mse: 0.0575 - val_task_o3_output_mse: 0.0835 - val_task_pm25_output_mse: 0.0412 - val_task_pm10_output_mse: 0.0376\n",
"Epoch 18/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0851 - task_co_output_loss: 0.0140 - task_so2_output_loss: 0.0213 - task_no2_output_loss: 0.0127 - task_o3_output_loss: 0.0131 - task_pm25_output_loss: 0.0144 - task_pm10_output_loss: 0.0097 - task_co_output_mse: 0.0140 - task_so2_output_mse: 0.0213 - task_no2_output_mse: 0.0127 - task_o3_output_mse: 0.0131 - task_pm25_output_mse: 0.0144 - task_pm10_output_mse: 0.0097 - val_loss: 0.3331 - val_task_co_output_loss: 0.0693 - val_task_so2_output_loss: 0.0478 - val_task_no2_output_loss: 0.0560 - val_task_o3_output_loss: 0.0845 - val_task_pm25_output_loss: 0.0389 - val_task_pm10_output_loss: 0.0366 - val_task_co_output_mse: 0.0693 - val_task_so2_output_mse: 0.0478 - val_task_no2_output_mse: 0.0560 - val_task_o3_output_mse: 0.0845 - val_task_pm25_output_mse: 0.0389 - val_task_pm10_output_mse: 0.0366\n",
"Epoch 19/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0850 - task_co_output_loss: 0.0141 - task_so2_output_loss: 0.0213 - task_no2_output_loss: 0.0127 - task_o3_output_loss: 0.0131 - task_pm25_output_loss: 0.0143 - task_pm10_output_loss: 0.0096 - task_co_output_mse: 0.0141 - task_so2_output_mse: 0.0213 - task_no2_output_mse: 0.0127 - task_o3_output_mse: 0.0131 - task_pm25_output_mse: 0.0143 - task_pm10_output_mse: 0.0096 - val_loss: 0.3246 - val_task_co_output_loss: 0.0651 - val_task_so2_output_loss: 0.0469 - val_task_no2_output_loss: 0.0540 - val_task_o3_output_loss: 0.0813 - val_task_pm25_output_loss: 0.0401 - val_task_pm10_output_loss: 0.0372 - val_task_co_output_mse: 0.0651 - val_task_so2_output_mse: 0.0469 - val_task_no2_output_mse: 0.0540 - val_task_o3_output_mse: 0.0813 - val_task_pm25_output_mse: 0.0401 - val_task_pm10_output_mse: 0.0372\n",
"Epoch 20/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0849 - task_co_output_loss: 0.0139 - task_so2_output_loss: 0.0212 - task_no2_output_loss: 0.0126 - task_o3_output_loss: 0.0132 - task_pm25_output_loss: 0.0143 - task_pm10_output_loss: 0.0097 - task_co_output_mse: 0.0139 - task_so2_output_mse: 0.0212 - task_no2_output_mse: 0.0126 - task_o3_output_mse: 0.0132 - task_pm25_output_mse: 0.0143 - task_pm10_output_mse: 0.0097 - val_loss: 0.3308 - val_task_co_output_loss: 0.0662 - val_task_so2_output_loss: 0.0461 - val_task_no2_output_loss: 0.0560 - val_task_o3_output_loss: 0.0829 - val_task_pm25_output_loss: 0.0419 - val_task_pm10_output_loss: 0.0377 - val_task_co_output_mse: 0.0662 - val_task_so2_output_mse: 0.0461 - val_task_no2_output_mse: 0.0560 - val_task_o3_output_mse: 0.0829 - val_task_pm25_output_mse: 0.0419 - val_task_pm10_output_mse: 0.0377\n",
"Epoch 21/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0847 - task_co_output_loss: 0.0140 - task_so2_output_loss: 0.0212 - task_no2_output_loss: 0.0126 - task_o3_output_loss: 0.0131 - task_pm25_output_loss: 0.0142 - task_pm10_output_loss: 0.0097 - task_co_output_mse: 0.0140 - task_so2_output_mse: 0.0212 - task_no2_output_mse: 0.0126 - task_o3_output_mse: 0.0131 - task_pm25_output_mse: 0.0142 - task_pm10_output_mse: 0.0097 - val_loss: 0.3223 - val_task_co_output_loss: 0.0684 - val_task_so2_output_loss: 0.0467 - val_task_no2_output_loss: 0.0526 - val_task_o3_output_loss: 0.0764 - val_task_pm25_output_loss: 0.0407 - val_task_pm10_output_loss: 0.0376 - val_task_co_output_mse: 0.0684 - val_task_so2_output_mse: 0.0467 - val_task_no2_output_mse: 0.0526 - val_task_o3_output_mse: 0.0764 - val_task_pm25_output_mse: 0.0407 - val_task_pm10_output_mse: 0.0376\n",
"Epoch 22/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0843 - task_co_output_loss: 0.0139 - task_so2_output_loss: 0.0212 - task_no2_output_loss: 0.0124 - task_o3_output_loss: 0.0130 - task_pm25_output_loss: 0.0142 - task_pm10_output_loss: 0.0096 - task_co_output_mse: 0.0139 - task_so2_output_mse: 0.0212 - task_no2_output_mse: 0.0124 - task_o3_output_mse: 0.0130 - task_pm25_output_mse: 0.0142 - task_pm10_output_mse: 0.0096 - val_loss: 0.3512 - val_task_co_output_loss: 0.0668 - val_task_so2_output_loss: 0.0492 - val_task_no2_output_loss: 0.0601 - val_task_o3_output_loss: 0.0936 - val_task_pm25_output_loss: 0.0429 - val_task_pm10_output_loss: 0.0386 - val_task_co_output_mse: 0.0668 - val_task_so2_output_mse: 0.0492 - val_task_no2_output_mse: 0.0601 - val_task_o3_output_mse: 0.0936 - val_task_pm25_output_mse: 0.0429 - val_task_pm10_output_mse: 0.0386\n",
"Epoch 23/100\n",
"294/294 [==============================] - 5s 19ms/step - loss: 0.0842 - task_co_output_loss: 0.0139 - task_so2_output_loss: 0.0210 - task_no2_output_loss: 0.0125 - task_o3_output_loss: 0.0131 - task_pm25_output_loss: 0.0142 - task_pm10_output_loss: 0.0096 - task_co_output_mse: 0.0139 - task_so2_output_mse: 0.0210 - task_no2_output_mse: 0.0125 - task_o3_output_mse: 0.0131 - task_pm25_output_mse: 0.0142 - task_pm10_output_mse: 0.0096 - val_loss: 0.3454 - val_task_co_output_loss: 0.0784 - val_task_so2_output_loss: 0.0555 - val_task_no2_output_loss: 0.0543 - val_task_o3_output_loss: 0.0824 - val_task_pm25_output_loss: 0.0385 - val_task_pm10_output_loss: 0.0362 - val_task_co_output_mse: 0.0784 - val_task_so2_output_mse: 0.0555 - val_task_no2_output_mse: 0.0543 - val_task_o3_output_mse: 0.0824 - val_task_pm25_output_mse: 0.0385 - val_task_pm10_output_mse: 0.0362\n",
"Epoch 24/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0836 - task_co_output_loss: 0.0138 - task_so2_output_loss: 0.0210 - task_no2_output_loss: 0.0123 - task_o3_output_loss: 0.0129 - task_pm25_output_loss: 0.0141 - task_pm10_output_loss: 0.0095 - task_co_output_mse: 0.0138 - task_so2_output_mse: 0.0210 - task_no2_output_mse: 0.0123 - task_o3_output_mse: 0.0129 - task_pm25_output_mse: 0.0141 - task_pm10_output_mse: 0.0095 - val_loss: 0.3357 - val_task_co_output_loss: 0.0700 - val_task_so2_output_loss: 0.0504 - val_task_no2_output_loss: 0.0496 - val_task_o3_output_loss: 0.0899 - val_task_pm25_output_loss: 0.0389 - val_task_pm10_output_loss: 0.0368 - val_task_co_output_mse: 0.0700 - val_task_so2_output_mse: 0.0504 - val_task_no2_output_mse: 0.0496 - val_task_o3_output_mse: 0.0899 - val_task_pm25_output_mse: 0.0389 - val_task_pm10_output_mse: 0.0368\n",
"Epoch 25/100\n",
"294/294 [==============================] - 5s 19ms/step - loss: 0.0839 - task_co_output_loss: 0.0139 - task_so2_output_loss: 0.0210 - task_no2_output_loss: 0.0124 - task_o3_output_loss: 0.0130 - task_pm25_output_loss: 0.0141 - task_pm10_output_loss: 0.0096 - task_co_output_mse: 0.0139 - task_so2_output_mse: 0.0210 - task_no2_output_mse: 0.0124 - task_o3_output_mse: 0.0130 - task_pm25_output_mse: 0.0141 - task_pm10_output_mse: 0.0096 - val_loss: 0.3377 - val_task_co_output_loss: 0.0692 - val_task_so2_output_loss: 0.0468 - val_task_no2_output_loss: 0.0613 - val_task_o3_output_loss: 0.0822 - val_task_pm25_output_loss: 0.0414 - val_task_pm10_output_loss: 0.0368 - val_task_co_output_mse: 0.0692 - val_task_so2_output_mse: 0.0468 - val_task_no2_output_mse: 0.0613 - val_task_o3_output_mse: 0.0822 - val_task_pm25_output_mse: 0.0414 - val_task_pm10_output_mse: 0.0368\n",
"Epoch 26/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0832 - task_co_output_loss: 0.0138 - task_so2_output_loss: 0.0209 - task_no2_output_loss: 0.0123 - task_o3_output_loss: 0.0128 - task_pm25_output_loss: 0.0140 - task_pm10_output_loss: 0.0095 - task_co_output_mse: 0.0138 - task_so2_output_mse: 0.0209 - task_no2_output_mse: 0.0123 - task_o3_output_mse: 0.0128 - task_pm25_output_mse: 0.0140 - task_pm10_output_mse: 0.0095 - val_loss: 0.3335 - val_task_co_output_loss: 0.0690 - val_task_so2_output_loss: 0.0470 - val_task_no2_output_loss: 0.0558 - val_task_o3_output_loss: 0.0847 - val_task_pm25_output_loss: 0.0399 - val_task_pm10_output_loss: 0.0372 - val_task_co_output_mse: 0.0690 - val_task_so2_output_mse: 0.0470 - val_task_no2_output_mse: 0.0558 - val_task_o3_output_mse: 0.0847 - val_task_pm25_output_mse: 0.0399 - val_task_pm10_output_mse: 0.0372\n",
"Epoch 27/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0835 - task_co_output_loss: 0.0137 - task_so2_output_loss: 0.0209 - task_no2_output_loss: 0.0124 - task_o3_output_loss: 0.0130 - task_pm25_output_loss: 0.0140 - task_pm10_output_loss: 0.0095 - task_co_output_mse: 0.0137 - task_so2_output_mse: 0.0209 - task_no2_output_mse: 0.0124 - task_o3_output_mse: 0.0130 - task_pm25_output_mse: 0.0140 - task_pm10_output_mse: 0.0095 - val_loss: 0.3374 - val_task_co_output_loss: 0.0710 - val_task_so2_output_loss: 0.0454 - val_task_no2_output_loss: 0.0600 - val_task_o3_output_loss: 0.0830 - val_task_pm25_output_loss: 0.0411 - val_task_pm10_output_loss: 0.0369 - val_task_co_output_mse: 0.0710 - val_task_so2_output_mse: 0.0454 - val_task_no2_output_mse: 0.0600 - val_task_o3_output_mse: 0.0830 - val_task_pm25_output_mse: 0.0411 - val_task_pm10_output_mse: 0.0369\n",
"Epoch 28/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0830 - task_co_output_loss: 0.0137 - task_so2_output_loss: 0.0208 - task_no2_output_loss: 0.0123 - task_o3_output_loss: 0.0128 - task_pm25_output_loss: 0.0140 - task_pm10_output_loss: 0.0094 - task_co_output_mse: 0.0137 - task_so2_output_mse: 0.0208 - task_no2_output_mse: 0.0123 - task_o3_output_mse: 0.0128 - task_pm25_output_mse: 0.0140 - task_pm10_output_mse: 0.0094 - val_loss: 0.3246 - val_task_co_output_loss: 0.0701 - val_task_so2_output_loss: 0.0472 - val_task_no2_output_loss: 0.0619 - val_task_o3_output_loss: 0.0693 - val_task_pm25_output_loss: 0.0390 - val_task_pm10_output_loss: 0.0372 - val_task_co_output_mse: 0.0701 - val_task_so2_output_mse: 0.0472 - val_task_no2_output_mse: 0.0619 - val_task_o3_output_mse: 0.0693 - val_task_pm25_output_mse: 0.0390 - val_task_pm10_output_mse: 0.0372\n",
"Epoch 29/100\n",
"294/294 [==============================] - 5s 19ms/step - loss: 0.0827 - task_co_output_loss: 0.0137 - task_so2_output_loss: 0.0207 - task_no2_output_loss: 0.0122 - task_o3_output_loss: 0.0128 - task_pm25_output_loss: 0.0139 - task_pm10_output_loss: 0.0094 - task_co_output_mse: 0.0137 - task_so2_output_mse: 0.0207 - task_no2_output_mse: 0.0122 - task_o3_output_mse: 0.0128 - task_pm25_output_mse: 0.0139 - task_pm10_output_mse: 0.0094 - val_loss: 0.3334 - val_task_co_output_loss: 0.0666 - val_task_so2_output_loss: 0.0500 - val_task_no2_output_loss: 0.0572 - val_task_o3_output_loss: 0.0805 - val_task_pm25_output_loss: 0.0421 - val_task_pm10_output_loss: 0.0370 - val_task_co_output_mse: 0.0666 - val_task_so2_output_mse: 0.0500 - val_task_no2_output_mse: 0.0572 - val_task_o3_output_mse: 0.0805 - val_task_pm25_output_mse: 0.0421 - val_task_pm10_output_mse: 0.0370\n",
"Epoch 30/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0827 - task_co_output_loss: 0.0137 - task_so2_output_loss: 0.0208 - task_no2_output_loss: 0.0121 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0139 - task_pm10_output_loss: 0.0095 - task_co_output_mse: 0.0137 - task_so2_output_mse: 0.0208 - task_no2_output_mse: 0.0121 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0139 - task_pm10_output_mse: 0.0095 - val_loss: 0.3452 - val_task_co_output_loss: 0.0703 - val_task_so2_output_loss: 0.0496 - val_task_no2_output_loss: 0.0563 - val_task_o3_output_loss: 0.0882 - val_task_pm25_output_loss: 0.0430 - val_task_pm10_output_loss: 0.0379 - val_task_co_output_mse: 0.0703 - val_task_so2_output_mse: 0.0496 - val_task_no2_output_mse: 0.0563 - val_task_o3_output_mse: 0.0882 - val_task_pm25_output_mse: 0.0430 - val_task_pm10_output_mse: 0.0379\n",
"Epoch 31/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0833 - task_co_output_loss: 0.0138 - task_so2_output_loss: 0.0209 - task_no2_output_loss: 0.0122 - task_o3_output_loss: 0.0130 - task_pm25_output_loss: 0.0140 - task_pm10_output_loss: 0.0094 - task_co_output_mse: 0.0138 - task_so2_output_mse: 0.0209 - task_no2_output_mse: 0.0122 - task_o3_output_mse: 0.0130 - task_pm25_output_mse: 0.0140 - task_pm10_output_mse: 0.0094 - val_loss: 0.3405 - val_task_co_output_loss: 0.0723 - val_task_so2_output_loss: 0.0471 - val_task_no2_output_loss: 0.0650 - val_task_o3_output_loss: 0.0788 - val_task_pm25_output_loss: 0.0401 - val_task_pm10_output_loss: 0.0372 - val_task_co_output_mse: 0.0723 - val_task_so2_output_mse: 0.0471 - val_task_no2_output_mse: 0.0650 - val_task_o3_output_mse: 0.0788 - val_task_pm25_output_mse: 0.0401 - val_task_pm10_output_mse: 0.0372\n",
"Epoch 32/100\n",
"294/294 [==============================] - 6s 20ms/step - loss: 0.0828 - task_co_output_loss: 0.0137 - task_so2_output_loss: 0.0208 - task_no2_output_loss: 0.0122 - task_o3_output_loss: 0.0128 - task_pm25_output_loss: 0.0139 - task_pm10_output_loss: 0.0094 - task_co_output_mse: 0.0137 - task_so2_output_mse: 0.0208 - task_no2_output_mse: 0.0122 - task_o3_output_mse: 0.0128 - task_pm25_output_mse: 0.0139 - task_pm10_output_mse: 0.0094 - val_loss: 0.3406 - val_task_co_output_loss: 0.0714 - val_task_so2_output_loss: 0.0474 - val_task_no2_output_loss: 0.0590 - val_task_o3_output_loss: 0.0848 - val_task_pm25_output_loss: 0.0402 - val_task_pm10_output_loss: 0.0378 - val_task_co_output_mse: 0.0714 - val_task_so2_output_mse: 0.0474 - val_task_no2_output_mse: 0.0590 - val_task_o3_output_mse: 0.0848 - val_task_pm25_output_mse: 0.0402 - val_task_pm10_output_mse: 0.0378\n",
"Epoch 33/100\n",
"294/294 [==============================] - 6s 20ms/step - loss: 0.0819 - task_co_output_loss: 0.0136 - task_so2_output_loss: 0.0207 - task_no2_output_loss: 0.0120 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0138 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0136 - task_so2_output_mse: 0.0207 - task_no2_output_mse: 0.0120 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0138 - task_pm10_output_mse: 0.0093 - val_loss: 0.3312 - val_task_co_output_loss: 0.0736 - val_task_so2_output_loss: 0.0490 - val_task_no2_output_loss: 0.0555 - val_task_o3_output_loss: 0.0790 - val_task_pm25_output_loss: 0.0377 - val_task_pm10_output_loss: 0.0364 - val_task_co_output_mse: 0.0736 - val_task_so2_output_mse: 0.0490 - val_task_no2_output_mse: 0.0555 - val_task_o3_output_mse: 0.0790 - val_task_pm25_output_mse: 0.0377 - val_task_pm10_output_mse: 0.0364\n",
"Epoch 34/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0826 - task_co_output_loss: 0.0137 - task_so2_output_loss: 0.0207 - task_no2_output_loss: 0.0121 - task_o3_output_loss: 0.0129 - task_pm25_output_loss: 0.0139 - task_pm10_output_loss: 0.0094 - task_co_output_mse: 0.0137 - task_so2_output_mse: 0.0207 - task_no2_output_mse: 0.0121 - task_o3_output_mse: 0.0129 - task_pm25_output_mse: 0.0139 - task_pm10_output_mse: 0.0094 - val_loss: 0.3414 - val_task_co_output_loss: 0.0676 - val_task_so2_output_loss: 0.0499 - val_task_no2_output_loss: 0.0535 - val_task_o3_output_loss: 0.0938 - val_task_pm25_output_loss: 0.0394 - val_task_pm10_output_loss: 0.0373 - val_task_co_output_mse: 0.0676 - val_task_so2_output_mse: 0.0499 - val_task_no2_output_mse: 0.0535 - val_task_o3_output_mse: 0.0938 - val_task_pm25_output_mse: 0.0394 - val_task_pm10_output_mse: 0.0373\n",
"Epoch 35/100\n",
"294/294 [==============================] - 6s 20ms/step - loss: 0.0823 - task_co_output_loss: 0.0136 - task_so2_output_loss: 0.0207 - task_no2_output_loss: 0.0120 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0139 - task_pm10_output_loss: 0.0094 - task_co_output_mse: 0.0136 - task_so2_output_mse: 0.0207 - task_no2_output_mse: 0.0120 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0139 - task_pm10_output_mse: 0.0094 - val_loss: 0.3302 - val_task_co_output_loss: 0.0662 - val_task_so2_output_loss: 0.0491 - val_task_no2_output_loss: 0.0552 - val_task_o3_output_loss: 0.0828 - val_task_pm25_output_loss: 0.0400 - val_task_pm10_output_loss: 0.0367 - val_task_co_output_mse: 0.0662 - val_task_so2_output_mse: 0.0491 - val_task_no2_output_mse: 0.0552 - val_task_o3_output_mse: 0.0828 - val_task_pm25_output_mse: 0.0400 - val_task_pm10_output_mse: 0.0367\n",
"Epoch 36/100\n",
"294/294 [==============================] - 6s 20ms/step - loss: 0.0822 - task_co_output_loss: 0.0136 - task_so2_output_loss: 0.0207 - task_no2_output_loss: 0.0120 - task_o3_output_loss: 0.0128 - task_pm25_output_loss: 0.0138 - task_pm10_output_loss: 0.0094 - task_co_output_mse: 0.0136 - task_so2_output_mse: 0.0207 - task_no2_output_mse: 0.0120 - task_o3_output_mse: 0.0128 - task_pm25_output_mse: 0.0138 - task_pm10_output_mse: 0.0094 - val_loss: 0.3418 - val_task_co_output_loss: 0.0720 - val_task_so2_output_loss: 0.0511 - val_task_no2_output_loss: 0.0579 - val_task_o3_output_loss: 0.0820 - val_task_pm25_output_loss: 0.0411 - val_task_pm10_output_loss: 0.0377 - val_task_co_output_mse: 0.0720 - val_task_so2_output_mse: 0.0511 - val_task_no2_output_mse: 0.0579 - val_task_o3_output_mse: 0.0820 - val_task_pm25_output_mse: 0.0411 - val_task_pm10_output_mse: 0.0377\n",
"Epoch 37/100\n",
"294/294 [==============================] - 6s 20ms/step - loss: 0.0824 - task_co_output_loss: 0.0136 - task_so2_output_loss: 0.0207 - task_no2_output_loss: 0.0120 - task_o3_output_loss: 0.0128 - task_pm25_output_loss: 0.0139 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0136 - task_so2_output_mse: 0.0207 - task_no2_output_mse: 0.0120 - task_o3_output_mse: 0.0128 - task_pm25_output_mse: 0.0139 - task_pm10_output_mse: 0.0093 - val_loss: 0.3309 - val_task_co_output_loss: 0.0646 - val_task_so2_output_loss: 0.0488 - val_task_no2_output_loss: 0.0562 - val_task_o3_output_loss: 0.0821 - val_task_pm25_output_loss: 0.0413 - val_task_pm10_output_loss: 0.0379 - val_task_co_output_mse: 0.0646 - val_task_so2_output_mse: 0.0488 - val_task_no2_output_mse: 0.0562 - val_task_o3_output_mse: 0.0821 - val_task_pm25_output_mse: 0.0413 - val_task_pm10_output_mse: 0.0379\n",
"Epoch 38/100\n",
"294/294 [==============================] - 6s 20ms/step - loss: 0.0816 - task_co_output_loss: 0.0135 - task_so2_output_loss: 0.0205 - task_no2_output_loss: 0.0119 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0135 - task_so2_output_mse: 0.0205 - task_no2_output_mse: 0.0119 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0093 - val_loss: 0.3536 - val_task_co_output_loss: 0.0782 - val_task_so2_output_loss: 0.0517 - val_task_no2_output_loss: 0.0537 - val_task_o3_output_loss: 0.0933 - val_task_pm25_output_loss: 0.0393 - val_task_pm10_output_loss: 0.0374 - val_task_co_output_mse: 0.0782 - val_task_so2_output_mse: 0.0517 - val_task_no2_output_mse: 0.0537 - val_task_o3_output_mse: 0.0933 - val_task_pm25_output_mse: 0.0393 - val_task_pm10_output_mse: 0.0374\n",
"Epoch 39/100\n",
"294/294 [==============================] - 6s 20ms/step - loss: 0.0819 - task_co_output_loss: 0.0136 - task_so2_output_loss: 0.0206 - task_no2_output_loss: 0.0119 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0138 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0136 - task_so2_output_mse: 0.0206 - task_no2_output_mse: 0.0119 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0138 - task_pm10_output_mse: 0.0093 - val_loss: 0.3293 - val_task_co_output_loss: 0.0677 - val_task_so2_output_loss: 0.0462 - val_task_no2_output_loss: 0.0562 - val_task_o3_output_loss: 0.0812 - val_task_pm25_output_loss: 0.0409 - val_task_pm10_output_loss: 0.0371 - val_task_co_output_mse: 0.0677 - val_task_so2_output_mse: 0.0462 - val_task_no2_output_mse: 0.0562 - val_task_o3_output_mse: 0.0812 - val_task_pm25_output_mse: 0.0409 - val_task_pm10_output_mse: 0.0371\n",
"Epoch 40/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0816 - task_co_output_loss: 0.0135 - task_so2_output_loss: 0.0206 - task_no2_output_loss: 0.0119 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0135 - task_so2_output_mse: 0.0206 - task_no2_output_mse: 0.0119 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0093 - val_loss: 0.3301 - val_task_co_output_loss: 0.0694 - val_task_so2_output_loss: 0.0474 - val_task_no2_output_loss: 0.0542 - val_task_o3_output_loss: 0.0814 - val_task_pm25_output_loss: 0.0407 - val_task_pm10_output_loss: 0.0369 - val_task_co_output_mse: 0.0694 - val_task_so2_output_mse: 0.0474 - val_task_no2_output_mse: 0.0542 - val_task_o3_output_mse: 0.0814 - val_task_pm25_output_mse: 0.0407 - val_task_pm10_output_mse: 0.0369\n",
"Epoch 41/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0816 - task_co_output_loss: 0.0135 - task_so2_output_loss: 0.0206 - task_no2_output_loss: 0.0119 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0135 - task_so2_output_mse: 0.0206 - task_no2_output_mse: 0.0119 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0093 - val_loss: 0.3333 - val_task_co_output_loss: 0.0701 - val_task_so2_output_loss: 0.0498 - val_task_no2_output_loss: 0.0539 - val_task_o3_output_loss: 0.0848 - val_task_pm25_output_loss: 0.0385 - val_task_pm10_output_loss: 0.0362 - val_task_co_output_mse: 0.0701 - val_task_so2_output_mse: 0.0498 - val_task_no2_output_mse: 0.0539 - val_task_o3_output_mse: 0.0848 - val_task_pm25_output_mse: 0.0385 - val_task_pm10_output_mse: 0.0362\n",
"Epoch 42/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0820 - task_co_output_loss: 0.0135 - task_so2_output_loss: 0.0205 - task_no2_output_loss: 0.0120 - task_o3_output_loss: 0.0128 - task_pm25_output_loss: 0.0138 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0135 - task_so2_output_mse: 0.0205 - task_no2_output_mse: 0.0120 - task_o3_output_mse: 0.0128 - task_pm25_output_mse: 0.0138 - task_pm10_output_mse: 0.0093 - val_loss: 0.3452 - val_task_co_output_loss: 0.0759 - val_task_so2_output_loss: 0.0532 - val_task_no2_output_loss: 0.0598 - val_task_o3_output_loss: 0.0795 - val_task_pm25_output_loss: 0.0389 - val_task_pm10_output_loss: 0.0379 - val_task_co_output_mse: 0.0759 - val_task_so2_output_mse: 0.0532 - val_task_no2_output_mse: 0.0598 - val_task_o3_output_mse: 0.0795 - val_task_pm25_output_mse: 0.0389 - val_task_pm10_output_mse: 0.0379\n",
"Epoch 43/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0820 - task_co_output_loss: 0.0136 - task_so2_output_loss: 0.0206 - task_no2_output_loss: 0.0119 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0138 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0136 - task_so2_output_mse: 0.0206 - task_no2_output_mse: 0.0119 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0138 - task_pm10_output_mse: 0.0093 - val_loss: 0.3353 - val_task_co_output_loss: 0.0654 - val_task_so2_output_loss: 0.0478 - val_task_no2_output_loss: 0.0568 - val_task_o3_output_loss: 0.0865 - val_task_pm25_output_loss: 0.0413 - val_task_pm10_output_loss: 0.0375 - val_task_co_output_mse: 0.0654 - val_task_so2_output_mse: 0.0478 - val_task_no2_output_mse: 0.0568 - val_task_o3_output_mse: 0.0865 - val_task_pm25_output_mse: 0.0413 - val_task_pm10_output_mse: 0.0375\n",
"Epoch 44/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0815 - task_co_output_loss: 0.0135 - task_so2_output_loss: 0.0205 - task_no2_output_loss: 0.0119 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0138 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0135 - task_so2_output_mse: 0.0205 - task_no2_output_mse: 0.0119 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0138 - task_pm10_output_mse: 0.0093 - val_loss: 0.3513 - val_task_co_output_loss: 0.0791 - val_task_so2_output_loss: 0.0549 - val_task_no2_output_loss: 0.0544 - val_task_o3_output_loss: 0.0890 - val_task_pm25_output_loss: 0.0375 - val_task_pm10_output_loss: 0.0364 - val_task_co_output_mse: 0.0791 - val_task_so2_output_mse: 0.0549 - val_task_no2_output_mse: 0.0544 - val_task_o3_output_mse: 0.0890 - val_task_pm25_output_mse: 0.0375 - val_task_pm10_output_mse: 0.0364\n",
"Epoch 45/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0816 - task_co_output_loss: 0.0135 - task_so2_output_loss: 0.0205 - task_no2_output_loss: 0.0119 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0138 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0135 - task_so2_output_mse: 0.0205 - task_no2_output_mse: 0.0119 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0138 - task_pm10_output_mse: 0.0092 - val_loss: 0.3226 - val_task_co_output_loss: 0.0694 - val_task_so2_output_loss: 0.0454 - val_task_no2_output_loss: 0.0530 - val_task_o3_output_loss: 0.0781 - val_task_pm25_output_loss: 0.0393 - val_task_pm10_output_loss: 0.0373 - val_task_co_output_mse: 0.0694 - val_task_so2_output_mse: 0.0454 - val_task_no2_output_mse: 0.0530 - val_task_o3_output_mse: 0.0781 - val_task_pm25_output_mse: 0.0393 - val_task_pm10_output_mse: 0.0373\n",
"Epoch 46/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0816 - task_co_output_loss: 0.0135 - task_so2_output_loss: 0.0205 - task_no2_output_loss: 0.0119 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0135 - task_so2_output_mse: 0.0205 - task_no2_output_mse: 0.0119 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0092 - val_loss: 0.3363 - val_task_co_output_loss: 0.0670 - val_task_so2_output_loss: 0.0432 - val_task_no2_output_loss: 0.0611 - val_task_o3_output_loss: 0.0844 - val_task_pm25_output_loss: 0.0403 - val_task_pm10_output_loss: 0.0403 - val_task_co_output_mse: 0.0670 - val_task_so2_output_mse: 0.0432 - val_task_no2_output_mse: 0.0611 - val_task_o3_output_mse: 0.0844 - val_task_pm25_output_mse: 0.0403 - val_task_pm10_output_mse: 0.0403\n",
"Epoch 47/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0818 - task_co_output_loss: 0.0136 - task_so2_output_loss: 0.0206 - task_no2_output_loss: 0.0118 - task_o3_output_loss: 0.0128 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0136 - task_so2_output_mse: 0.0206 - task_no2_output_mse: 0.0118 - task_o3_output_mse: 0.0128 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0093 - val_loss: 0.3286 - val_task_co_output_loss: 0.0631 - val_task_so2_output_loss: 0.0469 - val_task_no2_output_loss: 0.0529 - val_task_o3_output_loss: 0.0867 - val_task_pm25_output_loss: 0.0407 - val_task_pm10_output_loss: 0.0383 - val_task_co_output_mse: 0.0631 - val_task_so2_output_mse: 0.0469 - val_task_no2_output_mse: 0.0529 - val_task_o3_output_mse: 0.0867 - val_task_pm25_output_mse: 0.0407 - val_task_pm10_output_mse: 0.0383\n",
"Epoch 48/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0811 - task_co_output_loss: 0.0135 - task_so2_output_loss: 0.0203 - task_no2_output_loss: 0.0118 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0135 - task_so2_output_mse: 0.0203 - task_no2_output_mse: 0.0118 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3382 - val_task_co_output_loss: 0.0694 - val_task_so2_output_loss: 0.0461 - val_task_no2_output_loss: 0.0600 - val_task_o3_output_loss: 0.0836 - val_task_pm25_output_loss: 0.0416 - val_task_pm10_output_loss: 0.0376 - val_task_co_output_mse: 0.0694 - val_task_so2_output_mse: 0.0461 - val_task_no2_output_mse: 0.0600 - val_task_o3_output_mse: 0.0836 - val_task_pm25_output_mse: 0.0416 - val_task_pm10_output_mse: 0.0376\n",
"Epoch 49/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0811 - task_co_output_loss: 0.0134 - task_so2_output_loss: 0.0203 - task_no2_output_loss: 0.0118 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0134 - task_so2_output_mse: 0.0203 - task_no2_output_mse: 0.0118 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0092 - val_loss: 0.3325 - val_task_co_output_loss: 0.0658 - val_task_so2_output_loss: 0.0534 - val_task_no2_output_loss: 0.0559 - val_task_o3_output_loss: 0.0822 - val_task_pm25_output_loss: 0.0391 - val_task_pm10_output_loss: 0.0361 - val_task_co_output_mse: 0.0658 - val_task_so2_output_mse: 0.0534 - val_task_no2_output_mse: 0.0559 - val_task_o3_output_mse: 0.0822 - val_task_pm25_output_mse: 0.0391 - val_task_pm10_output_mse: 0.0361\n",
"Epoch 50/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0816 - task_co_output_loss: 0.0135 - task_so2_output_loss: 0.0205 - task_no2_output_loss: 0.0118 - task_o3_output_loss: 0.0128 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0135 - task_so2_output_mse: 0.0205 - task_no2_output_mse: 0.0118 - task_o3_output_mse: 0.0128 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0092 - val_loss: 0.3298 - val_task_co_output_loss: 0.0648 - val_task_so2_output_loss: 0.0480 - val_task_no2_output_loss: 0.0525 - val_task_o3_output_loss: 0.0863 - val_task_pm25_output_loss: 0.0407 - val_task_pm10_output_loss: 0.0376 - val_task_co_output_mse: 0.0648 - val_task_so2_output_mse: 0.0480 - val_task_no2_output_mse: 0.0525 - val_task_o3_output_mse: 0.0863 - val_task_pm25_output_mse: 0.0407 - val_task_pm10_output_mse: 0.0376\n",
"Epoch 51/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0811 - task_co_output_loss: 0.0134 - task_so2_output_loss: 0.0204 - task_no2_output_loss: 0.0118 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0134 - task_so2_output_mse: 0.0204 - task_no2_output_mse: 0.0118 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0092 - val_loss: 0.3272 - val_task_co_output_loss: 0.0656 - val_task_so2_output_loss: 0.0502 - val_task_no2_output_loss: 0.0521 - val_task_o3_output_loss: 0.0832 - val_task_pm25_output_loss: 0.0394 - val_task_pm10_output_loss: 0.0367 - val_task_co_output_mse: 0.0656 - val_task_so2_output_mse: 0.0502 - val_task_no2_output_mse: 0.0521 - val_task_o3_output_mse: 0.0832 - val_task_pm25_output_mse: 0.0394 - val_task_pm10_output_mse: 0.0367\n",
"Epoch 52/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0811 - task_co_output_loss: 0.0135 - task_so2_output_loss: 0.0204 - task_no2_output_loss: 0.0118 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0135 - task_so2_output_mse: 0.0204 - task_no2_output_mse: 0.0118 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3415 - val_task_co_output_loss: 0.0623 - val_task_so2_output_loss: 0.0452 - val_task_no2_output_loss: 0.0604 - val_task_o3_output_loss: 0.0906 - val_task_pm25_output_loss: 0.0438 - val_task_pm10_output_loss: 0.0392 - val_task_co_output_mse: 0.0623 - val_task_so2_output_mse: 0.0452 - val_task_no2_output_mse: 0.0604 - val_task_o3_output_mse: 0.0906 - val_task_pm25_output_mse: 0.0438 - val_task_pm10_output_mse: 0.0392\n",
"Epoch 53/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0813 - task_co_output_loss: 0.0134 - task_so2_output_loss: 0.0204 - task_no2_output_loss: 0.0119 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0134 - task_so2_output_mse: 0.0204 - task_no2_output_mse: 0.0119 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0092 - val_loss: 0.3348 - val_task_co_output_loss: 0.0698 - val_task_so2_output_loss: 0.0470 - val_task_no2_output_loss: 0.0582 - val_task_o3_output_loss: 0.0823 - val_task_pm25_output_loss: 0.0407 - val_task_pm10_output_loss: 0.0367 - val_task_co_output_mse: 0.0698 - val_task_so2_output_mse: 0.0470 - val_task_no2_output_mse: 0.0582 - val_task_o3_output_mse: 0.0823 - val_task_pm25_output_mse: 0.0407 - val_task_pm10_output_mse: 0.0367\n",
"Epoch 54/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0809 - task_co_output_loss: 0.0134 - task_so2_output_loss: 0.0203 - task_no2_output_loss: 0.0118 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0134 - task_so2_output_mse: 0.0203 - task_no2_output_mse: 0.0118 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3463 - val_task_co_output_loss: 0.0728 - val_task_so2_output_loss: 0.0478 - val_task_no2_output_loss: 0.0557 - val_task_o3_output_loss: 0.0912 - val_task_pm25_output_loss: 0.0412 - val_task_pm10_output_loss: 0.0376 - val_task_co_output_mse: 0.0728 - val_task_so2_output_mse: 0.0478 - val_task_no2_output_mse: 0.0557 - val_task_o3_output_mse: 0.0912 - val_task_pm25_output_mse: 0.0412 - val_task_pm10_output_mse: 0.0376\n",
"Epoch 55/100\n",
"294/294 [==============================] - 6s 20ms/step - loss: 0.0807 - task_co_output_loss: 0.0134 - task_so2_output_loss: 0.0203 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0134 - task_so2_output_mse: 0.0203 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0091 - val_loss: 0.3220 - val_task_co_output_loss: 0.0658 - val_task_so2_output_loss: 0.0463 - val_task_no2_output_loss: 0.0523 - val_task_o3_output_loss: 0.0806 - val_task_pm25_output_loss: 0.0399 - val_task_pm10_output_loss: 0.0371 - val_task_co_output_mse: 0.0658 - val_task_so2_output_mse: 0.0463 - val_task_no2_output_mse: 0.0523 - val_task_o3_output_mse: 0.0806 - val_task_pm25_output_mse: 0.0399 - val_task_pm10_output_mse: 0.0371\n",
"Epoch 56/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0806 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0118 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0118 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0092 - val_loss: 0.3553 - val_task_co_output_loss: 0.0757 - val_task_so2_output_loss: 0.0548 - val_task_no2_output_loss: 0.0590 - val_task_o3_output_loss: 0.0910 - val_task_pm25_output_loss: 0.0383 - val_task_pm10_output_loss: 0.0365 - val_task_co_output_mse: 0.0757 - val_task_so2_output_mse: 0.0548 - val_task_no2_output_mse: 0.0590 - val_task_o3_output_mse: 0.0910 - val_task_pm25_output_mse: 0.0383 - val_task_pm10_output_mse: 0.0365\n",
"Epoch 57/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0812 - task_co_output_loss: 0.0134 - task_so2_output_loss: 0.0204 - task_no2_output_loss: 0.0118 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0134 - task_so2_output_mse: 0.0204 - task_no2_output_mse: 0.0118 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0093 - val_loss: 0.3297 - val_task_co_output_loss: 0.0663 - val_task_so2_output_loss: 0.0447 - val_task_no2_output_loss: 0.0573 - val_task_o3_output_loss: 0.0840 - val_task_pm25_output_loss: 0.0410 - val_task_pm10_output_loss: 0.0365 - val_task_co_output_mse: 0.0663 - val_task_so2_output_mse: 0.0447 - val_task_no2_output_mse: 0.0573 - val_task_o3_output_mse: 0.0840 - val_task_pm25_output_mse: 0.0410 - val_task_pm10_output_mse: 0.0365\n",
"Epoch 58/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0803 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0091 - val_loss: 0.3299 - val_task_co_output_loss: 0.0624 - val_task_so2_output_loss: 0.0469 - val_task_no2_output_loss: 0.0579 - val_task_o3_output_loss: 0.0822 - val_task_pm25_output_loss: 0.0423 - val_task_pm10_output_loss: 0.0381 - val_task_co_output_mse: 0.0624 - val_task_so2_output_mse: 0.0469 - val_task_no2_output_mse: 0.0579 - val_task_o3_output_mse: 0.0822 - val_task_pm25_output_mse: 0.0423 - val_task_pm10_output_mse: 0.0381\n",
"Epoch 59/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0803 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0092 - val_loss: 0.3365 - val_task_co_output_loss: 0.0710 - val_task_so2_output_loss: 0.0466 - val_task_no2_output_loss: 0.0534 - val_task_o3_output_loss: 0.0886 - val_task_pm25_output_loss: 0.0397 - val_task_pm10_output_loss: 0.0373 - val_task_co_output_mse: 0.0710 - val_task_so2_output_mse: 0.0466 - val_task_no2_output_mse: 0.0534 - val_task_o3_output_mse: 0.0886 - val_task_pm25_output_mse: 0.0397 - val_task_pm10_output_mse: 0.0373\n",
"Epoch 60/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0806 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3263 - val_task_co_output_loss: 0.0708 - val_task_so2_output_loss: 0.0475 - val_task_no2_output_loss: 0.0556 - val_task_o3_output_loss: 0.0768 - val_task_pm25_output_loss: 0.0390 - val_task_pm10_output_loss: 0.0366 - val_task_co_output_mse: 0.0708 - val_task_so2_output_mse: 0.0475 - val_task_no2_output_mse: 0.0556 - val_task_o3_output_mse: 0.0768 - val_task_pm25_output_mse: 0.0390 - val_task_pm10_output_mse: 0.0366\n",
"Epoch 61/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0806 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0203 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0203 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3406 - val_task_co_output_loss: 0.0741 - val_task_so2_output_loss: 0.0508 - val_task_no2_output_loss: 0.0543 - val_task_o3_output_loss: 0.0831 - val_task_pm25_output_loss: 0.0399 - val_task_pm10_output_loss: 0.0383 - val_task_co_output_mse: 0.0741 - val_task_so2_output_mse: 0.0508 - val_task_no2_output_mse: 0.0543 - val_task_o3_output_mse: 0.0831 - val_task_pm25_output_mse: 0.0399 - val_task_pm10_output_mse: 0.0383\n",
"Epoch 62/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0807 - task_co_output_loss: 0.0134 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0134 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0092 - val_loss: 0.3418 - val_task_co_output_loss: 0.0694 - val_task_so2_output_loss: 0.0466 - val_task_no2_output_loss: 0.0575 - val_task_o3_output_loss: 0.0901 - val_task_pm25_output_loss: 0.0411 - val_task_pm10_output_loss: 0.0372 - val_task_co_output_mse: 0.0694 - val_task_so2_output_mse: 0.0466 - val_task_no2_output_mse: 0.0575 - val_task_o3_output_mse: 0.0901 - val_task_pm25_output_mse: 0.0411 - val_task_pm10_output_mse: 0.0372\n",
"Epoch 63/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0809 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0118 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0118 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0092 - val_loss: 0.3282 - val_task_co_output_loss: 0.0622 - val_task_so2_output_loss: 0.0478 - val_task_no2_output_loss: 0.0582 - val_task_o3_output_loss: 0.0814 - val_task_pm25_output_loss: 0.0410 - val_task_pm10_output_loss: 0.0378 - val_task_co_output_mse: 0.0622 - val_task_so2_output_mse: 0.0478 - val_task_no2_output_mse: 0.0582 - val_task_o3_output_mse: 0.0814 - val_task_pm25_output_mse: 0.0410 - val_task_pm10_output_mse: 0.0378\n",
"Epoch 64/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0804 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3338 - val_task_co_output_loss: 0.0695 - val_task_so2_output_loss: 0.0455 - val_task_no2_output_loss: 0.0533 - val_task_o3_output_loss: 0.0889 - val_task_pm25_output_loss: 0.0391 - val_task_pm10_output_loss: 0.0374 - val_task_co_output_mse: 0.0695 - val_task_so2_output_mse: 0.0455 - val_task_no2_output_mse: 0.0533 - val_task_o3_output_mse: 0.0889 - val_task_pm25_output_mse: 0.0391 - val_task_pm10_output_mse: 0.0374\n",
"Epoch 65/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0801 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0201 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0124 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0201 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0124 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0091 - val_loss: 0.3481 - val_task_co_output_loss: 0.0675 - val_task_so2_output_loss: 0.0508 - val_task_no2_output_loss: 0.0562 - val_task_o3_output_loss: 0.0927 - val_task_pm25_output_loss: 0.0417 - val_task_pm10_output_loss: 0.0394 - val_task_co_output_mse: 0.0675 - val_task_so2_output_mse: 0.0508 - val_task_no2_output_mse: 0.0562 - val_task_o3_output_mse: 0.0927 - val_task_pm25_output_mse: 0.0417 - val_task_pm10_output_mse: 0.0394\n",
"Epoch 66/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0804 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0091 - val_loss: 0.3344 - val_task_co_output_loss: 0.0672 - val_task_so2_output_loss: 0.0474 - val_task_no2_output_loss: 0.0620 - val_task_o3_output_loss: 0.0790 - val_task_pm25_output_loss: 0.0408 - val_task_pm10_output_loss: 0.0381 - val_task_co_output_mse: 0.0672 - val_task_so2_output_mse: 0.0474 - val_task_no2_output_mse: 0.0620 - val_task_o3_output_mse: 0.0790 - val_task_pm25_output_mse: 0.0408 - val_task_pm10_output_mse: 0.0381\n",
"Epoch 67/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0805 - task_co_output_loss: 0.0134 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0124 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0134 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0124 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3328 - val_task_co_output_loss: 0.0688 - val_task_so2_output_loss: 0.0446 - val_task_no2_output_loss: 0.0605 - val_task_o3_output_loss: 0.0797 - val_task_pm25_output_loss: 0.0413 - val_task_pm10_output_loss: 0.0379 - val_task_co_output_mse: 0.0688 - val_task_so2_output_mse: 0.0446 - val_task_no2_output_mse: 0.0605 - val_task_o3_output_mse: 0.0797 - val_task_pm25_output_mse: 0.0413 - val_task_pm10_output_mse: 0.0379\n",
"Epoch 68/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0802 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0124 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0124 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0091 - val_loss: 0.3389 - val_task_co_output_loss: 0.0712 - val_task_so2_output_loss: 0.0446 - val_task_no2_output_loss: 0.0607 - val_task_o3_output_loss: 0.0845 - val_task_pm25_output_loss: 0.0398 - val_task_pm10_output_loss: 0.0382 - val_task_co_output_mse: 0.0712 - val_task_so2_output_mse: 0.0446 - val_task_no2_output_mse: 0.0607 - val_task_o3_output_mse: 0.0845 - val_task_pm25_output_mse: 0.0398 - val_task_pm10_output_mse: 0.0382\n",
"Epoch 69/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0805 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0093 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0093 - val_loss: 0.3258 - val_task_co_output_loss: 0.0665 - val_task_so2_output_loss: 0.0442 - val_task_no2_output_loss: 0.0554 - val_task_o3_output_loss: 0.0762 - val_task_pm25_output_loss: 0.0426 - val_task_pm10_output_loss: 0.0409 - val_task_co_output_mse: 0.0665 - val_task_so2_output_mse: 0.0442 - val_task_no2_output_mse: 0.0554 - val_task_o3_output_mse: 0.0762 - val_task_pm25_output_mse: 0.0426 - val_task_pm10_output_mse: 0.0409\n",
"Epoch 70/100\n",
"294/294 [==============================] - 6s 20ms/step - loss: 0.0805 - task_co_output_loss: 0.0134 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0124 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0134 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0124 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3451 - val_task_co_output_loss: 0.0707 - val_task_so2_output_loss: 0.0514 - val_task_no2_output_loss: 0.0574 - val_task_o3_output_loss: 0.0874 - val_task_pm25_output_loss: 0.0403 - val_task_pm10_output_loss: 0.0380 - val_task_co_output_mse: 0.0707 - val_task_so2_output_mse: 0.0514 - val_task_no2_output_mse: 0.0574 - val_task_o3_output_mse: 0.0874 - val_task_pm25_output_mse: 0.0403 - val_task_pm10_output_mse: 0.0380\n",
"Epoch 71/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0806 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0201 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0201 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3378 - val_task_co_output_loss: 0.0637 - val_task_so2_output_loss: 0.0472 - val_task_no2_output_loss: 0.0581 - val_task_o3_output_loss: 0.0881 - val_task_pm25_output_loss: 0.0423 - val_task_pm10_output_loss: 0.0385 - val_task_co_output_mse: 0.0637 - val_task_so2_output_mse: 0.0472 - val_task_no2_output_mse: 0.0581 - val_task_o3_output_mse: 0.0881 - val_task_pm25_output_mse: 0.0423 - val_task_pm10_output_mse: 0.0385\n",
"Epoch 72/100\n",
"294/294 [==============================] - 5s 19ms/step - loss: 0.0801 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0201 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0124 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0201 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0124 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0091 - val_loss: 0.3324 - val_task_co_output_loss: 0.0720 - val_task_so2_output_loss: 0.0463 - val_task_no2_output_loss: 0.0562 - val_task_o3_output_loss: 0.0818 - val_task_pm25_output_loss: 0.0394 - val_task_pm10_output_loss: 0.0366 - val_task_co_output_mse: 0.0720 - val_task_so2_output_mse: 0.0463 - val_task_no2_output_mse: 0.0562 - val_task_o3_output_mse: 0.0818 - val_task_pm25_output_mse: 0.0394 - val_task_pm10_output_mse: 0.0366\n",
"Epoch 73/100\n",
"294/294 [==============================] - 5s 18ms/step - loss: 0.0808 - task_co_output_loss: 0.0134 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0134 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3260 - val_task_co_output_loss: 0.0680 - val_task_so2_output_loss: 0.0500 - val_task_no2_output_loss: 0.0568 - val_task_o3_output_loss: 0.0745 - val_task_pm25_output_loss: 0.0396 - val_task_pm10_output_loss: 0.0373 - val_task_co_output_mse: 0.0680 - val_task_so2_output_mse: 0.0500 - val_task_no2_output_mse: 0.0568 - val_task_o3_output_mse: 0.0745 - val_task_pm25_output_mse: 0.0396 - val_task_pm10_output_mse: 0.0373\n",
"Epoch 74/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0804 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0091 - val_loss: 0.3241 - val_task_co_output_loss: 0.0698 - val_task_so2_output_loss: 0.0468 - val_task_no2_output_loss: 0.0490 - val_task_o3_output_loss: 0.0821 - val_task_pm25_output_loss: 0.0398 - val_task_pm10_output_loss: 0.0367 - val_task_co_output_mse: 0.0698 - val_task_so2_output_mse: 0.0468 - val_task_no2_output_mse: 0.0490 - val_task_o3_output_mse: 0.0821 - val_task_pm25_output_mse: 0.0398 - val_task_pm10_output_mse: 0.0367\n",
"Epoch 75/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0811 - task_co_output_loss: 0.0135 - task_so2_output_loss: 0.0203 - task_no2_output_loss: 0.0118 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0137 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0135 - task_so2_output_mse: 0.0203 - task_no2_output_mse: 0.0118 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0137 - task_pm10_output_mse: 0.0092 - val_loss: 0.3396 - val_task_co_output_loss: 0.0703 - val_task_so2_output_loss: 0.0501 - val_task_no2_output_loss: 0.0548 - val_task_o3_output_loss: 0.0873 - val_task_pm25_output_loss: 0.0398 - val_task_pm10_output_loss: 0.0374 - val_task_co_output_mse: 0.0703 - val_task_so2_output_mse: 0.0501 - val_task_no2_output_mse: 0.0548 - val_task_o3_output_mse: 0.0873 - val_task_pm25_output_mse: 0.0398 - val_task_pm10_output_mse: 0.0374\n",
"Epoch 76/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0801 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0200 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0124 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0200 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0124 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0091 - val_loss: 0.3306 - val_task_co_output_loss: 0.0664 - val_task_so2_output_loss: 0.0457 - val_task_no2_output_loss: 0.0581 - val_task_o3_output_loss: 0.0828 - val_task_pm25_output_loss: 0.0400 - val_task_pm10_output_loss: 0.0378 - val_task_co_output_mse: 0.0664 - val_task_so2_output_mse: 0.0457 - val_task_no2_output_mse: 0.0581 - val_task_o3_output_mse: 0.0828 - val_task_pm25_output_mse: 0.0400 - val_task_pm10_output_mse: 0.0378\n",
"Epoch 77/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0805 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3279 - val_task_co_output_loss: 0.0689 - val_task_so2_output_loss: 0.0465 - val_task_no2_output_loss: 0.0571 - val_task_o3_output_loss: 0.0747 - val_task_pm25_output_loss: 0.0421 - val_task_pm10_output_loss: 0.0384 - val_task_co_output_mse: 0.0689 - val_task_so2_output_mse: 0.0465 - val_task_no2_output_mse: 0.0571 - val_task_o3_output_mse: 0.0747 - val_task_pm25_output_mse: 0.0421 - val_task_pm10_output_mse: 0.0384\n",
"Epoch 78/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0804 - task_co_output_loss: 0.0134 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0134 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0091 - val_loss: 0.3342 - val_task_co_output_loss: 0.0665 - val_task_so2_output_loss: 0.0476 - val_task_no2_output_loss: 0.0608 - val_task_o3_output_loss: 0.0825 - val_task_pm25_output_loss: 0.0399 - val_task_pm10_output_loss: 0.0369 - val_task_co_output_mse: 0.0665 - val_task_so2_output_mse: 0.0476 - val_task_no2_output_mse: 0.0608 - val_task_o3_output_mse: 0.0825 - val_task_pm25_output_mse: 0.0399 - val_task_pm10_output_mse: 0.0369\n",
"Epoch 79/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0800 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0201 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0124 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0201 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0124 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0091 - val_loss: 0.3342 - val_task_co_output_loss: 0.0722 - val_task_so2_output_loss: 0.0474 - val_task_no2_output_loss: 0.0571 - val_task_o3_output_loss: 0.0829 - val_task_pm25_output_loss: 0.0382 - val_task_pm10_output_loss: 0.0365 - val_task_co_output_mse: 0.0722 - val_task_so2_output_mse: 0.0474 - val_task_no2_output_mse: 0.0571 - val_task_o3_output_mse: 0.0829 - val_task_pm25_output_mse: 0.0382 - val_task_pm10_output_mse: 0.0365\n",
"Epoch 80/100\n",
"294/294 [==============================] - 5s 19ms/step - loss: 0.0796 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0200 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0123 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0200 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0123 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0091 - val_loss: 0.3486 - val_task_co_output_loss: 0.0690 - val_task_so2_output_loss: 0.0539 - val_task_no2_output_loss: 0.0556 - val_task_o3_output_loss: 0.0949 - val_task_pm25_output_loss: 0.0384 - val_task_pm10_output_loss: 0.0368 - val_task_co_output_mse: 0.0690 - val_task_so2_output_mse: 0.0539 - val_task_no2_output_mse: 0.0556 - val_task_o3_output_mse: 0.0949 - val_task_pm25_output_mse: 0.0384 - val_task_pm10_output_mse: 0.0368\n",
"Epoch 81/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0803 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0201 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0201 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0091 - val_loss: 0.3336 - val_task_co_output_loss: 0.0693 - val_task_so2_output_loss: 0.0473 - val_task_no2_output_loss: 0.0564 - val_task_o3_output_loss: 0.0848 - val_task_pm25_output_loss: 0.0392 - val_task_pm10_output_loss: 0.0366 - val_task_co_output_mse: 0.0693 - val_task_so2_output_mse: 0.0473 - val_task_no2_output_mse: 0.0564 - val_task_o3_output_mse: 0.0848 - val_task_pm25_output_mse: 0.0392 - val_task_pm10_output_mse: 0.0366\n",
"Epoch 82/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0802 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0091 - val_loss: 0.3375 - val_task_co_output_loss: 0.0729 - val_task_so2_output_loss: 0.0491 - val_task_no2_output_loss: 0.0525 - val_task_o3_output_loss: 0.0852 - val_task_pm25_output_loss: 0.0405 - val_task_pm10_output_loss: 0.0374 - val_task_co_output_mse: 0.0729 - val_task_so2_output_mse: 0.0491 - val_task_no2_output_mse: 0.0525 - val_task_o3_output_mse: 0.0852 - val_task_pm25_output_mse: 0.0405 - val_task_pm10_output_mse: 0.0374\n",
"Epoch 83/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0801 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0201 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0201 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0091 - val_loss: 0.3361 - val_task_co_output_loss: 0.0632 - val_task_so2_output_loss: 0.0455 - val_task_no2_output_loss: 0.0630 - val_task_o3_output_loss: 0.0821 - val_task_pm25_output_loss: 0.0436 - val_task_pm10_output_loss: 0.0387 - val_task_co_output_mse: 0.0632 - val_task_so2_output_mse: 0.0455 - val_task_no2_output_mse: 0.0630 - val_task_o3_output_mse: 0.0821 - val_task_pm25_output_mse: 0.0436 - val_task_pm10_output_mse: 0.0387\n",
"Epoch 84/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0797 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0200 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0124 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0200 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0124 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0091 - val_loss: 0.3492 - val_task_co_output_loss: 0.0781 - val_task_so2_output_loss: 0.0523 - val_task_no2_output_loss: 0.0579 - val_task_o3_output_loss: 0.0849 - val_task_pm25_output_loss: 0.0390 - val_task_pm10_output_loss: 0.0369 - val_task_co_output_mse: 0.0781 - val_task_so2_output_mse: 0.0523 - val_task_no2_output_mse: 0.0579 - val_task_o3_output_mse: 0.0849 - val_task_pm25_output_mse: 0.0390 - val_task_pm10_output_mse: 0.0369\n",
"Epoch 85/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0797 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0201 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0123 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0201 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0123 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0091 - val_loss: 0.3245 - val_task_co_output_loss: 0.0661 - val_task_so2_output_loss: 0.0454 - val_task_no2_output_loss: 0.0542 - val_task_o3_output_loss: 0.0833 - val_task_pm25_output_loss: 0.0387 - val_task_pm10_output_loss: 0.0366 - val_task_co_output_mse: 0.0661 - val_task_so2_output_mse: 0.0454 - val_task_no2_output_mse: 0.0542 - val_task_o3_output_mse: 0.0833 - val_task_pm25_output_mse: 0.0387 - val_task_pm10_output_mse: 0.0366\n",
"Epoch 86/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0801 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0200 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0124 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0200 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0124 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0091 - val_loss: 0.3361 - val_task_co_output_loss: 0.0692 - val_task_so2_output_loss: 0.0469 - val_task_no2_output_loss: 0.0577 - val_task_o3_output_loss: 0.0832 - val_task_pm25_output_loss: 0.0413 - val_task_pm10_output_loss: 0.0377 - val_task_co_output_mse: 0.0692 - val_task_so2_output_mse: 0.0469 - val_task_no2_output_mse: 0.0577 - val_task_o3_output_mse: 0.0832 - val_task_pm25_output_mse: 0.0413 - val_task_pm10_output_mse: 0.0377\n",
"Epoch 87/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0796 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0200 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0123 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0090 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0200 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0123 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0090 - val_loss: 0.3492 - val_task_co_output_loss: 0.0669 - val_task_so2_output_loss: 0.0507 - val_task_no2_output_loss: 0.0625 - val_task_o3_output_loss: 0.0873 - val_task_pm25_output_loss: 0.0425 - val_task_pm10_output_loss: 0.0392 - val_task_co_output_mse: 0.0669 - val_task_so2_output_mse: 0.0507 - val_task_no2_output_mse: 0.0625 - val_task_o3_output_mse: 0.0873 - val_task_pm25_output_mse: 0.0425 - val_task_pm10_output_mse: 0.0392\n",
"Epoch 88/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0793 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0199 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0122 - task_pm25_output_loss: 0.0134 - task_pm10_output_loss: 0.0090 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0199 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0122 - task_pm25_output_mse: 0.0134 - task_pm10_output_mse: 0.0090 - val_loss: 0.3520 - val_task_co_output_loss: 0.0705 - val_task_so2_output_loss: 0.0537 - val_task_no2_output_loss: 0.0562 - val_task_o3_output_loss: 0.0924 - val_task_pm25_output_loss: 0.0415 - val_task_pm10_output_loss: 0.0377 - val_task_co_output_mse: 0.0705 - val_task_so2_output_mse: 0.0537 - val_task_no2_output_mse: 0.0562 - val_task_o3_output_mse: 0.0924 - val_task_pm25_output_mse: 0.0415 - val_task_pm10_output_mse: 0.0377\n",
"Epoch 89/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0794 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0200 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0123 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0200 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0123 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0091 - val_loss: 0.3312 - val_task_co_output_loss: 0.0699 - val_task_so2_output_loss: 0.0479 - val_task_no2_output_loss: 0.0595 - val_task_o3_output_loss: 0.0744 - val_task_pm25_output_loss: 0.0420 - val_task_pm10_output_loss: 0.0376 - val_task_co_output_mse: 0.0699 - val_task_so2_output_mse: 0.0479 - val_task_no2_output_mse: 0.0595 - val_task_o3_output_mse: 0.0744 - val_task_pm25_output_mse: 0.0420 - val_task_pm10_output_mse: 0.0376\n",
"Epoch 90/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0796 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0200 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0123 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0200 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0123 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0091 - val_loss: 0.3318 - val_task_co_output_loss: 0.0661 - val_task_so2_output_loss: 0.0507 - val_task_no2_output_loss: 0.0554 - val_task_o3_output_loss: 0.0827 - val_task_pm25_output_loss: 0.0399 - val_task_pm10_output_loss: 0.0369 - val_task_co_output_mse: 0.0661 - val_task_so2_output_mse: 0.0507 - val_task_no2_output_mse: 0.0554 - val_task_o3_output_mse: 0.0827 - val_task_pm25_output_mse: 0.0399 - val_task_pm10_output_mse: 0.0369\n",
"Epoch 91/100\n",
"294/294 [==============================] - 6s 20ms/step - loss: 0.0791 - task_co_output_loss: 0.0131 - task_so2_output_loss: 0.0198 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0122 - task_pm25_output_loss: 0.0134 - task_pm10_output_loss: 0.0090 - task_co_output_mse: 0.0131 - task_so2_output_mse: 0.0198 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0122 - task_pm25_output_mse: 0.0134 - task_pm10_output_mse: 0.0090 - val_loss: 0.3302 - val_task_co_output_loss: 0.0667 - val_task_so2_output_loss: 0.0499 - val_task_no2_output_loss: 0.0577 - val_task_o3_output_loss: 0.0791 - val_task_pm25_output_loss: 0.0397 - val_task_pm10_output_loss: 0.0370 - val_task_co_output_mse: 0.0667 - val_task_so2_output_mse: 0.0499 - val_task_no2_output_mse: 0.0577 - val_task_o3_output_mse: 0.0791 - val_task_pm25_output_mse: 0.0397 - val_task_pm10_output_mse: 0.0370\n",
"Epoch 92/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0801 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0199 - task_no2_output_loss: 0.0117 - task_o3_output_loss: 0.0127 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0199 - task_no2_output_mse: 0.0117 - task_o3_output_mse: 0.0127 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0091 - val_loss: 0.3427 - val_task_co_output_loss: 0.0710 - val_task_so2_output_loss: 0.0517 - val_task_no2_output_loss: 0.0584 - val_task_o3_output_loss: 0.0832 - val_task_pm25_output_loss: 0.0410 - val_task_pm10_output_loss: 0.0374 - val_task_co_output_mse: 0.0710 - val_task_so2_output_mse: 0.0517 - val_task_no2_output_mse: 0.0584 - val_task_o3_output_mse: 0.0832 - val_task_pm25_output_mse: 0.0410 - val_task_pm10_output_mse: 0.0374\n",
"Epoch 93/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0796 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0200 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0123 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0200 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0123 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0091 - val_loss: 0.3318 - val_task_co_output_loss: 0.0663 - val_task_so2_output_loss: 0.0458 - val_task_no2_output_loss: 0.0586 - val_task_o3_output_loss: 0.0805 - val_task_pm25_output_loss: 0.0418 - val_task_pm10_output_loss: 0.0389 - val_task_co_output_mse: 0.0663 - val_task_so2_output_mse: 0.0458 - val_task_no2_output_mse: 0.0586 - val_task_o3_output_mse: 0.0805 - val_task_pm25_output_mse: 0.0418 - val_task_pm10_output_mse: 0.0389\n",
"Epoch 94/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0797 - task_co_output_loss: 0.0131 - task_so2_output_loss: 0.0200 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0125 - task_pm25_output_loss: 0.0135 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0131 - task_so2_output_mse: 0.0200 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0125 - task_pm25_output_mse: 0.0135 - task_pm10_output_mse: 0.0091 - val_loss: 0.3527 - val_task_co_output_loss: 0.0764 - val_task_so2_output_loss: 0.0518 - val_task_no2_output_loss: 0.0603 - val_task_o3_output_loss: 0.0876 - val_task_pm25_output_loss: 0.0394 - val_task_pm10_output_loss: 0.0372 - val_task_co_output_mse: 0.0764 - val_task_so2_output_mse: 0.0518 - val_task_no2_output_mse: 0.0603 - val_task_o3_output_mse: 0.0876 - val_task_pm25_output_mse: 0.0394 - val_task_pm10_output_mse: 0.0372\n",
"Epoch 95/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0804 - task_co_output_loss: 0.0133 - task_so2_output_loss: 0.0202 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0126 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0133 - task_so2_output_mse: 0.0202 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0126 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3323 - val_task_co_output_loss: 0.0650 - val_task_so2_output_loss: 0.0453 - val_task_no2_output_loss: 0.0595 - val_task_o3_output_loss: 0.0851 - val_task_pm25_output_loss: 0.0405 - val_task_pm10_output_loss: 0.0369 - val_task_co_output_mse: 0.0650 - val_task_so2_output_mse: 0.0453 - val_task_no2_output_mse: 0.0595 - val_task_o3_output_mse: 0.0851 - val_task_pm25_output_mse: 0.0405 - val_task_pm10_output_mse: 0.0369\n",
"Epoch 96/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0793 - task_co_output_loss: 0.0131 - task_so2_output_loss: 0.0199 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0123 - task_pm25_output_loss: 0.0134 - task_pm10_output_loss: 0.0090 - task_co_output_mse: 0.0131 - task_so2_output_mse: 0.0199 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0123 - task_pm25_output_mse: 0.0134 - task_pm10_output_mse: 0.0090 - val_loss: 0.3369 - val_task_co_output_loss: 0.0695 - val_task_so2_output_loss: 0.0523 - val_task_no2_output_loss: 0.0552 - val_task_o3_output_loss: 0.0837 - val_task_pm25_output_loss: 0.0393 - val_task_pm10_output_loss: 0.0368 - val_task_co_output_mse: 0.0695 - val_task_so2_output_mse: 0.0523 - val_task_no2_output_mse: 0.0552 - val_task_o3_output_mse: 0.0837 - val_task_pm25_output_mse: 0.0393 - val_task_pm10_output_mse: 0.0368\n",
"Epoch 97/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0795 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0201 - task_no2_output_loss: 0.0114 - task_o3_output_loss: 0.0123 - task_pm25_output_loss: 0.0134 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0201 - task_no2_output_mse: 0.0114 - task_o3_output_mse: 0.0123 - task_pm25_output_mse: 0.0134 - task_pm10_output_mse: 0.0091 - val_loss: 0.3328 - val_task_co_output_loss: 0.0690 - val_task_so2_output_loss: 0.0481 - val_task_no2_output_loss: 0.0592 - val_task_o3_output_loss: 0.0809 - val_task_pm25_output_loss: 0.0394 - val_task_pm10_output_loss: 0.0363 - val_task_co_output_mse: 0.0690 - val_task_so2_output_mse: 0.0481 - val_task_no2_output_mse: 0.0592 - val_task_o3_output_mse: 0.0809 - val_task_pm25_output_mse: 0.0394 - val_task_pm10_output_mse: 0.0363\n",
"Epoch 98/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0795 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0200 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0123 - task_pm25_output_loss: 0.0134 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0200 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0123 - task_pm25_output_mse: 0.0134 - task_pm10_output_mse: 0.0091 - val_loss: 0.3337 - val_task_co_output_loss: 0.0632 - val_task_so2_output_loss: 0.0492 - val_task_no2_output_loss: 0.0622 - val_task_o3_output_loss: 0.0793 - val_task_pm25_output_loss: 0.0418 - val_task_pm10_output_loss: 0.0380 - val_task_co_output_mse: 0.0632 - val_task_so2_output_mse: 0.0492 - val_task_no2_output_mse: 0.0622 - val_task_o3_output_mse: 0.0793 - val_task_pm25_output_mse: 0.0418 - val_task_pm10_output_mse: 0.0380\n",
"Epoch 99/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0803 - task_co_output_loss: 0.0132 - task_so2_output_loss: 0.0203 - task_no2_output_loss: 0.0116 - task_o3_output_loss: 0.0123 - task_pm25_output_loss: 0.0136 - task_pm10_output_loss: 0.0092 - task_co_output_mse: 0.0132 - task_so2_output_mse: 0.0203 - task_no2_output_mse: 0.0116 - task_o3_output_mse: 0.0123 - task_pm25_output_mse: 0.0136 - task_pm10_output_mse: 0.0092 - val_loss: 0.3496 - val_task_co_output_loss: 0.0760 - val_task_so2_output_loss: 0.0507 - val_task_no2_output_loss: 0.0618 - val_task_o3_output_loss: 0.0837 - val_task_pm25_output_loss: 0.0401 - val_task_pm10_output_loss: 0.0372 - val_task_co_output_mse: 0.0760 - val_task_so2_output_mse: 0.0507 - val_task_no2_output_mse: 0.0618 - val_task_o3_output_mse: 0.0837 - val_task_pm25_output_mse: 0.0401 - val_task_pm10_output_mse: 0.0372\n",
"Epoch 100/100\n",
"294/294 [==============================] - 6s 19ms/step - loss: 0.0791 - task_co_output_loss: 0.0131 - task_so2_output_loss: 0.0198 - task_no2_output_loss: 0.0115 - task_o3_output_loss: 0.0122 - task_pm25_output_loss: 0.0134 - task_pm10_output_loss: 0.0091 - task_co_output_mse: 0.0131 - task_so2_output_mse: 0.0198 - task_no2_output_mse: 0.0115 - task_o3_output_mse: 0.0122 - task_pm25_output_mse: 0.0134 - task_pm10_output_mse: 0.0091 - val_loss: 0.3494 - val_task_co_output_loss: 0.0711 - val_task_so2_output_loss: 0.0461 - val_task_no2_output_loss: 0.0635 - val_task_o3_output_loss: 0.0886 - val_task_pm25_output_loss: 0.0416 - val_task_pm10_output_loss: 0.0385 - val_task_co_output_mse: 0.0711 - val_task_so2_output_mse: 0.0461 - val_task_no2_output_mse: 0.0635 - val_task_o3_output_mse: 0.0886 - val_task_pm25_output_mse: 0.0416 - val_task_pm10_output_mse: 0.0385\n"
]
}
],
"source": [
"model_history = model.fit(\n",
" {'input': new_train},\n",
" {\n",
" 'task_co_output': train_data['CO'],\n",
" 'task_so2_output': train_data['SO2'],\n",
" 'task_no2_output': train_data['NO2'],\n",
" 'task_o3_output': train_data['O3'],\n",
" 'task_pm25_output': train_data['PM2.5'],\n",
" 'task_pm10_output': train_data['PM10'],\n",
" },\n",
" validation_data=(x_val, y_val),\n",
" epochs=100, batch_size=128, verbose=1)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"rst = model.predict(np.expand_dims(test_data[feature_cols].values, axis=1))"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"rst_df = pd.DataFrame.from_records(rst).T"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [],
"source": [
"for col in rst_df.columns:\n",
" rst_df[col] = rst_df[col].apply(lambda x:x[0][0])"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score, mean_absolute_percentage_error"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [],
"source": [
"y_test = test_data[out_cols].values\n",
"y_pred = rst_df.values"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MSE: 7.15E-02,RMSE: 0.2674,MAE: 0.2392,R_2: -2.2352\n",
"MSE: 2.66E-02,RMSE: 0.163,MAE: 0.1342,R_2: -0.8657\n",
"MSE: 8.25E-02,RMSE: 0.2872,MAE: 0.2411,R_2: -1.278\n",
"MSE: 1.11E-01,RMSE: 0.3326,MAE: 0.2841,R_2: -2.9476\n",
"MSE: 8.26E-02,RMSE: 0.2873,MAE: 0.2465,R_2: -0.7187\n",
"MSE: 6.96E-02,RMSE: 0.2639,MAE: 0.2373,R_2: -2.166\n"
]
}
],
"source": [
"for i in range(y_test.shape[1]):\n",
" MSE = mean_squared_error(y_test[:, i], y_pred[:, i])\n",
" RMSE = np.sqrt(mean_squared_error(y_test[:, i], y_pred[:, i]))\n",
" MAE = mean_absolute_error(y_test[:, i], y_pred[:, i])\n",
" MAPE = mean_absolute_percentage_error(y_test[:, i], y_pred[:, i])\n",
" R_2 = r2_score(y_test[:, i], y_pred[:, i])\n",
" print(f\"MSE: {format(MSE, '.2E')}\", end=',')\n",
" print(f'RMSE: {round(RMSE, 4)}', end=',')\n",
" print(f'MAE: {round(MAE, 4)}', end=',')\n",
" print(f'R_2: {round(R_2, 4)}')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.13"
}
},
"nbformat": 4,
"nbformat_minor": 4
}