281 KiB
281 KiB
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]:
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 [ ]: