22-T67/keras_test.ipynb

281 KiB
Raw Blame History

In [1]:
import pandas as pd
from sklearn.model_selection import train_test_split
import numpy as np
import seaborn as sns

import matplotlib.pyplot as plt
import datetime as dt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
In [2]:
import os
In [3]:
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1'
In [4]:
import tensorflow as tf
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
In [5]:
data = pd.read_excel('./data/merge_data_ty1.xlsx')
data.head()
Out[5]:
Date PM2.5 PM10 SO2 NO2 O3 O3_8h CO wd ws air_temp RH blh sp sr
0 2015-01-02 01:00:00 136.0 214.0 317.0 38.0 8.0 9.0 3.71 43.0 1.0 -11.0 45.0 36.619542 89545.385661 0.0
1 2015-01-02 02:00:00 114.0 176.0 305.0 38.0 8.0 9.0 3.55 58.0 0.7 -11.1 47.0 33.766181 89537.049808 0.0
2 2015-01-02 03:00:00 97.0 154.0 306.0 37.0 7.0 8.0 3.51 185.0 0.5 -11.7 50.0 31.642749 89549.808766 0.0
3 2015-01-02 04:00:00 87.0 141.0 316.0 38.0 7.0 8.0 3.55 0.0 0.2 -12.7 52.0 28.258529 89521.398819 0.0
4 2015-01-02 05:00:00 85.0 139.0 292.0 37.0 7.0 8.0 3.62 199.0 1.4 -10.9 61.0 26.400526 89526.162164 0.0
In [6]:
data.Date = pd.to_datetime(data.Date)
data['days'] = data.Date.apply(lambda x: f"{x.year}-{x.month}-{x.day}")
In [7]:
days_counts = ((data.days.value_counts() < 19) * 1).to_frame().reset_index()
days_counts.columns = ['days', 'counts']
drop_days = days_counts[days_counts.counts == 1].days.values.tolist()
drop_days
Out[7]:
['2016-12-4',
 '2017-1-17',
 '2017-9-18',
 '2017-10-8',
 '2017-6-26',
 '2016-12-5',
 '2017-9-17',
 '2017-3-10',
 '2015-5-7',
 '2017-3-6',
 '2016-6-28',
 '2016-8-4',
 '2017-2-7',
 '2015-10-13',
 '2020-11-24',
 '2017-3-8',
 '2016-12-22',
 '2018-8-25',
 '2020-12-9',
 '2020-12-12',
 '2019-5-5',
 '2019-1-30',
 '2018-8-27',
 '2015-7-1',
 '2017-2-5',
 '2016-12-7',
 '2016-5-24',
 '2015-7-16',
 '2017-6-15',
 '2017-3-21',
 '2017-4-23',
 '2020-12-16',
 '2018-7-23',
 '2017-2-3',
 '2018-8-29',
 '2017-1-2',
 '2017-1-9',
 '2016-12-15',
 '2019-8-13',
 '2017-11-4',
 '2018-6-1',
 '2015-6-20',
 '2015-7-2',
 '2019-1-21',
 '2019-9-1',
 '2019-8-25',
 '2016-10-18',
 '2017-5-23',
 '2015-7-21',
 '2018-8-31',
 '2016-12-8',
 '2018-9-2',
 '2017-8-18',
 '2016-9-18',
 '2019-10-3',
 '2016-5-23',
 '2016-5-31',
 '2018-9-3',
 '2017-4-14',
 '2019-4-17',
 '2015-3-12',
 '2017-2-4',
 '2018-12-8',
 '2015-6-19',
 '2015-9-19',
 '2015-5-8',
 '2015-12-14',
 '2016-5-25',
 '2015-4-19',
 '2019-5-31',
 '2019-6-21',
 '2018-8-24',
 '2017-10-21',
 '2016-11-10',
 '2015-1-4',
 '2016-10-17',
 '2019-10-7',
 '2017-5-4',
 '2017-7-9',
 '2016-4-25',
 '2017-10-11',
 '2019-10-2',
 '2020-12-8',
 '2016-6-9',
 '2019-9-3',
 '2016-11-15',
 '2017-5-14',
 '2017-8-23',
 '2016-11-2',
 '2016-8-2',
 '2016-4-24',
 '2016-10-21',
 '2019-6-22',
 '2017-9-8',
 '2015-12-13',
 '2017-9-9',
 '2017-1-30',
 '2018-12-27',
 '2015-9-20',
 '2019-8-31',
 '2019-9-22',
 '2017-3-14',
 '2016-12-6',
 '2019-8-22',
 '2019-9-21',
 '2018-9-1',
 '2018-8-30',
 '2018-8-28',
 '2018-8-26',
 '2017-1-29',
 '2017-12-9',
 '2018-5-10',
 '2019-8-23',
 '2019-8-30']
In [8]:
new_data = data.drop(columns='days').set_index('Date').interpolate().reset_index()
new_data['days'] = new_data.Date.apply(lambda x: f"{x.year}-{x.month}-{x.day}")
new_data.shape
Out[8]:
(48496, 16)
In [9]:
use_data = new_data[~new_data.days.isin(drop_days)].drop(columns='days')
use_data
Out[9]:
Date PM2.5 PM10 SO2 NO2 O3 O3_8h CO wd ws air_temp RH blh sp sr
0 2015-01-02 01:00:00 136.0 214.0 317.0 38.0 8.0 9.0 3.71 43.0 1.0 -11.0 45.0 36.619542 89545.385661 0.0
1 2015-01-02 02:00:00 114.0 176.0 305.0 38.0 8.0 9.0 3.55 58.0 0.7 -11.1 47.0 33.766181 89537.049808 0.0
2 2015-01-02 03:00:00 97.0 154.0 306.0 37.0 7.0 8.0 3.51 185.0 0.5 -11.7 50.0 31.642749 89549.808766 0.0
3 2015-01-02 04:00:00 87.0 141.0 316.0 38.0 7.0 8.0 3.55 0.0 0.2 -12.7 52.0 28.258529 89521.398819 0.0
4 2015-01-02 05:00:00 85.0 139.0 292.0 37.0 7.0 8.0 3.62 199.0 1.4 -10.9 61.0 26.400526 89526.162164 0.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
48491 2020-12-31 19:00:00 27.0 51.0 16.0 46.0 29.0 43.0 0.72 250.0 1.1 -10.8 40.0 49.236325 89445.869718 0.0
48492 2020-12-31 20:00:00 26.0 51.0 12.0 47.0 26.0 41.0 0.83 242.0 0.3 -12.8 49.0 42.614894 89439.267234 0.0
48493 2020-12-31 21:00:00 29.0 58.0 16.0 48.0 25.0 39.0 1.15 135.0 0.9 -12.4 42.0 43.656467 89416.920363 0.0
48494 2020-12-31 22:00:00 32.0 60.0 23.0 49.0 20.0 35.0 0.90 184.0 1.7 -9.1 33.0 46.632391 89396.605025 0.0
48495 2020-12-31 23:00:00 53.0 94.0 41.0 57.0 12.0 29.0 1.18 135.0 1.2 -13.1 44.0 46.557993 89371.210854 0.0

46992 rows × 15 columns

In [10]:
feature_cols = [x for x in use_data.columns[-7:].tolist() if x != 'wd']
out_cols = [x for x in use_data.columns[1:8].tolist() if x != 'O3_8h']
feature_cols, out_cols
Out[10]:
(['ws', 'air_temp', 'RH', 'blh', 'sp', 'sr'],
 ['PM2.5', 'PM10', 'SO2', 'NO2', 'O3', 'CO'])
In [11]:
use_cols = feature_cols + out_cols
In [12]:
for col in use_cols:
    use_data[col] = use_data[col].astype(float)
    if col in out_cols:
        use_data[col] = np.log1p(use_data[col])  # 输出列,先做对数化再做归一化
In [13]:
maxs = use_data[use_cols].max()
mins = use_data[use_cols].min()
In [14]:
for col in use_cols:
    use_data[col] = (use_data[col] - mins[col]) / (maxs[col] - mins[col])
In [15]:
for col in feature_cols:
    use_data[col] = np.log1p(use_data[col])
In [16]:
use_data.describe()
Out[16]:
PM2.5 PM10 SO2 NO2 O3 O3_8h CO wd ws air_temp RH blh sp sr
count 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000 46992.000000
mean 0.540643 0.520721 0.400111 0.592997 0.553253 50.459940 0.308149 183.429637 0.153186 0.424889 0.415632 0.098865 0.383629 0.157137
std 0.146384 0.116015 0.187431 0.167457 0.219076 44.249202 0.146888 111.611348 0.090439 0.130073 0.177612 0.124225 0.118019 0.204083
min 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
25% 0.439383 0.447493 0.259803 0.487728 0.369501 15.000000 0.201095 84.000000 0.094410 0.322655 0.271934 0.005794 0.289696 0.000000
50% 0.545412 0.527246 0.381729 0.615689 0.591369 39.000000 0.283458 189.000000 0.147053 0.441955 0.426084 0.038142 0.394265 0.015822
75% 0.640919 0.602141 0.523471 0.721767 0.725716 73.000000 0.392872 284.000000 0.180670 0.532543 0.577315 0.159395 0.474785 0.314768
max 1.000000 1.000000 1.000000 1.000000 1.000000 268.000000 1.000000 360.000000 0.693147 0.693147 0.693147 0.693147 0.693147 0.693147
In [17]:
train_data, valid = train_test_split(use_data[use_cols], test_size=0.2, random_state=42, shuffle=True)
valid_data, test_data = train_test_split(valid, test_size=0.5, random_state=42, shuffle=True)
In [18]:
import tensorflow as tf
In [19]:
from tensorflow.keras.layers import Dense, Input, Concatenate, Subtract
import tensorflow.keras.backend as K
In [20]:
def create_multi_task_learning_model():
    def create_task_branch(main_branch, name):
        task_branch = Dense(100, activation='relu')(main_branch)
        task_branch = Dense(50, activation='relu')(task_branch)
        task_branch = Dense(40, activation='relu')(task_branch)
        task_branch = Dense(20, activation='relu')(task_branch)
        task_branch = Dense(10, activation='relu')(task_branch)
        task_branch = Dense(5, activation='relu', name=f"{name}_dense")(task_branch)
        return task_branch

    inputs = Input(shape=(1, 6), name='input')

    main_branch = Dense(800, activation='relu')(inputs)
    main_branch = Dense(400, activation='relu')(main_branch)
    main_branch = Dense(200, activation='relu')(main_branch)
    main_branch = Dense(100, activation='relu')(main_branch)

    co = create_task_branch(main_branch, name='co')
    so2 = create_task_branch(main_branch, name='so2')
    no2 = create_task_branch(main_branch, name='no2')
    o3 = create_task_branch(main_branch, name='o3')
    pm25 = create_task_branch(main_branch, name='pm25')
    pm10 = create_task_branch(main_branch, name='pm10')

    no2_merge = Concatenate()([no2, o3])
    o3_merge = Concatenate()([o3, no2])
    pm25_merge = Concatenate()([so2, no2, o3, pm25])
    pm10_merge = Concatenate()([pm25, pm10])

    co_out = Dense(1, name='task_co_output')(co)
    so2_out = Dense(1, name='task_so2_output')(so2)
    no2_out = Dense(units=1, name='task_no2_output')(no2_merge)
    o3_out = Dense(input_dim=10, units=1, name='task_o3_output')(o3_merge)
    pm25_out = Dense(input_dim=20, units=1, name='task_pm25_output')(pm25_merge)
    pm10_out = Dense(input_dim=10, units=1, name='task_pm10_output')(pm10_merge)


    model = tf.keras.Model(inputs=inputs, outputs=[co_out, so2_out, no2_out, o3_out, pm25_out, pm10_out])
    # model = tf.keras.Model(inputs=inputs, outputs=[no2_merge])
    return model
In [21]:
model = create_multi_task_learning_model()
2022-12-16 09:59:31.598268: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcuda.so.1
2022-12-16 09:59:31.678629: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 0 with properties: 
pciBusID: 0000:35:00.0 name: NVIDIA A100-PCIE-40GB computeCapability: 8.0
coreClock: 1.41GHz coreCount: 108 deviceMemorySize: 39.41GiB deviceMemoryBandwidth: 1.41TiB/s
2022-12-16 09:59:31.680731: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 1 with properties: 
pciBusID: 0000:9c:00.0 name: NVIDIA A100-PCIE-40GB computeCapability: 8.0
coreClock: 1.41GHz coreCount: 108 deviceMemorySize: 39.41GiB deviceMemoryBandwidth: 1.41TiB/s
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
2022-12-16 09:59:31.683080: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcublas.so.11
2022-12-16 09:59:31.683142: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcublasLt.so.11
2022-12-16 09:59:31.683848: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcufft.so.10
2022-12-16 09:59:31.684050: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcurand.so.10
2022-12-16 09:59:31.684630: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcusolver.so.11
2022-12-16 09:59:31.685110: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcusparse.so.11
2022-12-16 09:59:31.685220: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcudnn.so.8
2022-12-16 09:59:31.692409: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1871] Adding visible gpu devices: 0, 1
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
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2022-12-16 09:59:32.124092: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 0 with properties: 
pciBusID: 0000:35:00.0 name: NVIDIA A100-PCIE-40GB computeCapability: 8.0
coreClock: 1.41GHz coreCount: 108 deviceMemorySize: 39.41GiB deviceMemoryBandwidth: 1.41TiB/s
2022-12-16 09:59:32.125883: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 1 with properties: 
pciBusID: 0000:9c:00.0 name: NVIDIA A100-PCIE-40GB computeCapability: 8.0
coreClock: 1.41GHz coreCount: 108 deviceMemorySize: 39.41GiB deviceMemoryBandwidth: 1.41TiB/s
2022-12-16 09:59:32.132114: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1871] Adding visible gpu devices: 0, 1
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
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:
2022-12-16 09:59:32.813814: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1264]      0 1 
2022-12-16 09:59:32.813820: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1277] 0:   N Y 
2022-12-16 09:59:32.813823: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1277] 1:   Y 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)
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)
In [22]:
model.summary()
Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input (InputLayer)              [(None, 1, 6)]       0                                            
__________________________________________________________________________________________________
dense (Dense)                   (None, 1, 800)       5600        input[0][0]                      
__________________________________________________________________________________________________
dense_1 (Dense)                 (None, 1, 400)       320400      dense[0][0]                      
__________________________________________________________________________________________________
dense_2 (Dense)                 (None, 1, 200)       80200       dense_1[0][0]                    
__________________________________________________________________________________________________
dense_3 (Dense)                 (None, 1, 100)       20100       dense_2[0][0]                    
__________________________________________________________________________________________________
dense_9 (Dense)                 (None, 1, 100)       10100       dense_3[0][0]                    
__________________________________________________________________________________________________
dense_14 (Dense)                (None, 1, 100)       10100       dense_3[0][0]                    
__________________________________________________________________________________________________
dense_19 (Dense)                (None, 1, 100)       10100       dense_3[0][0]                    
__________________________________________________________________________________________________
dense_24 (Dense)                (None, 1, 100)       10100       dense_3[0][0]                    
__________________________________________________________________________________________________
dense_29 (Dense)                (None, 1, 100)       10100       dense_3[0][0]                    
__________________________________________________________________________________________________
dense_4 (Dense)                 (None, 1, 100)       10100       dense_3[0][0]                    
__________________________________________________________________________________________________
dense_10 (Dense)                (None, 1, 50)        5050        dense_9[0][0]                    
__________________________________________________________________________________________________
dense_15 (Dense)                (None, 1, 50)        5050        dense_14[0][0]                   
__________________________________________________________________________________________________
dense_20 (Dense)                (None, 1, 50)        5050        dense_19[0][0]                   
__________________________________________________________________________________________________
dense_25 (Dense)                (None, 1, 50)        5050        dense_24[0][0]                   
__________________________________________________________________________________________________
dense_30 (Dense)                (None, 1, 50)        5050        dense_29[0][0]                   
__________________________________________________________________________________________________
dense_5 (Dense)                 (None, 1, 50)        5050        dense_4[0][0]                    
__________________________________________________________________________________________________
dense_11 (Dense)                (None, 1, 40)        2040        dense_10[0][0]                   
__________________________________________________________________________________________________
dense_16 (Dense)                (None, 1, 40)        2040        dense_15[0][0]                   
__________________________________________________________________________________________________
dense_21 (Dense)                (None, 1, 40)        2040        dense_20[0][0]                   
__________________________________________________________________________________________________
dense_26 (Dense)                (None, 1, 40)        2040        dense_25[0][0]                   
__________________________________________________________________________________________________
dense_31 (Dense)                (None, 1, 40)        2040        dense_30[0][0]                   
__________________________________________________________________________________________________
dense_6 (Dense)                 (None, 1, 40)        2040        dense_5[0][0]                    
__________________________________________________________________________________________________
dense_12 (Dense)                (None, 1, 20)        820         dense_11[0][0]                   
__________________________________________________________________________________________________
dense_17 (Dense)                (None, 1, 20)        820         dense_16[0][0]                   
__________________________________________________________________________________________________
dense_22 (Dense)                (None, 1, 20)        820         dense_21[0][0]                   
__________________________________________________________________________________________________
dense_27 (Dense)                (None, 1, 20)        820         dense_26[0][0]                   
__________________________________________________________________________________________________
dense_32 (Dense)                (None, 1, 20)        820         dense_31[0][0]                   
__________________________________________________________________________________________________
dense_7 (Dense)                 (None, 1, 20)        820         dense_6[0][0]                    
__________________________________________________________________________________________________
dense_13 (Dense)                (None, 1, 10)        210         dense_12[0][0]                   
__________________________________________________________________________________________________
dense_18 (Dense)                (None, 1, 10)        210         dense_17[0][0]                   
__________________________________________________________________________________________________
dense_23 (Dense)                (None, 1, 10)        210         dense_22[0][0]                   
__________________________________________________________________________________________________
dense_28 (Dense)                (None, 1, 10)        210         dense_27[0][0]                   
__________________________________________________________________________________________________
dense_33 (Dense)                (None, 1, 10)        210         dense_32[0][0]                   
__________________________________________________________________________________________________
dense_8 (Dense)                 (None, 1, 10)        210         dense_7[0][0]                    
__________________________________________________________________________________________________
so2_dense (Dense)               (None, 1, 5)         55          dense_13[0][0]                   
__________________________________________________________________________________________________
no2_dense (Dense)               (None, 1, 5)         55          dense_18[0][0]                   
__________________________________________________________________________________________________
o3_dense (Dense)                (None, 1, 5)         55          dense_23[0][0]                   
__________________________________________________________________________________________________
pm25_dense (Dense)              (None, 1, 5)         55          dense_28[0][0]                   
__________________________________________________________________________________________________
pm10_dense (Dense)              (None, 1, 5)         55          dense_33[0][0]                   
__________________________________________________________________________________________________
co_dense (Dense)                (None, 1, 5)         55          dense_8[0][0]                    
__________________________________________________________________________________________________
concatenate (Concatenate)       (None, 1, 10)        0           no2_dense[0][0]                  
                                                                 o3_dense[0][0]                   
__________________________________________________________________________________________________
concatenate_1 (Concatenate)     (None, 1, 10)        0           o3_dense[0][0]                   
                                                                 no2_dense[0][0]                  
__________________________________________________________________________________________________
concatenate_2 (Concatenate)     (None, 1, 20)        0           so2_dense[0][0]                  
                                                                 no2_dense[0][0]                  
                                                                 o3_dense[0][0]                   
                                                                 pm25_dense[0][0]                 
__________________________________________________________________________________________________
concatenate_3 (Concatenate)     (None, 1, 10)        0           pm25_dense[0][0]                 
                                                                 pm10_dense[0][0]                 
__________________________________________________________________________________________________
task_co_output (Dense)          (None, 1, 1)         6           co_dense[0][0]                   
__________________________________________________________________________________________________
task_so2_output (Dense)         (None, 1, 1)         6           so2_dense[0][0]                  
__________________________________________________________________________________________________
task_no2_output (Dense)         (None, 1, 1)         11          concatenate[0][0]                
__________________________________________________________________________________________________
task_o3_output (Dense)          (None, 1, 1)         11          concatenate_1[0][0]              
__________________________________________________________________________________________________
task_pm25_output (Dense)        (None, 1, 1)         21          concatenate_2[0][0]              
__________________________________________________________________________________________________
task_pm10_output (Dense)        (None, 1, 1)         11          concatenate_3[0][0]              
==================================================================================================
Total params: 536,016
Trainable params: 536,016
Non-trainable params: 0
__________________________________________________________________________________________________
In [23]:
from tensorflow.python.keras.utils.vis_utils import plot_model
In [24]:
plot_model(model, to_file='model.png')
Out[24]:
No description has been provided for this image
In [25]:
from tensorflow.keras import optimizers
In [26]:
opt = optimizers.Adam(learning_rate=0.01)
In [27]:
def compile_multitask_model(model):
    model.compile(optimizer=opt,
                  loss={
                      'task_co_output': 'mean_squared_error',
                      'task_so2_output': 'mean_squared_error',
                      'task_no2_output': 'mean_squared_error',
                      'task_o3_output': 'mean_squared_error',
                      'task_pm25_output': 'mean_squared_error',
                      'task_pm10_output': 'mean_squared_error',
                  },
                  metrics=['mse'],
                  )
    return model
In [28]:
model = compile_multitask_model(model)
In [29]:
new_train = np.expand_dims(train_data[feature_cols].values, axis=1)
In [31]:
x_val, y_val = np.expand_dims(valid_data[feature_cols].values, axis=1), valid_data[out_cols]
In [32]:
model_history = model.fit(
    {'input': new_train},
    {
        'task_co_output': train_data['CO'],
        'task_so2_output': train_data['SO2'],
        'task_no2_output': train_data['NO2'],
        'task_o3_output': train_data['O3'],
        'task_pm25_output': train_data['PM2.5'],
        'task_pm10_output': train_data['PM10'],
    },
    validation_data=(x_val, y_val),
    epochs=100, batch_size=128, verbose=1)
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)
2022-12-16 10:03:12.474167: I tensorflow/core/platform/profile_utils/cpu_utils.cc:114] CPU Frequency: 2200000000 Hz
Epoch 1/100
2022-12-16 10:03:15.809303: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcublas.so.11
 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 
2022-12-16 10:03:16.467287: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcublasLt.so.11
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.
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
Epoch 2/100
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
Epoch 3/100
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
Epoch 4/100
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
Epoch 5/100
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
Epoch 6/100
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
Epoch 7/100
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
Epoch 8/100
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
Epoch 9/100
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
Epoch 10/100
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
Epoch 11/100
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
Epoch 12/100
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
Epoch 13/100
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
Epoch 14/100
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
Epoch 15/100
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
Epoch 16/100
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
Epoch 17/100
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
Epoch 18/100
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
Epoch 19/100
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
Epoch 20/100
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
Epoch 21/100
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
Epoch 22/100
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
Epoch 23/100
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
Epoch 24/100
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
Epoch 25/100
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
Epoch 26/100
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
Epoch 27/100
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
Epoch 28/100
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
Epoch 29/100
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
Epoch 30/100
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
Epoch 31/100
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
Epoch 32/100
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
Epoch 33/100
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
Epoch 34/100
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
Epoch 35/100
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
Epoch 36/100
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
Epoch 37/100
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
Epoch 38/100
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
Epoch 39/100
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
Epoch 40/100
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
Epoch 41/100
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
Epoch 42/100
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
Epoch 43/100
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
Epoch 44/100
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
Epoch 45/100
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
Epoch 46/100
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
Epoch 47/100
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
Epoch 48/100
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
Epoch 49/100
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
Epoch 50/100
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
Epoch 51/100
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
Epoch 52/100
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
Epoch 53/100
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
Epoch 54/100
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
Epoch 55/100
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
Epoch 56/100
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
Epoch 57/100
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
Epoch 58/100
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
Epoch 59/100
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
Epoch 60/100
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
Epoch 61/100
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
Epoch 62/100
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
Epoch 63/100
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
Epoch 64/100
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
Epoch 65/100
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
Epoch 66/100
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
Epoch 67/100
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
Epoch 68/100
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
Epoch 69/100
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
Epoch 70/100
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
Epoch 71/100
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
Epoch 72/100
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
Epoch 73/100
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
Epoch 74/100
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
Epoch 75/100
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
Epoch 76/100
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
Epoch 77/100
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
Epoch 78/100
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
Epoch 79/100
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
Epoch 80/100
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
Epoch 81/100
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
Epoch 82/100
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
Epoch 83/100
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
Epoch 84/100
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
Epoch 85/100
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
Epoch 86/100
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
Epoch 87/100
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
Epoch 88/100
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
Epoch 89/100
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
Epoch 90/100
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
Epoch 91/100
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
Epoch 92/100
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
Epoch 93/100
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
Epoch 94/100
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
Epoch 95/100
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
Epoch 96/100
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
Epoch 97/100
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
Epoch 98/100
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
Epoch 99/100
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
Epoch 100/100
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
In [37]:
rst = model.predict(np.expand_dims(test_data[feature_cols].values, axis=1))
In [44]:
rst_df = pd.DataFrame.from_records(rst).T
In [45]:
for col in rst_df.columns:
    rst_df[col] = rst_df[col].apply(lambda x:x[0][0])
In [47]:
import matplotlib.pyplot as plt
In [51]:
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score, mean_absolute_percentage_error
In [53]:
y_test = test_data[out_cols].values
y_pred = rst_df.values
In [54]:
for i in range(y_test.shape[1]):
    MSE = mean_squared_error(y_test[:, i], y_pred[:, i])
    RMSE = np.sqrt(mean_squared_error(y_test[:, i], y_pred[:, i]))
    MAE = mean_absolute_error(y_test[:, i], y_pred[:, i])
    MAPE = mean_absolute_percentage_error(y_test[:, i], y_pred[:, i])
    R_2 = r2_score(y_test[:, i], y_pred[:, i])
    print(f"MSE: {format(MSE, '.2E')}", end=',')
    print(f'RMSE: {round(RMSE, 4)}', end=',')
    print(f'MAE: {round(MAE, 4)}', end=',')
    print(f'R_2: {round(R_2, 4)}')
MSE: 7.15E-02,RMSE: 0.2674,MAE: 0.2392,R_2: -2.2352
MSE: 2.66E-02,RMSE: 0.163,MAE: 0.1342,R_2: -0.8657
MSE: 8.25E-02,RMSE: 0.2872,MAE: 0.2411,R_2: -1.278
MSE: 1.11E-01,RMSE: 0.3326,MAE: 0.2841,R_2: -2.9476
MSE: 8.26E-02,RMSE: 0.2873,MAE: 0.2465,R_2: -0.7187
MSE: 6.96E-02,RMSE: 0.2639,MAE: 0.2373,R_2: -2.166
In [ ]: