{"cells":[{"metadata":{"papermill":{"duration":0.018459,"end_time":"2020-09-21T09:16:41.239793","exception":false,"start_time":"2020-09-21T09:16:41.221334","status":"completed"},"tags":[]},"cell_type":"markdown","source":"This notebook will demonstrate feature engineering and augmentation for the GRU/LSTM model.\n\nGRU/LSTM part is mainly based on [OpenVaccine: Simple GRU Model](https://www.kaggle.com/xhlulu/openvaccine-simple-gru-model).\n"},{"metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","execution":{"iopub.execute_input":"2020-09-21T09:16:41.283808Z","iopub.status.busy":"2020-09-21T09:16:41.282968Z","iopub.status.idle":"2020-09-21T09:16:49.375397Z","shell.execute_reply":"2020-09-21T09:16:49.37468Z"},"papermill":{"duration":8.118687,"end_time":"2020-09-21T09:16:49.375551","exception":false,"start_time":"2020-09-21T09:16:41.256864","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport json\nimport tensorflow.keras.layers as L\nimport keras.backend as K\nimport tensorflow as tf\nimport plotly.express as px\nfrom sklearn.model_selection import StratifiedKFold, KFold, GroupKFold\nfrom sklearn.cluster import KMeans\nimport os\n\nos.environ['CUDA_VISIBLE_DEVICES'] = '0'\ndef allocate_gpu_memory(gpu_number=0):\n physical_devices = tf.config.experimental.list_physical_devices('GPU')\n\n if physical_devices:\n try:\n print(\"Found {} GPU(s)\".format(len(physical_devices)))\n tf.config.set_visible_devices(physical_devices[gpu_number], 'GPU')\n tf.config.experimental.set_memory_growth(physical_devices[gpu_number], True)\n print(\"#{} GPU memory is allocated\".format(gpu_number))\n except RuntimeError as e:\n print(e)\n else:\n print(\"Not enough GPU hardware devices available\")\nallocate_gpu_memory()\n\nVer='GRU_LSTM1'\naug_data = '../input/openvaccine-augmentation-data/aug_data1.csv'\ndebug = False","execution_count":12,"outputs":[{"output_type":"stream","text":"Found 1 GPU(s)\n#0 GPU memory is allocated\n","name":"stdout"}]},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:16:49.43636Z","iopub.status.busy":"2020-09-21T09:16:49.435576Z","iopub.status.idle":"2020-09-21T09:16:49.439099Z","shell.execute_reply":"2020-09-21T09:16:49.439656Z"},"papermill":{"duration":0.044,"end_time":"2020-09-21T09:16:49.439787","exception":false,"start_time":"2020-09-21T09:16:49.395787","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"def gru_layer(hidden_dim, dropout):\n return L.Bidirectional(L.GRU(hidden_dim, dropout=dropout, return_sequences=True, kernel_initializer = 'orthogonal'))\n\ndef lstm_layer(hidden_dim, dropout):\n return L.Bidirectional(L.LSTM(hidden_dim, dropout=dropout, return_sequences=True, kernel_initializer = 'orthogonal'))\n\ndef build_model(seq_len=107, pred_len=68, dropout=0.5, embed_dim=100, hidden_dim=256, type=0):\n inputs = L.Input(shape=(seq_len, 6))\n \n # split categorical and numerical features and concatenate them later.\n categorical_feat_dim = 3\n categorical_fea = inputs[:, :, :categorical_feat_dim]\n numerical_fea = inputs[:, :, 3:]\n\n embed = L.Embedding(input_dim=len(token2int), output_dim=embed_dim)(categorical_fea)\n reshaped = tf.reshape(embed, shape=(-1, embed.shape[1], embed.shape[2] * embed.shape[3]))\n reshaped = L.concatenate([reshaped, numerical_fea], axis=2)\n \n if type == 0:\n hidden = gru_layer(hidden_dim, dropout)(reshaped)\n hidden = gru_layer(hidden_dim, dropout)(hidden)\n hidden = gru_layer(hidden_dim, dropout)(hidden)\n elif type == 1:\n hidden = gru_layer(hidden_dim, dropout)(reshaped)\n hidden = gru_layer(hidden_dim, dropout)(hidden)\n hidden = lstm_layer(hidden_dim, dropout)(hidden)\n #elif type == 2:\n # hidden = gru_layer(hidden_dim, dropout)(reshaped)\n # hidden = lstm_layer(hidden_dim, dropout)(hidden)\n # hidden = gru_layer(hidden_dim, dropout)(hidden)\n elif type == 2:\n hidden = lstm_layer(hidden_dim, dropout)(reshaped)\n hidden = lstm_layer(hidden_dim, dropout)(hidden)\n hidden = lstm_layer(hidden_dim, dropout)(hidden)\n \n truncated = hidden[:, :pred_len]\n out = L.Dense(5, activation='linear')(truncated)\n model = tf.keras.Model(inputs=inputs, outputs=out)\n model.compile(tf.keras.optimizers.Adam(), loss=mcrmse)\n return model","execution_count":13,"outputs":[]},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:16:49.489942Z","iopub.status.busy":"2020-09-21T09:16:49.488971Z","iopub.status.idle":"2020-09-21T09:16:49.492271Z","shell.execute_reply":"2020-09-21T09:16:49.492951Z"},"papermill":{"duration":0.035182,"end_time":"2020-09-21T09:16:49.493068","exception":false,"start_time":"2020-09-21T09:16:49.457886","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"token2int = {x:i for i, x in enumerate('().ACGUBEHIMSX')}\npred_cols = ['reactivity', 'deg_Mg_pH10', 'deg_pH10', 'deg_Mg_50C', 'deg_50C']\n\ndef preprocess_inputs(df, cols=['sequence', 'structure', 'predicted_loop_type']):\n base_fea = np.transpose(\n np.array(\n df[cols]\n .applymap(lambda seq: [token2int[x] for x in seq])\n .values\n .tolist()\n ),\n (0, 2, 1)\n )\n bpps_sum_fea = np.array(df['bpps_sum'].to_list())[:,:,np.newaxis]\n bpps_max_fea = np.array(df['bpps_max'].to_list())[:,:,np.newaxis]\n bpps_nb_fea = np.array(df['bpps_nb'].to_list())[:,:,np.newaxis]\n return np.concatenate([base_fea,bpps_sum_fea,bpps_max_fea,bpps_nb_fea], 2)\n\ndef rmse(y_actual, y_pred):\n mse = tf.keras.losses.mean_squared_error(y_actual, y_pred)\n return K.sqrt(mse)\n\ndef mcrmse(y_actual, y_pred, num_scored=len(pred_cols)):\n score = 0\n for i in range(num_scored):\n score += rmse(y_actual[:, :, i], y_pred[:, :, i]) / num_scored\n return score","execution_count":14,"outputs":[]},{"metadata":{"papermill":{"duration":0.017475,"end_time":"2020-09-21T09:16:49.527343","exception":false,"start_time":"2020-09-21T09:16:49.509868","status":"completed"},"tags":[]},"cell_type":"markdown","source":"## Load and preprocess data"},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:16:49.566559Z","iopub.status.busy":"2020-09-21T09:16:49.565762Z","iopub.status.idle":"2020-09-21T09:16:50.291832Z","shell.execute_reply":"2020-09-21T09:16:50.290255Z"},"lines_to_next_cell":2,"papermill":{"duration":0.747182,"end_time":"2020-09-21T09:16:50.291948","exception":false,"start_time":"2020-09-21T09:16:49.544766","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"train = pd.read_json('../input/stanford-covid-vaccine/train.json', lines=True)\ntest = pd.read_json('../input/stanford-covid-vaccine/test.json', lines=True)","execution_count":15,"outputs":[]},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:16:50.34417Z","iopub.status.busy":"2020-09-21T09:16:50.334188Z","iopub.status.idle":"2020-09-21T09:17:11.178477Z","shell.execute_reply":"2020-09-21T09:17:11.179708Z"},"papermill":{"duration":20.870377,"end_time":"2020-09-21T09:17:11.17996","exception":false,"start_time":"2020-09-21T09:16:50.309583","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"# additional features\n\ndef read_bpps_sum(df):\n bpps_arr = []\n for mol_id in df.id.to_list():\n bpps_arr.append(np.load(f\"../input/stanford-covid-vaccine/bpps/{mol_id}.npy\").max(axis=1))\n return bpps_arr\n\ndef read_bpps_max(df):\n bpps_arr = []\n for mol_id in df.id.to_list():\n bpps_arr.append(np.load(f\"../input/stanford-covid-vaccine/bpps/{mol_id}.npy\").sum(axis=1))\n return bpps_arr\n\ndef read_bpps_nb(df):\n # normalized non-zero number\n # from https://www.kaggle.com/symyksr/openvaccine-deepergcn \n bpps_nb_mean = 0.077522 # mean of bpps_nb across all training data\n bpps_nb_std = 0.08914 # std of bpps_nb across all training data\n bpps_arr = []\n for mol_id in df.id.to_list():\n bpps = np.load(f\"../input/stanford-covid-vaccine/bpps/{mol_id}.npy\")\n bpps_nb = (bpps > 0).sum(axis=0) / bpps.shape[0]\n bpps_nb = (bpps_nb - bpps_nb_mean) / bpps_nb_std\n bpps_arr.append(bpps_nb)\n return bpps_arr \n\ntrain['bpps_sum'] = read_bpps_sum(train)\ntest['bpps_sum'] = read_bpps_sum(test)\ntrain['bpps_max'] = read_bpps_max(train)\ntest['bpps_max'] = read_bpps_max(test)\ntrain['bpps_nb'] = read_bpps_nb(train)\ntest['bpps_nb'] = read_bpps_nb(test)","execution_count":16,"outputs":[]},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:17:11.242395Z","iopub.status.busy":"2020-09-21T09:17:11.241357Z","iopub.status.idle":"2020-09-21T09:17:14.830513Z","shell.execute_reply":"2020-09-21T09:17:14.831555Z"},"papermill":{"duration":3.626176,"end_time":"2020-09-21T09:17:14.831719","exception":false,"start_time":"2020-09-21T09:17:11.205543","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"# clustering for GroupKFold\n# expecting more accurate CV by putting similar RNAs into the same fold.\nkmeans_model = KMeans(n_clusters=200, random_state=110).fit(preprocess_inputs(train)[:,:,0])\ntrain['cluster_id'] = kmeans_model.labels_","execution_count":17,"outputs":[]},{"metadata":{"papermill":{"duration":0.020176,"end_time":"2020-09-21T09:17:14.872725","exception":false,"start_time":"2020-09-21T09:17:14.852549","status":"completed"},"tags":[]},"cell_type":"markdown","source":"## Data augmentation for training and TTA(test)"},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:17:14.936809Z","iopub.status.busy":"2020-09-21T09:17:14.935969Z","iopub.status.idle":"2020-09-21T09:17:15.021897Z","shell.execute_reply":"2020-09-21T09:17:15.023027Z"},"papermill":{"duration":0.120191,"end_time":"2020-09-21T09:17:15.023193","exception":false,"start_time":"2020-09-21T09:17:14.903002","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"aug_data = '../input/openvaccineaugmentationdata/aug_data1.csv'\naug_df = pd.read_csv(aug_data)\ndisplay(aug_df.head())","execution_count":18,"outputs":[{"output_type":"display_data","data":{"text/plain":" id sequence \\\n0 id_fff546103 GGAAAGCUAGGACGUGGGAGCGUAGCUCUCCACACGGGUACGCCAA... \n1 id_18ff9d670 GGAAAGAGCUCGUGAGAAGAAUCUAGUACAUGCAUACGCUACAUCU... \n2 id_177cd630b GGAAAGAAGUAGCACGGUCCUAAGGUUACUGUAGCUAUGUCCAGCG... \n3 id_17a9ad5b7 GGAAAACACUGCAAAAGUCAACGAAGAAGUUGACUAAGAAGUGAUC... \n4 id_17ab91518 GGAAAACGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCG... \n\n structure log_gamma score \\\n0 .....((((((((((((((((...)))).)))).((((((((((..... 2 0.981885 \n1 .....(((.((.......((..((((.....((....)).....))... 0 0.887485 \n2 (....((.((((((((((((...))..))))).))))).))(((.(... 2 0.923722 \n3 ......((((((...(((((((......))))))).....((((((... 2 0.977602 \n4 ......(((((((((((((((((((((((((((((....)))))))... 2 0.982851 \n\n cnt predicted_loop_type \n0 3 EEEEESSSSSSSSSSSSSSSSHHHSSSSBSSSSMSSSSSSSSSSHH... \n1 5 EEEEESSSISSIIIIIIISSIISSSSIIIIISSHHHHSSIIIIISS... \n2 3 SMMMMSSISSSSSSSSSSSSHHHSSBBSSSSSBSSSSSISSSSSIS... \n3 3 EEEEEESSSSSSMMMSSSSSSSHHHHHHSSSSSSSMMMMMSSSSSS... \n4 3 EEEEEESSSSSSSSSSSSSSSSSSSSSSSSSSSSSHHHHSSSSSSS... ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
idsequencestructurelog_gammascorecntpredicted_loop_type
0id_fff546103GGAAAGCUAGGACGUGGGAGCGUAGCUCUCCACACGGGUACGCCAA........((((((((((((((((...)))).)))).((((((((((.....20.9818853EEEEESSSSSSSSSSSSSSSSHHHSSSSBSSSSMSSSSSSSSSSHH...
1id_18ff9d670GGAAAGAGCUCGUGAGAAGAAUCUAGUACAUGCAUACGCUACAUCU........(((.((.......((..((((.....((....)).....))...00.8874855EEEEESSSISSIIIIIIISSIISSSSIIIIISSHHHHSSIIIIISS...
2id_177cd630bGGAAAGAAGUAGCACGGUCCUAAGGUUACUGUAGCUAUGUCCAGCG...(....((.((((((((((((...))..))))).))))).))(((.(...20.9237223SMMMMSSISSSSSSSSSSSSHHHSSBBSSSSSBSSSSSISSSSSIS...
3id_17a9ad5b7GGAAAACACUGCAAAAGUCAACGAAGAAGUUGACUAAGAAGUGAUC.........((((((...(((((((......))))))).....((((((...20.9776023EEEEEESSSSSSMMMSSSSSSSHHHHHHSSSSSSSMMMMMSSSSSS...
4id_17ab91518GGAAAACGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCG.........(((((((((((((((((((((((((((((....)))))))...20.9828513EEEEEESSSSSSSSSSSSSSSSSSSSSSSSSSSSSHHHHSSSSSSS...
\n
"},"metadata":{}}]},{"metadata":{"papermill":{"duration":0.021646,"end_time":"2020-09-21T09:17:15.064557","exception":false,"start_time":"2020-09-21T09:17:15.042911","status":"completed"},"tags":[]},"cell_type":"markdown","source":"This file was created using ARNIE, ViennaRNA and bpRNA in the following way.\n\nGet candidate structures with different gamma values. \nSee last cell of [How to Use ARNIE on Kaggle Notebook](https://www.kaggle.com/its7171/how-to-use-arnie-on-kaggle-notebook).\n\nRemove the same as the original structure.\n\nGet a structure with the largest score for each sequence.\n\nGet the predicted_loop_type from the sequence and structure.\nSee [How to Generate predicted_loop_type](https://www.kaggle.com/its7171/how-to-generate-predicted-loop-type)."},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:17:15.118744Z","iopub.status.busy":"2020-09-21T09:17:15.117995Z","iopub.status.idle":"2020-09-21T09:17:15.189668Z","shell.execute_reply":"2020-09-21T09:17:15.189122Z"},"papermill":{"duration":0.098946,"end_time":"2020-09-21T09:17:15.189781","exception":false,"start_time":"2020-09-21T09:17:15.090835","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"def aug_data(df):\n target_df = df.copy()\n new_df = aug_df[aug_df['id'].isin(target_df['id'])]\n \n del target_df['structure']\n del target_df['predicted_loop_type']\n new_df = new_df.merge(target_df, on=['id','sequence'], how='left')\n\n df['cnt'] = df['id'].map(new_df[['id','cnt']].set_index('id').to_dict()['cnt'])\n df['log_gamma'] = 100\n df['score'] = 1.0\n df = df.append(new_df[df.columns])\n return df\ntrain = aug_data(train)\ntest = aug_data(test)","execution_count":19,"outputs":[]},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:17:15.230204Z","iopub.status.busy":"2020-09-21T09:17:15.229625Z","iopub.status.idle":"2020-09-21T09:17:15.233748Z","shell.execute_reply":"2020-09-21T09:17:15.23311Z"},"papermill":{"duration":0.025949,"end_time":"2020-09-21T09:17:15.233875","exception":false,"start_time":"2020-09-21T09:17:15.207926","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"if debug:\n train = train[:200]\n test = test[:200]","execution_count":20,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"papermill":{"duration":0.017944,"end_time":"2020-09-21T09:17:15.270492","exception":false,"start_time":"2020-09-21T09:17:15.252548","status":"completed"},"tags":[]},"cell_type":"markdown","source":"## Build and train model"},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:17:15.31024Z","iopub.status.busy":"2020-09-21T09:17:15.309666Z","iopub.status.idle":"2020-09-21T09:17:18.4114Z","shell.execute_reply":"2020-09-21T09:17:18.410696Z"},"papermill":{"duration":3.123525,"end_time":"2020-09-21T09:17:18.411597","exception":false,"start_time":"2020-09-21T09:17:15.288072","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"model = build_model()\nmodel.summary()","execution_count":21,"outputs":[{"output_type":"stream","text":"Model: \"functional_3\"\n__________________________________________________________________________________________________\nLayer (type) Output Shape Param # Connected to \n==================================================================================================\ninput_2 (InputLayer) [(None, 107, 6)] 0 \n__________________________________________________________________________________________________\ntf_op_layer_strided_slice_3 (Te [(None, 107, 3)] 0 input_2[0][0] \n__________________________________________________________________________________________________\nembedding_1 (Embedding) (None, 107, 3, 100) 1400 tf_op_layer_strided_slice_3[0][0]\n__________________________________________________________________________________________________\ntf_op_layer_Reshape_1 (TensorFl [(None, 107, 300)] 0 embedding_1[0][0] \n__________________________________________________________________________________________________\ntf_op_layer_strided_slice_4 (Te [(None, 107, 3)] 0 input_2[0][0] \n__________________________________________________________________________________________________\nconcatenate_1 (Concatenate) (None, 107, 303) 0 tf_op_layer_Reshape_1[0][0] \n tf_op_layer_strided_slice_4[0][0]\n__________________________________________________________________________________________________\nbidirectional_3 (Bidirectional) (None, 107, 512) 861696 concatenate_1[0][0] \n__________________________________________________________________________________________________\nbidirectional_4 (Bidirectional) (None, 107, 512) 1182720 bidirectional_3[0][0] \n__________________________________________________________________________________________________\nbidirectional_5 (Bidirectional) (None, 107, 512) 1182720 bidirectional_4[0][0] \n__________________________________________________________________________________________________\ntf_op_layer_strided_slice_5 (Te [(None, 68, 512)] 0 bidirectional_5[0][0] \n__________________________________________________________________________________________________\ndense_1 (Dense) (None, 68, 5) 2565 tf_op_layer_strided_slice_5[0][0]\n==================================================================================================\nTotal params: 3,231,101\nTrainable params: 3,231,101\nNon-trainable params: 0\n__________________________________________________________________________________________________\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"FOLD_N=5\ngkf = GroupKFold(n_splits=FOLD_N)\n\ntype=1\nfor cv, (tr_idx, vl_idx) in enumerate(gkf.split(train, train['reactivity'], train['cluster_id'])):\n trn = train.iloc[tr_idx]\n x_trn = preprocess_inputs(trn)\n y_trn = np.array(trn[pred_cols].values.tolist()).transpose((0, 2, 1))\n w_trn = np.log(trn.signal_to_noise+1.1)/2\n\n val = train.iloc[vl_idx]\n x_val_all = preprocess_inputs(val)\n val = val[val.SN_filter == 1]\n x_val = preprocess_inputs(val)\n y_val = np.array(val[pred_cols].values.tolist()).transpose((0, 2, 1))\n\n model = build_model(type=1)\n model_short = build_model(seq_len=107, pred_len=107,type=type)\n model_long = build_model(seq_len=130, pred_len=130,type=type)\n\n history = model.fit(\n x_trn, y_trn,\n validation_data = (x_val, y_val),\n batch_size=64,\n epochs=100,\n sample_weight=w_trn,\n callbacks=[\n tf.keras.callbacks.ReduceLROnPlateau(),\n tf.keras.callbacks.ModelCheckpoint(f'model{Ver}_cv{cv}.h5')\n ]\n )\n print(f\"Min training loss={min(history.history['loss'])}, min validation loss={min(history.history['val_loss'])}\")\n fig = px.line(history.history, y=['loss', 'val_loss'], labels={'index': 'epoch', 'value': 'Mean Cloumnwise Root Mean Squared Error'}, \n title='Training History')\n fig.show()\n","execution_count":24,"outputs":[{"output_type":"stream","text":"Epoch 1/100\n60/60 [==============================] - 7s 122ms/step - loss: 0.3317 - val_loss: 0.3577\nEpoch 2/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.2780 - val_loss: 0.3087\nEpoch 3/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.2575 - val_loss: 0.2892\nEpoch 4/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.2428 - val_loss: 0.2712\nEpoch 5/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.2293 - val_loss: 0.2608\nEpoch 6/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2194 - val_loss: 0.2506\nEpoch 7/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.2109 - val_loss: 0.2444\nEpoch 8/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.2028 - val_loss: 0.2396\nEpoch 9/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1973 - val_loss: 0.2335\nEpoch 10/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1923 - val_loss: 0.2323\nEpoch 11/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1886 - val_loss: 0.2305\nEpoch 12/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1838 - val_loss: 0.2288\nEpoch 13/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1799 - val_loss: 0.2324\nEpoch 14/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1765 - val_loss: 0.2281\nEpoch 15/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1727 - val_loss: 0.2274\nEpoch 16/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1698 - val_loss: 0.2262\nEpoch 17/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1668 - val_loss: 0.2253\nEpoch 18/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1635 - val_loss: 0.2291\nEpoch 19/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1615 - val_loss: 0.2265\nEpoch 20/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1588 - val_loss: 0.2279\nEpoch 21/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1564 - val_loss: 0.2281\nEpoch 22/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1542 - val_loss: 0.2269\nEpoch 23/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1522 - val_loss: 0.2273\nEpoch 24/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1505 - val_loss: 0.2276\nEpoch 25/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1488 - val_loss: 0.2277\nEpoch 26/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1473 - val_loss: 0.2278\nEpoch 27/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1456 - val_loss: 0.2281\nEpoch 28/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1416 - val_loss: 0.2261\nEpoch 29/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1403 - val_loss: 0.2261\nEpoch 30/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1396 - val_loss: 0.2263\nEpoch 31/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1392 - val_loss: 0.2260\nEpoch 32/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1387 - val_loss: 0.2260\nEpoch 33/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1386 - val_loss: 0.2266\nEpoch 34/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1381 - val_loss: 0.2263\nEpoch 35/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1380 - val_loss: 0.2264\nEpoch 36/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1378 - val_loss: 0.2265\nEpoch 37/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1375 - val_loss: 0.2265\nEpoch 38/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1372 - val_loss: 0.2265\nEpoch 39/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1370 - val_loss: 0.2265\nEpoch 40/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1369 - val_loss: 0.2265\nEpoch 41/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1369 - val_loss: 0.2264\nEpoch 42/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1368 - val_loss: 0.2265\nEpoch 43/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1369 - val_loss: 0.2264\nEpoch 44/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1367 - val_loss: 0.2264\nEpoch 45/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1366 - val_loss: 0.2264\nEpoch 46/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1368 - val_loss: 0.2265\nEpoch 47/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1367 - val_loss: 0.2264\nEpoch 48/100\n60/60 [==============================] - 6s 98ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 49/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 50/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1364 - val_loss: 0.2265\nEpoch 51/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 52/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 53/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1367 - val_loss: 0.2265\nEpoch 54/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 55/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 56/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 57/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 58/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 59/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 60/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1368 - val_loss: 0.2265\nEpoch 61/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1367 - val_loss: 0.2265\nEpoch 62/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 63/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 64/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 65/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 66/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 67/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 68/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 69/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 70/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1367 - val_loss: 0.2265\nEpoch 71/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 72/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1367 - val_loss: 0.2265\nEpoch 73/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 74/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 75/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 76/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 77/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1367 - val_loss: 0.2265\nEpoch 78/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 79/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 80/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 81/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 82/100\n","name":"stdout"},{"output_type":"stream","text":"60/60 [==============================] - 6s 94ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 83/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 84/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 85/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 86/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 87/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1367 - val_loss: 0.2265\nEpoch 88/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1367 - val_loss: 0.2265\nEpoch 89/100\n60/60 [==============================] - 6s 97ms/step - loss: 0.1367 - val_loss: 0.2265\nEpoch 90/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 91/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1364 - val_loss: 0.2265\nEpoch 92/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 93/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1368 - val_loss: 0.2265\nEpoch 94/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 95/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1365 - val_loss: 0.2265\nEpoch 96/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1364 - val_loss: 0.2265\nEpoch 97/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 98/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1366 - val_loss: 0.2265\nEpoch 99/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1367 - val_loss: 0.2265\nEpoch 100/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1365 - val_loss: 0.2265\nMin training loss=0.1363956332206726, min validation loss=0.22532330453395844\n","name":"stdout"},{"output_type":"display_data","data":{"text/html":" \n "},"metadata":{}},{"output_type":"display_data","data":{"text/html":"
\n \n \n
\n \n
"},"metadata":{}},{"output_type":"stream","text":"Epoch 1/100\n60/60 [==============================] - 8s 131ms/step - loss: 0.3368 - val_loss: 0.3471\nEpoch 2/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.2785 - val_loss: 0.3050\nEpoch 3/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2566 - val_loss: 0.2910\nEpoch 4/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2419 - val_loss: 0.2751\nEpoch 5/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2304 - val_loss: 0.2648\nEpoch 6/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.2176 - val_loss: 0.2532\nEpoch 7/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.2085 - val_loss: 0.2511\nEpoch 8/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2006 - val_loss: 0.2509\nEpoch 9/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1944 - val_loss: 0.2435\nEpoch 10/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1899 - val_loss: 0.2376\nEpoch 11/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1852 - val_loss: 0.2379\nEpoch 12/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1815 - val_loss: 0.2376\nEpoch 13/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1772 - val_loss: 0.2362\nEpoch 14/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1738 - val_loss: 0.2366\nEpoch 15/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1701 - val_loss: 0.2351\nEpoch 16/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1675 - val_loss: 0.2333\nEpoch 17/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1643 - val_loss: 0.2353\nEpoch 18/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1618 - val_loss: 0.2332\nEpoch 19/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1594 - val_loss: 0.2348\nEpoch 20/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1574 - val_loss: 0.2334\nEpoch 21/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1544 - val_loss: 0.2338\nEpoch 22/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1525 - val_loss: 0.2317\nEpoch 23/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1506 - val_loss: 0.2323\nEpoch 24/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1491 - val_loss: 0.2316\nEpoch 25/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1469 - val_loss: 0.2299\nEpoch 26/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1453 - val_loss: 0.2324\nEpoch 27/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1441 - val_loss: 0.2329\nEpoch 28/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1424 - val_loss: 0.2314\nEpoch 29/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1410 - val_loss: 0.2311\nEpoch 30/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1398 - val_loss: 0.2286\nEpoch 31/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1387 - val_loss: 0.2296\nEpoch 32/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1372 - val_loss: 0.2299\nEpoch 33/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1361 - val_loss: 0.2286\nEpoch 34/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1349 - val_loss: 0.2298\nEpoch 35/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1340 - val_loss: 0.2300\nEpoch 36/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1330 - val_loss: 0.2306\nEpoch 37/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1321 - val_loss: 0.2297\nEpoch 38/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1309 - val_loss: 0.2302\nEpoch 39/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1301 - val_loss: 0.2293\nEpoch 40/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1293 - val_loss: 0.2294\nEpoch 41/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1266 - val_loss: 0.2286\nEpoch 42/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1252 - val_loss: 0.2288\nEpoch 43/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1246 - val_loss: 0.2284\nEpoch 44/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1240 - val_loss: 0.2285\nEpoch 45/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1239 - val_loss: 0.2284\nEpoch 46/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1234 - val_loss: 0.2287\nEpoch 47/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1233 - val_loss: 0.2287\nEpoch 48/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1231 - val_loss: 0.2286\nEpoch 49/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1229 - val_loss: 0.2283\nEpoch 50/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1228 - val_loss: 0.2287\nEpoch 51/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1225 - val_loss: 0.2286\nEpoch 52/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1223 - val_loss: 0.2287\nEpoch 53/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1222 - val_loss: 0.2286\nEpoch 54/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1220 - val_loss: 0.2285\nEpoch 55/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1218 - val_loss: 0.2285\nEpoch 56/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1219 - val_loss: 0.2286\nEpoch 57/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1218 - val_loss: 0.2286\nEpoch 58/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1217 - val_loss: 0.2285\nEpoch 59/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1218 - val_loss: 0.2286\nEpoch 60/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1218 - val_loss: 0.2285\nEpoch 61/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1217 - val_loss: 0.2285\nEpoch 62/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1216 - val_loss: 0.2286\nEpoch 63/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1216 - val_loss: 0.2286\nEpoch 64/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1217 - val_loss: 0.2286\nEpoch 65/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1215 - val_loss: 0.2286\nEpoch 66/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 67/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1215 - val_loss: 0.2285\nEpoch 68/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 69/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 70/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1217 - val_loss: 0.2285\nEpoch 71/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1215 - val_loss: 0.2285\nEpoch 72/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1215 - val_loss: 0.2285\nEpoch 73/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 74/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 75/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1215 - val_loss: 0.2285\nEpoch 76/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1217 - val_loss: 0.2285\nEpoch 77/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1217 - val_loss: 0.2285\nEpoch 78/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1215 - val_loss: 0.2285\nEpoch 79/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 80/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1215 - val_loss: 0.2285\nEpoch 81/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 82/100\n","name":"stdout"},{"output_type":"stream","text":"60/60 [==============================] - 6s 93ms/step - loss: 0.1214 - val_loss: 0.2285\nEpoch 83/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 84/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1217 - val_loss: 0.2285\nEpoch 85/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1215 - val_loss: 0.2285\nEpoch 86/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 87/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1215 - val_loss: 0.2285\nEpoch 88/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 89/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 90/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1214 - val_loss: 0.2285\nEpoch 91/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 92/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 93/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 94/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 95/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 96/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 97/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1217 - val_loss: 0.2285\nEpoch 98/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 99/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1216 - val_loss: 0.2285\nEpoch 100/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1216 - val_loss: 0.2285\nMin training loss=0.121425561606884, min validation loss=0.22831787168979645\n","name":"stdout"},{"output_type":"display_data","data":{"text/html":"
\n \n \n
\n \n
"},"metadata":{}},{"output_type":"stream","text":"Epoch 1/100\n60/60 [==============================] - 7s 120ms/step - loss: 0.3326 - val_loss: 0.3451\nEpoch 2/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.2799 - val_loss: 0.2991\nEpoch 3/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.2557 - val_loss: 0.2922\nEpoch 4/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.2409 - val_loss: 0.2698\nEpoch 5/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2261 - val_loss: 0.2661\nEpoch 6/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2143 - val_loss: 0.2557\nEpoch 7/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2055 - val_loss: 0.2518\nEpoch 8/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1987 - val_loss: 0.2449\nEpoch 9/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1938 - val_loss: 0.2475\nEpoch 10/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1885 - val_loss: 0.2483\nEpoch 11/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1840 - val_loss: 0.2429\nEpoch 12/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1799 - val_loss: 0.2433\nEpoch 13/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1761 - val_loss: 0.2462\nEpoch 14/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1732 - val_loss: 0.2416\nEpoch 15/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1693 - val_loss: 0.2414\nEpoch 16/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1667 - val_loss: 0.2413\nEpoch 17/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1633 - val_loss: 0.2437\nEpoch 18/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1607 - val_loss: 0.2430\nEpoch 19/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1588 - val_loss: 0.2428\nEpoch 20/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1563 - val_loss: 0.2440\nEpoch 21/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1538 - val_loss: 0.2459\nEpoch 22/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1522 - val_loss: 0.2372\nEpoch 23/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1500 - val_loss: 0.2415\nEpoch 24/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1483 - val_loss: 0.2414\nEpoch 25/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1466 - val_loss: 0.2435\nEpoch 26/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1453 - val_loss: 0.2410\nEpoch 27/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1438 - val_loss: 0.2440\nEpoch 28/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1420 - val_loss: 0.2467\nEpoch 29/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1407 - val_loss: 0.2457\nEpoch 30/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1392 - val_loss: 0.2431\nEpoch 31/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1386 - val_loss: 0.2438\nEpoch 32/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1370 - val_loss: 0.2435\nEpoch 33/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1338 - val_loss: 0.2408\nEpoch 34/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1322 - val_loss: 0.2406\nEpoch 35/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1319 - val_loss: 0.2420\nEpoch 36/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1314 - val_loss: 0.2412\nEpoch 37/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1310 - val_loss: 0.2415\nEpoch 38/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1306 - val_loss: 0.2409\nEpoch 39/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1306 - val_loss: 0.2414\nEpoch 40/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1304 - val_loss: 0.2417\nEpoch 41/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1301 - val_loss: 0.2415\nEpoch 42/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1298 - val_loss: 0.2415\nEpoch 43/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1295 - val_loss: 0.2415\nEpoch 44/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1294 - val_loss: 0.2416\nEpoch 45/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1293 - val_loss: 0.2416\nEpoch 46/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1294 - val_loss: 0.2417\nEpoch 47/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1292 - val_loss: 0.2416\nEpoch 48/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1291 - val_loss: 0.2415\nEpoch 49/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1293 - val_loss: 0.2416\nEpoch 50/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1293 - val_loss: 0.2417\nEpoch 51/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1293 - val_loss: 0.2417\nEpoch 52/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 53/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 54/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 55/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 56/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1292 - val_loss: 0.2417\nEpoch 57/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1292 - val_loss: 0.2417\nEpoch 58/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 59/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 60/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 61/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 62/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 63/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 64/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 65/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1289 - val_loss: 0.2417\nEpoch 66/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 67/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 68/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1292 - val_loss: 0.2417\nEpoch 69/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 70/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1292 - val_loss: 0.2417\nEpoch 71/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 72/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 73/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 74/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 75/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 76/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 77/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1289 - val_loss: 0.2417\nEpoch 78/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 79/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 80/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1292 - val_loss: 0.2417\nEpoch 81/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 82/100\n","name":"stdout"},{"output_type":"stream","text":"60/60 [==============================] - 6s 93ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 83/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 84/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1289 - val_loss: 0.2417\nEpoch 85/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 86/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 87/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1289 - val_loss: 0.2417\nEpoch 88/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1292 - val_loss: 0.2417\nEpoch 89/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 90/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1292 - val_loss: 0.2417\nEpoch 91/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1292 - val_loss: 0.2417\nEpoch 92/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1292 - val_loss: 0.2417\nEpoch 93/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 94/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 95/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 96/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1290 - val_loss: 0.2417\nEpoch 97/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1291 - val_loss: 0.2417\nEpoch 98/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1289 - val_loss: 0.2417\nEpoch 99/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1292 - val_loss: 0.2417\nEpoch 100/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1291 - val_loss: 0.2417\nMin training loss=0.12889528274536133, min validation loss=0.23721115291118622\n","name":"stdout"},{"output_type":"display_data","data":{"text/html":"
\n \n \n
\n \n
"},"metadata":{}},{"output_type":"stream","text":"Epoch 1/100\n60/60 [==============================] - 7s 122ms/step - loss: 0.3362 - val_loss: 0.3550\nEpoch 2/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2784 - val_loss: 0.3098\nEpoch 3/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2564 - val_loss: 0.2862\nEpoch 4/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.2419 - val_loss: 0.2697\nEpoch 5/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.2290 - val_loss: 0.2588\nEpoch 6/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2162 - val_loss: 0.2509\nEpoch 7/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2061 - val_loss: 0.2424\nEpoch 8/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1995 - val_loss: 0.2464\nEpoch 9/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1944 - val_loss: 0.2381\nEpoch 10/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1886 - val_loss: 0.2383\nEpoch 11/100\n60/60 [==============================] - 6s 98ms/step - loss: 0.1848 - val_loss: 0.2343\nEpoch 12/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1808 - val_loss: 0.2339\nEpoch 13/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1768 - val_loss: 0.2333\nEpoch 14/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1732 - val_loss: 0.2324\nEpoch 15/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1700 - val_loss: 0.2312\nEpoch 16/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1671 - val_loss: 0.2323\nEpoch 17/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1636 - val_loss: 0.2313\nEpoch 18/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1612 - val_loss: 0.2313\nEpoch 19/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1590 - val_loss: 0.2301\nEpoch 20/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1562 - val_loss: 0.2298\nEpoch 21/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1537 - val_loss: 0.2334\nEpoch 22/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1524 - val_loss: 0.2301\nEpoch 23/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1500 - val_loss: 0.2294\nEpoch 24/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1478 - val_loss: 0.2320\nEpoch 25/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1466 - val_loss: 0.2328\nEpoch 26/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1447 - val_loss: 0.2323\nEpoch 27/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1433 - val_loss: 0.2311\nEpoch 28/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1416 - val_loss: 0.2319\nEpoch 29/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1403 - val_loss: 0.2323\nEpoch 30/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1389 - val_loss: 0.2310\nEpoch 31/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1374 - val_loss: 0.2317\nEpoch 32/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1363 - val_loss: 0.2326\nEpoch 33/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1354 - val_loss: 0.2302\nEpoch 34/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1319 - val_loss: 0.2301\nEpoch 35/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1305 - val_loss: 0.2300\nEpoch 36/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1301 - val_loss: 0.2298\nEpoch 37/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1296 - val_loss: 0.2303\nEpoch 38/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1295 - val_loss: 0.2300\nEpoch 39/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1292 - val_loss: 0.2302\nEpoch 40/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1288 - val_loss: 0.2307\nEpoch 41/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1286 - val_loss: 0.2307\nEpoch 42/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1284 - val_loss: 0.2303\nEpoch 43/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1281 - val_loss: 0.2305\nEpoch 44/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1279 - val_loss: 0.2304\nEpoch 45/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1279 - val_loss: 0.2304\nEpoch 46/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1279 - val_loss: 0.2304\nEpoch 47/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1276 - val_loss: 0.2305\nEpoch 48/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1277 - val_loss: 0.2304\nEpoch 49/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1275 - val_loss: 0.2303\nEpoch 50/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1275 - val_loss: 0.2303\nEpoch 51/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1275 - val_loss: 0.2304\nEpoch 52/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 53/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1275 - val_loss: 0.2306\nEpoch 54/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 55/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1276 - val_loss: 0.2305\nEpoch 56/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 57/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 58/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1276 - val_loss: 0.2305\nEpoch 59/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1276 - val_loss: 0.2305\nEpoch 60/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1273 - val_loss: 0.2305\nEpoch 61/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 62/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 63/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 64/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 65/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1276 - val_loss: 0.2305\nEpoch 66/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 67/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 68/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 69/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 70/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 71/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 72/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 73/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 74/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1273 - val_loss: 0.2305\nEpoch 75/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 76/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 77/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 78/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 79/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 80/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 81/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 82/100\n","name":"stdout"},{"output_type":"stream","text":"60/60 [==============================] - 6s 92ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 83/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 84/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 85/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 86/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 87/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 88/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 89/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 90/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 91/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 92/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 93/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 94/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 95/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1275 - val_loss: 0.2305\nEpoch 96/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 97/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1276 - val_loss: 0.2305\nEpoch 98/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 99/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1274 - val_loss: 0.2305\nEpoch 100/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1274 - val_loss: 0.2305\nMin training loss=0.12728066742420197, min validation loss=0.22939445078372955\n","name":"stdout"},{"output_type":"display_data","data":{"text/html":"
\n \n \n
\n \n
"},"metadata":{}},{"output_type":"stream","text":"Epoch 1/100\n60/60 [==============================] - 7s 122ms/step - loss: 0.3354 - val_loss: 0.3419\nEpoch 2/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.2796 - val_loss: 0.2960\nEpoch 3/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2583 - val_loss: 0.2751\nEpoch 4/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2419 - val_loss: 0.2617\nEpoch 5/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2270 - val_loss: 0.2490\nEpoch 6/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2141 - val_loss: 0.2430\nEpoch 7/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2044 - val_loss: 0.2363\nEpoch 8/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1975 - val_loss: 0.2309\nEpoch 9/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1919 - val_loss: 0.2308\nEpoch 10/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1872 - val_loss: 0.2314\nEpoch 11/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1829 - val_loss: 0.2255\nEpoch 12/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1791 - val_loss: 0.2259\nEpoch 13/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1748 - val_loss: 0.2276\nEpoch 14/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1719 - val_loss: 0.2256\nEpoch 15/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1687 - val_loss: 0.2270\nEpoch 16/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1654 - val_loss: 0.2278\nEpoch 17/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1630 - val_loss: 0.2264\nEpoch 18/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1600 - val_loss: 0.2263\nEpoch 19/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1576 - val_loss: 0.2232\nEpoch 20/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1552 - val_loss: 0.2239\nEpoch 21/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1529 - val_loss: 0.2243\nEpoch 22/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1509 - val_loss: 0.2251\nEpoch 23/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1492 - val_loss: 0.2243\nEpoch 24/100\n60/60 [==============================] - 5s 92ms/step - loss: 0.1477 - val_loss: 0.2231\nEpoch 25/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1458 - val_loss: 0.2236\nEpoch 26/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1444 - val_loss: 0.2231\nEpoch 27/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1428 - val_loss: 0.2261\nEpoch 28/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1413 - val_loss: 0.2233\nEpoch 29/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1401 - val_loss: 0.2242\nEpoch 30/100\n60/60 [==============================] - 5s 92ms/step - loss: 0.1364 - val_loss: 0.2221\nEpoch 31/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1349 - val_loss: 0.2216\nEpoch 32/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1343 - val_loss: 0.2218\nEpoch 33/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1340 - val_loss: 0.2216\nEpoch 34/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1337 - val_loss: 0.2223\nEpoch 35/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1333 - val_loss: 0.2219\nEpoch 36/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1331 - val_loss: 0.2223\nEpoch 37/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1328 - val_loss: 0.2222\nEpoch 38/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1326 - val_loss: 0.2219\nEpoch 39/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1325 - val_loss: 0.2218\nEpoch 40/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1321 - val_loss: 0.2221\nEpoch 41/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1320 - val_loss: 0.2223\nEpoch 42/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1318 - val_loss: 0.2220\nEpoch 43/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1314 - val_loss: 0.2219\nEpoch 44/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1315 - val_loss: 0.2220\nEpoch 45/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1315 - val_loss: 0.2220\nEpoch 46/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1314 - val_loss: 0.2221\nEpoch 47/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 48/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 49/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1314 - val_loss: 0.2220\nEpoch 50/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 51/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 52/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1312 - val_loss: 0.2219\nEpoch 53/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1313 - val_loss: 0.2219\nEpoch 54/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1313 - val_loss: 0.2219\nEpoch 55/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1314 - val_loss: 0.2219\nEpoch 56/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 57/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 58/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1311 - val_loss: 0.2220\nEpoch 59/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 60/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 61/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 62/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1311 - val_loss: 0.2220\nEpoch 63/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 64/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 65/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 66/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1314 - val_loss: 0.2220\nEpoch 67/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1311 - val_loss: 0.2220\nEpoch 68/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1314 - val_loss: 0.2220\nEpoch 69/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 70/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1311 - val_loss: 0.2220\nEpoch 71/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 72/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 73/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1310 - val_loss: 0.2220\nEpoch 74/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 75/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 76/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 77/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1311 - val_loss: 0.2220\nEpoch 78/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 79/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 80/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 81/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1311 - val_loss: 0.2220\nEpoch 82/100\n","name":"stdout"},{"output_type":"stream","text":"60/60 [==============================] - 5s 91ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 83/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 84/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 85/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 86/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 87/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 88/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 89/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 90/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 91/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 92/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 93/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 94/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1311 - val_loss: 0.2220\nEpoch 95/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 96/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1311 - val_loss: 0.2220\nEpoch 97/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1313 - val_loss: 0.2220\nEpoch 98/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1312 - val_loss: 0.2220\nEpoch 99/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1311 - val_loss: 0.2220\nEpoch 100/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1314 - val_loss: 0.2220\nMin training loss=0.13104817271232605, min validation loss=0.22161006927490234\n","name":"stdout"},{"output_type":"display_data","data":{"text/html":"
\n \n \n
\n \n
"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"FOLD_N=5\ngkf = GroupKFold(n_splits=FOLD_N)\n\ntype=0\nfor cv, (tr_idx, vl_idx) in enumerate(gkf.split(train, train['reactivity'], train['cluster_id'])):\n trn = train.iloc[tr_idx]\n x_trn = preprocess_inputs(trn)\n y_trn = np.array(trn[pred_cols].values.tolist()).transpose((0, 2, 1))\n w_trn = np.log(trn.signal_to_noise+1.1)/2\n\n val = train.iloc[vl_idx]\n x_val_all = preprocess_inputs(val)\n val = val[val.SN_filter == 1]\n x_val = preprocess_inputs(val)\n y_val = np.array(val[pred_cols].values.tolist()).transpose((0, 2, 1))\n\n model = build_model(type=1)\n model_short = build_model(seq_len=107, pred_len=107,type=type)\n model_long = build_model(seq_len=130, pred_len=130,type=type)\n\n history = model.fit(\n x_trn, y_trn,\n validation_data = (x_val, y_val),\n batch_size=64,\n epochs=100,\n sample_weight=w_trn,\n callbacks=[\n tf.keras.callbacks.ReduceLROnPlateau(),\n tf.keras.callbacks.ModelCheckpoint(f'model{Ver}_cv{cv}.h5')\n ]\n )\n print(f\"Min training loss={min(history.history['loss'])}, min validation loss={min(history.history['val_loss'])}\")\n fig = px.line(history.history, y=['loss', 'val_loss'], labels={'index': 'epoch', 'value': 'Mean Cloumnwise Root Mean Squared Error'}, \n title='Training History')\n fig.show()\n","execution_count":25,"outputs":[{"output_type":"stream","text":"Epoch 1/100\n60/60 [==============================] - 7s 122ms/step - loss: 0.3426 - val_loss: 0.3616\nEpoch 2/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2839 - val_loss: 0.3131\nEpoch 3/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2593 - val_loss: 0.2995\nEpoch 4/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2465 - val_loss: 0.2750\nEpoch 5/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2322 - val_loss: 0.2608\nEpoch 6/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2218 - val_loss: 0.2531\nEpoch 7/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2134 - val_loss: 0.2443\nEpoch 8/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2048 - val_loss: 0.2388\nEpoch 9/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1994 - val_loss: 0.2366\nEpoch 10/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1950 - val_loss: 0.2336\nEpoch 11/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1900 - val_loss: 0.2330\nEpoch 12/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1861 - val_loss: 0.2324\nEpoch 13/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1815 - val_loss: 0.2326\nEpoch 14/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1780 - val_loss: 0.2327\nEpoch 15/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1742 - val_loss: 0.2297\nEpoch 16/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1706 - val_loss: 0.2296\nEpoch 17/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1679 - val_loss: 0.2296\nEpoch 18/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1652 - val_loss: 0.2310\nEpoch 19/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1623 - val_loss: 0.2291\nEpoch 20/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1595 - val_loss: 0.2297\nEpoch 21/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1576 - val_loss: 0.2315\nEpoch 22/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1556 - val_loss: 0.2305\nEpoch 23/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1530 - val_loss: 0.2285\nEpoch 24/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1515 - val_loss: 0.2295\nEpoch 25/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1490 - val_loss: 0.2311\nEpoch 26/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1477 - val_loss: 0.2306\nEpoch 27/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1460 - val_loss: 0.2306\nEpoch 28/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1444 - val_loss: 0.2305\nEpoch 29/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1426 - val_loss: 0.2293\nEpoch 30/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1416 - val_loss: 0.2306\nEpoch 31/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1402 - val_loss: 0.2297\nEpoch 32/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1389 - val_loss: 0.2314\nEpoch 33/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1377 - val_loss: 0.2343\nEpoch 34/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1343 - val_loss: 0.2312\nEpoch 35/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1328 - val_loss: 0.2304\nEpoch 36/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1321 - val_loss: 0.2303\nEpoch 37/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1319 - val_loss: 0.2304\nEpoch 38/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1315 - val_loss: 0.2306\nEpoch 39/100\n60/60 [==============================] - 6s 98ms/step - loss: 0.1312 - val_loss: 0.2309\nEpoch 40/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1310 - val_loss: 0.2304\nEpoch 41/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1309 - val_loss: 0.2306\nEpoch 42/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1305 - val_loss: 0.2305\nEpoch 43/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1303 - val_loss: 0.2306\nEpoch 44/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1299 - val_loss: 0.2306\nEpoch 45/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1299 - val_loss: 0.2304\nEpoch 46/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1298 - val_loss: 0.2306\nEpoch 47/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1299 - val_loss: 0.2306\nEpoch 48/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1297 - val_loss: 0.2306\nEpoch 49/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1297 - val_loss: 0.2305\nEpoch 50/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1297 - val_loss: 0.2307\nEpoch 51/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 52/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1296 - val_loss: 0.2308\nEpoch 53/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1297 - val_loss: 0.2307\nEpoch 54/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 55/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 56/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 57/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1297 - val_loss: 0.2308\nEpoch 58/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 59/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 60/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1296 - val_loss: 0.2308\nEpoch 61/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 62/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 63/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 64/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 65/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 66/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 67/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 68/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 69/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1294 - val_loss: 0.2307\nEpoch 70/100\n60/60 [==============================] - 6s 97ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 71/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1297 - val_loss: 0.2307\nEpoch 72/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 73/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 74/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 75/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1297 - val_loss: 0.2307\nEpoch 76/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 77/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1293 - val_loss: 0.2307\nEpoch 78/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 79/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 80/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 81/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 82/100\n","name":"stdout"},{"output_type":"stream","text":"60/60 [==============================] - 6s 94ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 83/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 84/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1297 - val_loss: 0.2307\nEpoch 85/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 86/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 87/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 88/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 89/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1294 - val_loss: 0.2307\nEpoch 90/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 91/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 92/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 93/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 94/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 95/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 96/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 97/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 98/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1296 - val_loss: 0.2307\nEpoch 99/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1295 - val_loss: 0.2307\nEpoch 100/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1295 - val_loss: 0.2307\nMin training loss=0.12931862473487854, min validation loss=0.22848781943321228\n","name":"stdout"},{"output_type":"display_data","data":{"text/html":"
\n \n \n
\n \n
"},"metadata":{}},{"output_type":"stream","text":"Epoch 1/100\n60/60 [==============================] - 7s 119ms/step - loss: 0.3375 - val_loss: 0.3478\nEpoch 2/100\n60/60 [==============================] - 5s 92ms/step - loss: 0.2770 - val_loss: 0.3055\nEpoch 3/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2555 - val_loss: 0.2915\nEpoch 4/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.2418 - val_loss: 0.2767\nEpoch 5/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.2302 - val_loss: 0.2626\nEpoch 6/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2178 - val_loss: 0.2546\nEpoch 7/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2071 - val_loss: 0.2473\nEpoch 8/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1989 - val_loss: 0.2440\nEpoch 9/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1936 - val_loss: 0.2407\nEpoch 10/100\n60/60 [==============================] - 5s 92ms/step - loss: 0.1889 - val_loss: 0.2393\nEpoch 11/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1844 - val_loss: 0.2388\nEpoch 12/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1804 - val_loss: 0.2357\nEpoch 13/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1767 - val_loss: 0.2382\nEpoch 14/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1731 - val_loss: 0.2368\nEpoch 15/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1701 - val_loss: 0.2369\nEpoch 16/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1666 - val_loss: 0.2348\nEpoch 17/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1638 - val_loss: 0.2334\nEpoch 18/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1609 - val_loss: 0.2331\nEpoch 19/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1584 - val_loss: 0.2318\nEpoch 20/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1563 - val_loss: 0.2332\nEpoch 21/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1541 - val_loss: 0.2327\nEpoch 22/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1521 - val_loss: 0.2329\nEpoch 23/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1502 - val_loss: 0.2325\nEpoch 24/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1482 - val_loss: 0.2342\nEpoch 25/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1466 - val_loss: 0.2316\nEpoch 26/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1451 - val_loss: 0.2325\nEpoch 27/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1439 - val_loss: 0.2341\nEpoch 28/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1417 - val_loss: 0.2327\nEpoch 29/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1406 - val_loss: 0.2330\nEpoch 30/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1394 - val_loss: 0.2316\nEpoch 31/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1378 - val_loss: 0.2335\nEpoch 32/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1370 - val_loss: 0.2328\nEpoch 33/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1357 - val_loss: 0.2320\nEpoch 34/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1346 - val_loss: 0.2311\nEpoch 35/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1338 - val_loss: 0.2329\nEpoch 36/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1326 - val_loss: 0.2322\nEpoch 37/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1316 - val_loss: 0.2313\nEpoch 38/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1310 - val_loss: 0.2328\nEpoch 39/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1301 - val_loss: 0.2346\nEpoch 40/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1290 - val_loss: 0.2322\nEpoch 41/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1283 - val_loss: 0.2327\nEpoch 42/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1278 - val_loss: 0.2325\nEpoch 43/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1268 - val_loss: 0.2328\nEpoch 44/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1262 - val_loss: 0.2333\nEpoch 45/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1233 - val_loss: 0.2306\nEpoch 46/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1219 - val_loss: 0.2303\nEpoch 47/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1212 - val_loss: 0.2303\nEpoch 48/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1211 - val_loss: 0.2306\nEpoch 49/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1208 - val_loss: 0.2308\nEpoch 50/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1204 - val_loss: 0.2304\nEpoch 51/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1203 - val_loss: 0.2304\nEpoch 52/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1200 - val_loss: 0.2309\nEpoch 53/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1199 - val_loss: 0.2306\nEpoch 54/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1197 - val_loss: 0.2307\nEpoch 55/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1195 - val_loss: 0.2307\nEpoch 56/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1194 - val_loss: 0.2308\nEpoch 57/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1192 - val_loss: 0.2306\nEpoch 58/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1192 - val_loss: 0.2307\nEpoch 59/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1191 - val_loss: 0.2306\nEpoch 60/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1190 - val_loss: 0.2307\nEpoch 61/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1190 - val_loss: 0.2308\nEpoch 62/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1189 - val_loss: 0.2307\nEpoch 63/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1189 - val_loss: 0.2307\nEpoch 64/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1188 - val_loss: 0.2307\nEpoch 65/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1188 - val_loss: 0.2307\nEpoch 66/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1189 - val_loss: 0.2308\nEpoch 67/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1188 - val_loss: 0.2307\nEpoch 68/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 69/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1188 - val_loss: 0.2307\nEpoch 70/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1188 - val_loss: 0.2307\nEpoch 71/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1187 - val_loss: 0.2307\nEpoch 72/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1187 - val_loss: 0.2307\nEpoch 73/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1187 - val_loss: 0.2307\nEpoch 74/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1187 - val_loss: 0.2307\nEpoch 75/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 76/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1187 - val_loss: 0.2308\nEpoch 77/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 78/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1189 - val_loss: 0.2308\nEpoch 79/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1189 - val_loss: 0.2308\nEpoch 80/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 81/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 82/100\n","name":"stdout"},{"output_type":"stream","text":"60/60 [==============================] - 6s 94ms/step - loss: 0.1187 - val_loss: 0.2308\nEpoch 83/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1187 - val_loss: 0.2308\nEpoch 84/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1187 - val_loss: 0.2308\nEpoch 85/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1187 - val_loss: 0.2308\nEpoch 86/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 87/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 88/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 89/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 90/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1186 - val_loss: 0.2308\nEpoch 91/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1186 - val_loss: 0.2308\nEpoch 92/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 93/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1189 - val_loss: 0.2308\nEpoch 94/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1187 - val_loss: 0.2308\nEpoch 95/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1189 - val_loss: 0.2308\nEpoch 96/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 97/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 98/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 99/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1188 - val_loss: 0.2308\nEpoch 100/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1188 - val_loss: 0.2308\nMin training loss=0.11861304938793182, min validation loss=0.23031002283096313\n","name":"stdout"},{"output_type":"display_data","data":{"text/html":"
\n \n \n
\n \n
"},"metadata":{}},{"output_type":"stream","text":"Epoch 1/100\n60/60 [==============================] - 8s 129ms/step - loss: 0.3350 - val_loss: 0.3390\nEpoch 2/100\n60/60 [==============================] - 5s 92ms/step - loss: 0.2788 - val_loss: 0.3018\nEpoch 3/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2580 - val_loss: 0.2883\nEpoch 4/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2429 - val_loss: 0.2743\nEpoch 5/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2280 - val_loss: 0.2594\nEpoch 6/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2157 - val_loss: 0.2531\nEpoch 7/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2052 - val_loss: 0.2562\nEpoch 8/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1994 - val_loss: 0.2502\nEpoch 9/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1936 - val_loss: 0.2529\nEpoch 10/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1887 - val_loss: 0.2495\nEpoch 11/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1843 - val_loss: 0.2467\nEpoch 12/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1804 - val_loss: 0.2452\nEpoch 13/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1762 - val_loss: 0.2426\nEpoch 14/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1735 - val_loss: 0.2450\nEpoch 15/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1695 - val_loss: 0.2424\nEpoch 16/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1663 - val_loss: 0.2429\nEpoch 17/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1637 - val_loss: 0.2425\nEpoch 18/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1608 - val_loss: 0.2444\nEpoch 19/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1586 - val_loss: 0.2496\nEpoch 20/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1562 - val_loss: 0.2423\nEpoch 21/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1542 - val_loss: 0.2496\nEpoch 22/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1521 - val_loss: 0.2488\nEpoch 23/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1500 - val_loss: 0.2454\nEpoch 24/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1483 - val_loss: 0.2432\nEpoch 25/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1464 - val_loss: 0.2438\nEpoch 26/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1427 - val_loss: 0.2428\nEpoch 27/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1413 - val_loss: 0.2430\nEpoch 28/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1406 - val_loss: 0.2432\nEpoch 29/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1402 - val_loss: 0.2433\nEpoch 30/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1399 - val_loss: 0.2437\nEpoch 31/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1397 - val_loss: 0.2433\nEpoch 32/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1393 - val_loss: 0.2434\nEpoch 33/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1389 - val_loss: 0.2423\nEpoch 34/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1387 - val_loss: 0.2434\nEpoch 35/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1386 - val_loss: 0.2434\nEpoch 36/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1382 - val_loss: 0.2433\nEpoch 37/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1380 - val_loss: 0.2433\nEpoch 38/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1379 - val_loss: 0.2430\nEpoch 39/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1379 - val_loss: 0.2433\nEpoch 40/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1378 - val_loss: 0.2433\nEpoch 41/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1379 - val_loss: 0.2434\nEpoch 42/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1380 - val_loss: 0.2436\nEpoch 43/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1380 - val_loss: 0.2434\nEpoch 44/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1380 - val_loss: 0.2433\nEpoch 45/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1377 - val_loss: 0.2434\nEpoch 46/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1377 - val_loss: 0.2434\nEpoch 47/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 48/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1378 - val_loss: 0.2433\nEpoch 49/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 50/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 51/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 52/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1377 - val_loss: 0.2434\nEpoch 53/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1378 - val_loss: 0.2434\nEpoch 54/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 55/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1378 - val_loss: 0.2433\nEpoch 56/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 57/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1375 - val_loss: 0.2433\nEpoch 58/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 59/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1375 - val_loss: 0.2433\nEpoch 60/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 61/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1378 - val_loss: 0.2434\nEpoch 62/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1377 - val_loss: 0.2434\nEpoch 63/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1375 - val_loss: 0.2433\nEpoch 64/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 65/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 66/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 67/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 68/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 69/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 70/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 71/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1378 - val_loss: 0.2433\nEpoch 72/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1378 - val_loss: 0.2433\nEpoch 73/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 74/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 75/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 76/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 77/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 78/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 79/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 80/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 81/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 82/100\n","name":"stdout"},{"output_type":"stream","text":"60/60 [==============================] - 6s 94ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 83/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 84/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1375 - val_loss: 0.2433\nEpoch 85/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 86/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1375 - val_loss: 0.2433\nEpoch 87/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 88/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 89/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 90/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 91/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 92/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 93/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 94/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 95/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 96/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 97/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1377 - val_loss: 0.2433\nEpoch 98/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 99/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1376 - val_loss: 0.2433\nEpoch 100/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1376 - val_loss: 0.2433\nMin training loss=0.13745416700839996, min validation loss=0.24231921136379242\n","name":"stdout"},{"output_type":"display_data","data":{"text/html":"
\n \n \n
\n \n
"},"metadata":{}},{"output_type":"stream","text":"Epoch 1/100\n60/60 [==============================] - 7s 122ms/step - loss: 0.3275 - val_loss: 0.3536\nEpoch 2/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2768 - val_loss: 0.3058\nEpoch 3/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2551 - val_loss: 0.2824\nEpoch 4/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.2386 - val_loss: 0.2709\nEpoch 5/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.2248 - val_loss: 0.2564\nEpoch 6/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.2137 - val_loss: 0.2473\nEpoch 7/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2045 - val_loss: 0.2433\nEpoch 8/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1976 - val_loss: 0.2411\nEpoch 9/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1925 - val_loss: 0.2358\nEpoch 10/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1873 - val_loss: 0.2366\nEpoch 11/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1840 - val_loss: 0.2330\nEpoch 12/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1796 - val_loss: 0.2327\nEpoch 13/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1759 - val_loss: 0.2336\nEpoch 14/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1720 - val_loss: 0.2336\nEpoch 15/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1688 - val_loss: 0.2315\nEpoch 16/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1659 - val_loss: 0.2324\nEpoch 17/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1629 - val_loss: 0.2327\nEpoch 18/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1601 - val_loss: 0.2314\nEpoch 19/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1581 - val_loss: 0.2326\nEpoch 20/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1553 - val_loss: 0.2302\nEpoch 21/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1531 - val_loss: 0.2329\nEpoch 22/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1511 - val_loss: 0.2300\nEpoch 23/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1495 - val_loss: 0.2315\nEpoch 24/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1477 - val_loss: 0.2340\nEpoch 25/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1460 - val_loss: 0.2320\nEpoch 26/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1445 - val_loss: 0.2319\nEpoch 27/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1424 - val_loss: 0.2320\nEpoch 28/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1412 - val_loss: 0.2317\nEpoch 29/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1398 - val_loss: 0.2319\nEpoch 30/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1391 - val_loss: 0.2313\nEpoch 31/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1372 - val_loss: 0.2308\nEpoch 32/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1362 - val_loss: 0.2316\nEpoch 33/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1329 - val_loss: 0.2291\nEpoch 34/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1314 - val_loss: 0.2293\nEpoch 35/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1308 - val_loss: 0.2294\nEpoch 36/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1305 - val_loss: 0.2291\nEpoch 37/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1302 - val_loss: 0.2296\nEpoch 38/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1300 - val_loss: 0.2295\nEpoch 39/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1298 - val_loss: 0.2296\nEpoch 40/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1295 - val_loss: 0.2291\nEpoch 41/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1292 - val_loss: 0.2294\nEpoch 42/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1291 - val_loss: 0.2295\nEpoch 43/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1289 - val_loss: 0.2298\nEpoch 44/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1286 - val_loss: 0.2295\nEpoch 45/100\n60/60 [==============================] - 6s 97ms/step - loss: 0.1285 - val_loss: 0.2295\nEpoch 46/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1285 - val_loss: 0.2296\nEpoch 47/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1283 - val_loss: 0.2296\nEpoch 48/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1284 - val_loss: 0.2295\nEpoch 49/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1283 - val_loss: 0.2295\nEpoch 50/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1283 - val_loss: 0.2295\nEpoch 51/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1283 - val_loss: 0.2294\nEpoch 52/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 53/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1283 - val_loss: 0.2295\nEpoch 54/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 55/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 56/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 57/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 58/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 59/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 60/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1280 - val_loss: 0.2295\nEpoch 61/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 62/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 63/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 64/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 65/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 66/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 67/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1280 - val_loss: 0.2295\nEpoch 68/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 69/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 70/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 71/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 72/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 73/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 74/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 75/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1280 - val_loss: 0.2295\nEpoch 76/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 77/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 78/100\n60/60 [==============================] - 6s 97ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 79/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 80/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 81/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1283 - val_loss: 0.2295\nEpoch 82/100\n","name":"stdout"},{"output_type":"stream","text":"60/60 [==============================] - 6s 95ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 83/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 84/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 85/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 86/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 87/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 88/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 89/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 90/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 91/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 92/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 93/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 94/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 95/100\n60/60 [==============================] - 6s 92ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 96/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 97/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1281 - val_loss: 0.2295\nEpoch 98/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1282 - val_loss: 0.2295\nEpoch 99/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1280 - val_loss: 0.2295\nEpoch 100/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1282 - val_loss: 0.2295\nMin training loss=0.12801621854305267, min validation loss=0.22907394170761108\n","name":"stdout"},{"output_type":"display_data","data":{"text/html":"
\n \n \n
\n \n
"},"metadata":{}},{"output_type":"stream","text":"Epoch 1/100\n60/60 [==============================] - 7s 123ms/step - loss: 0.3320 - val_loss: 0.3429\nEpoch 2/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2816 - val_loss: 0.2953\nEpoch 3/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2582 - val_loss: 0.2753\nEpoch 4/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.2416 - val_loss: 0.2622\nEpoch 5/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.2264 - val_loss: 0.2503\nEpoch 6/100\n60/60 [==============================] - 6s 98ms/step - loss: 0.2138 - val_loss: 0.2428\nEpoch 7/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.2043 - val_loss: 0.2361\nEpoch 8/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1974 - val_loss: 0.2306\nEpoch 9/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1916 - val_loss: 0.2294\nEpoch 10/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1878 - val_loss: 0.2279\nEpoch 11/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1832 - val_loss: 0.2286\nEpoch 12/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1791 - val_loss: 0.2293\nEpoch 13/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1754 - val_loss: 0.2258\nEpoch 14/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1717 - val_loss: 0.2244\nEpoch 15/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1689 - val_loss: 0.2243\nEpoch 16/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1658 - val_loss: 0.2240\nEpoch 17/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1631 - val_loss: 0.2259\nEpoch 18/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1607 - val_loss: 0.2263\nEpoch 19/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1577 - val_loss: 0.2233\nEpoch 20/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1555 - val_loss: 0.2244\nEpoch 21/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1539 - val_loss: 0.2247\nEpoch 22/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1521 - val_loss: 0.2243\nEpoch 23/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1503 - val_loss: 0.2223\nEpoch 24/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1477 - val_loss: 0.2235\nEpoch 25/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1464 - val_loss: 0.2236\nEpoch 26/100\n60/60 [==============================] - 6s 99ms/step - loss: 0.1449 - val_loss: 0.2236\nEpoch 27/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1435 - val_loss: 0.2229\nEpoch 28/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1417 - val_loss: 0.2247\nEpoch 29/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1405 - val_loss: 0.2229\nEpoch 30/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1394 - val_loss: 0.2250\nEpoch 31/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1383 - val_loss: 0.2235\nEpoch 32/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1370 - val_loss: 0.2246\nEpoch 33/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1360 - val_loss: 0.2249\nEpoch 34/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1325 - val_loss: 0.2220\nEpoch 35/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1311 - val_loss: 0.2221\nEpoch 36/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1306 - val_loss: 0.2219\nEpoch 37/100\n60/60 [==============================] - 6s 97ms/step - loss: 0.1303 - val_loss: 0.2219\nEpoch 38/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1298 - val_loss: 0.2214\nEpoch 39/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1298 - val_loss: 0.2221\nEpoch 40/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1295 - val_loss: 0.2218\nEpoch 41/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1291 - val_loss: 0.2215\nEpoch 42/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1290 - val_loss: 0.2222\nEpoch 43/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1289 - val_loss: 0.2222\nEpoch 44/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1286 - val_loss: 0.2220\nEpoch 45/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1285 - val_loss: 0.2221\nEpoch 46/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1284 - val_loss: 0.2224\nEpoch 47/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1280 - val_loss: 0.2225\nEpoch 48/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1281 - val_loss: 0.2222\nEpoch 49/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1274 - val_loss: 0.2222\nEpoch 50/100\n60/60 [==============================] - 6s 97ms/step - loss: 0.1275 - val_loss: 0.2222\nEpoch 51/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1276 - val_loss: 0.2221\nEpoch 52/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 53/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1275 - val_loss: 0.2220\nEpoch 54/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 55/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1272 - val_loss: 0.2221\nEpoch 56/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 57/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1272 - val_loss: 0.2219\nEpoch 58/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1273 - val_loss: 0.2220\nEpoch 59/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 60/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 61/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 62/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1273 - val_loss: 0.2220\nEpoch 63/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 64/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 65/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 66/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 67/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 68/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 69/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 70/100\n60/60 [==============================] - 6s 93ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 71/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 72/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1270 - val_loss: 0.2220\nEpoch 73/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1270 - val_loss: 0.2220\nEpoch 74/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1274 - val_loss: 0.2220\nEpoch 75/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 76/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 77/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1273 - val_loss: 0.2220\nEpoch 78/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 79/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 80/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 81/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1273 - val_loss: 0.2220\nEpoch 82/100\n","name":"stdout"},{"output_type":"stream","text":"60/60 [==============================] - 6s 93ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 83/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 84/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1270 - val_loss: 0.2220\nEpoch 85/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1273 - val_loss: 0.2220\nEpoch 86/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 87/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 88/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 89/100\n60/60 [==============================] - 6s 100ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 90/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 91/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 92/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 93/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 94/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 95/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1271 - val_loss: 0.2220\nEpoch 96/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1273 - val_loss: 0.2220\nEpoch 97/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 98/100\n60/60 [==============================] - 6s 96ms/step - loss: 0.1272 - val_loss: 0.2220\nEpoch 99/100\n60/60 [==============================] - 6s 95ms/step - loss: 0.1270 - val_loss: 0.2220\nEpoch 100/100\n60/60 [==============================] - 6s 94ms/step - loss: 0.1272 - val_loss: 0.2220\nMin training loss=0.12700094282627106, min validation loss=0.22137261927127838\n","name":"stdout"},{"output_type":"display_data","data":{"text/html":"
\n \n \n
\n \n
"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"FOLD_N=5\ngkf = GroupKFold(n_splits=FOLD_N)\n\ntype=2\nfor cv, (tr_idx, vl_idx) in enumerate(gkf.split(train, train['reactivity'], train['cluster_id'])):\n trn = train.iloc[tr_idx]\n x_trn = preprocess_inputs(trn)\n y_trn = np.array(trn[pred_cols].values.tolist()).transpose((0, 2, 1))\n w_trn = np.log(trn.signal_to_noise+1.1)/2\n\n val = train.iloc[vl_idx]\n x_val_all = preprocess_inputs(val)\n val = val[val.SN_filter == 1]\n x_val = preprocess_inputs(val)\n y_val = np.array(val[pred_cols].values.tolist()).transpose((0, 2, 1))\n\n model = build_model(type=1)\n model_short = build_model(seq_len=107, pred_len=107,type=type)\n model_long = build_model(seq_len=130, pred_len=130,type=type)\n\n history = model.fit(\n x_trn, y_trn,\n validation_data = (x_val, y_val),\n batch_size=64,\n epochs=100,\n sample_weight=w_trn,\n callbacks=[\n tf.keras.callbacks.ReduceLROnPlateau(),\n tf.keras.callbacks.ModelCheckpoint(f'model{Ver}_cv{cv}.h5')\n ]\n )\n print(f\"Min training loss={min(history.history['loss'])}, min validation loss={min(history.history['val_loss'])}\")\n fig = px.line(history.history, y=['loss', 'val_loss'], labels={'index': 'epoch', 'value': 'Mean Cloumnwise Root Mean Squared Error'}, \n title='Training History')\n fig.show()\n","execution_count":null,"outputs":[]},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:17:18.473586Z","iopub.status.busy":"2020-09-21T09:17:18.472319Z","iopub.status.idle":"2020-09-21T09:17:18.475796Z","shell.execute_reply":"2020-09-21T09:17:18.47518Z"},"incorrectly_encoded_metadata":"_kg_hide-output=true","papermill":{"duration":0.043776,"end_time":"2020-09-21T09:17:18.475902","exception":false,"start_time":"2020-09-21T09:17:18.432126","status":"completed"},"scrolled":true,"tags":[],"trusted":true},"cell_type":"code","source":"def train_and_predict(type = 0, FOLD_N = 5):\n \n gkf = GroupKFold(n_splits=FOLD_N)\n\n public_df = test.query(\"seq_length == 107\").copy()\n private_df = test.query(\"seq_length == 130\").copy()\n\n public_inputs = preprocess_inputs(public_df)\n private_inputs = preprocess_inputs(private_df)\n\n\n holdouts = []\n holdout_preds = []\n\n for cv, (tr_idx, vl_idx) in enumerate(gkf.split(train, train['reactivity'], train['cluster_id'])):\n trn = train.iloc[tr_idx]\n x_trn = preprocess_inputs(trn)\n y_trn = np.array(trn[pred_cols].values.tolist()).transpose((0, 2, 1))\n w_trn = np.log(trn.signal_to_noise+1.1)/2\n\n val = train.iloc[vl_idx]\n x_val_all = preprocess_inputs(val)\n val = val[val.SN_filter == 1]\n x_val = preprocess_inputs(val)\n y_val = np.array(val[pred_cols].values.tolist()).transpose((0, 2, 1))\n\n model = build_model(type=type)\n model_short = build_model(seq_len=107, pred_len=107,type=type)\n model_long = build_model(seq_len=130, pred_len=130,type=type)\n\n history = model.fit(\n x_trn, y_trn,\n validation_data = (x_val, y_val),\n batch_size=64,\n epochs=100,\n sample_weight=w_trn,\n callbacks=[\n tf.keras.callbacks.ReduceLROnPlateau(),\n tf.keras.callbacks.ModelCheckpoint(f'model{Ver}_cv{cv}.h5')\n ]\n )\n\n fig = px.line(\n history.history, y=['loss', 'val_loss'], \n labels={'index': 'epoch', 'value': 'Mean Squared Error'}, \n title='Training History')\n fig.show()\n\n model.load_weights(f'model{Ver}_cv{cv}.h5')\n model_short.load_weights(f'model{Ver}_cv{cv}.h5')\n model_long.load_weights(f'model{Ver}_cv{cv}.h5')\n\n holdouts.append(train.iloc[vl_idx])\n holdout_preds.append(model.predict(x_val_all))\n if cv == 0:\n public_preds = model_short.predict(public_inputs)/FOLD_N\n private_preds = model_long.predict(private_inputs)/FOLD_N\n else:\n public_preds += model_short.predict(public_inputs)/FOLD_N\n private_preds += model_long.predict(private_inputs)/FOLD_N\n return holdouts, holdout_preds, public_df, public_preds, private_df, private_preds","execution_count":11,"outputs":[]},{"metadata":{"_kg_hide-output":true,"execution":{"iopub.execute_input":"2020-09-21T09:17:18.526941Z","iopub.status.busy":"2020-09-21T09:17:18.525944Z","iopub.status.idle":"2020-09-21T09:55:34.97759Z","shell.execute_reply":"2020-09-21T09:55:34.873937Z"},"papermill":{"duration":2296.482954,"end_time":"2020-09-21T09:55:34.97778","exception":false,"start_time":"2020-09-21T09:17:18.494826","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"val_df, val_preds, test_df, test_preds = [], [], [], []\nif debug:\n nmodel = 1\nelse:\n nmodel = 3\nfor i in range(nmodel):\n holdouts, holdout_preds, public_df, public_preds, private_df, private_preds = train_and_predict(i)\n val_df += holdouts\n val_preds += holdout_preds\n test_df.append(public_df)\n test_df.append(private_df)\n test_preds.append(public_preds)\n test_preds.append(private_preds)","execution_count":12,"outputs":[{"output_type":"stream","text":"Epoch 1/100\n60/60 [==============================] - 7s 119ms/step - loss: 0.3363 - val_loss: 0.3621\nEpoch 2/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.2840 - val_loss: 0.3168\nEpoch 3/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.2649 - val_loss: 0.3072\nEpoch 4/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.2530 - val_loss: 0.2842\nEpoch 5/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.2422 - val_loss: 0.2718\nEpoch 6/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.2316 - val_loss: 0.2586\nEpoch 7/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.2238 - val_loss: 0.2562\nEpoch 8/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.2161 - val_loss: 0.2476\nEpoch 9/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.2094 - val_loss: 0.2429\nEpoch 10/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.2037 - val_loss: 0.2375\nEpoch 11/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.2005 - val_loss: 0.2384\nEpoch 12/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1959 - val_loss: 0.2341\nEpoch 13/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1934 - val_loss: 0.2336\nEpoch 14/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1902 - val_loss: 0.2305\nEpoch 15/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1861 - val_loss: 0.2293\nEpoch 16/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1838 - val_loss: 0.2284\nEpoch 17/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1807 - val_loss: 0.2292\nEpoch 18/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1784 - val_loss: 0.2292\nEpoch 19/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1760 - val_loss: 0.2291\nEpoch 20/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1735 - val_loss: 0.2287\nEpoch 21/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1714 - val_loss: 0.2270\nEpoch 22/100\n60/60 [==============================] - 5s 91ms/step - loss: 0.1690 - val_loss: 0.2261\nEpoch 23/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1677 - val_loss: 0.2273\nEpoch 24/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1655 - val_loss: 0.2266\nEpoch 25/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1639 - val_loss: 0.2273\nEpoch 26/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1618 - val_loss: 0.2243\nEpoch 27/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1600 - val_loss: 0.2275\nEpoch 28/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1594 - val_loss: 0.2302\nEpoch 29/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1569 - val_loss: 0.2255\nEpoch 30/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1554 - val_loss: 0.2248\nEpoch 31/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1540 - val_loss: 0.2265\nEpoch 32/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1526 - val_loss: 0.2259\nEpoch 33/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1512 - val_loss: 0.2260\nEpoch 34/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1504 - val_loss: 0.2273\nEpoch 35/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1490 - val_loss: 0.2266\nEpoch 36/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1477 - val_loss: 0.2269\nEpoch 37/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1435 - val_loss: 0.2238\nEpoch 38/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1421 - val_loss: 0.2238\nEpoch 39/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1416 - val_loss: 0.2236\nEpoch 40/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1411 - val_loss: 0.2239\nEpoch 41/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1409 - val_loss: 0.2239\nEpoch 42/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1406 - val_loss: 0.2241\nEpoch 43/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1403 - val_loss: 0.2239\nEpoch 44/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1401 - val_loss: 0.2240\nEpoch 45/100\n60/60 [==============================] - 5s 90ms/step - loss: 0.1400 - val_loss: 0.2241\nEpoch 46/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1398 - val_loss: 0.2244\nEpoch 47/100\n60/60 [==============================] - 5s 90ms/step - loss: 0.1394 - val_loss: 0.2237\nEpoch 48/100\n60/60 [==============================] - 5s 90ms/step - loss: 0.1392 - val_loss: 0.2242\nEpoch 49/100\n60/60 [==============================] - 5s 90ms/step - loss: 0.1390 - val_loss: 0.2242\nEpoch 50/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1387 - val_loss: 0.2240\nEpoch 51/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1384 - val_loss: 0.2240\nEpoch 52/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1385 - val_loss: 0.2239\nEpoch 53/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1384 - val_loss: 0.2241\nEpoch 54/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1386 - val_loss: 0.2240\nEpoch 55/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1384 - val_loss: 0.2240\nEpoch 56/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1385 - val_loss: 0.2239\nEpoch 57/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1385 - val_loss: 0.2240\nEpoch 58/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 59/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1384 - val_loss: 0.2241\nEpoch 60/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1382 - val_loss: 0.2241\nEpoch 61/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1385 - val_loss: 0.2241\nEpoch 62/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1382 - val_loss: 0.2241\nEpoch 63/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 64/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1382 - val_loss: 0.2241\nEpoch 65/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1382 - val_loss: 0.2241\nEpoch 66/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1384 - val_loss: 0.2241\nEpoch 67/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 68/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 69/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 70/100\n60/60 [==============================] - 5s 87ms/step - loss: 0.1382 - val_loss: 0.2241\nEpoch 71/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 72/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1382 - val_loss: 0.2241\nEpoch 73/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 74/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 75/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1382 - val_loss: 0.2241\nEpoch 76/100\n60/60 [==============================] - 5s 90ms/step - loss: 0.1382 - val_loss: 0.2241\nEpoch 77/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1384 - val_loss: 0.2241\nEpoch 78/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 79/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 80/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 81/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1382 - val_loss: 0.2241\nEpoch 82/100\n","name":"stdout"},{"output_type":"stream","text":"60/60 [==============================] - 5s 90ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 83/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 84/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1384 - val_loss: 0.2241\nEpoch 85/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1384 - val_loss: 0.2241\nEpoch 86/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 87/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1382 - val_loss: 0.2241\nEpoch 88/100\n60/60 [==============================] - 5s 90ms/step - loss: 0.1384 - val_loss: 0.2241\nEpoch 89/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1382 - val_loss: 0.2241\nEpoch 90/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1384 - val_loss: 0.2241\nEpoch 91/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 92/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 93/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 94/100\n60/60 [==============================] - 5s 89ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 95/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1384 - val_loss: 0.2241\nEpoch 96/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 97/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1383 - val_loss: 0.2241\nEpoch 98/100\n60/60 [==============================] - 5s 88ms/step - loss: 0.1384 - val_loss: 0.2241\nEpoch 99/100\n38/60 [==================>...........] - ETA: 1s - loss: 0.1381","name":"stdout"},{"output_type":"error","ename":"KeyboardInterrupt","evalue":"","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)","\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mnmodel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m4\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnmodel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mholdouts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mholdout_preds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpublic_df\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpublic_preds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprivate_df\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprivate_preds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtrain_and_predict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0mval_df\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0mholdouts\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mval_preds\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0mholdout_preds\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m\u001b[0m in \u001b[0;36mtrain_and_predict\u001b[0;34m(type, FOLD_N)\u001b[0m\n\u001b[1;32m 37\u001b[0m callbacks=[\n\u001b[1;32m 38\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeras\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReduceLROnPlateau\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 39\u001b[0;31m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeras\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mModelCheckpoint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf'model{Ver}_cv{cv}.h5'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 40\u001b[0m ]\n\u001b[1;32m 41\u001b[0m )\n","\u001b[0;32m/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py\u001b[0m in \u001b[0;36m_method_wrapper\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 106\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_method_wrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 107\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_in_multi_worker_mode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 108\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 109\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[0;31m# Running inside `run_distribute_coordinator` already.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)\u001b[0m\n\u001b[1;32m 1096\u001b[0m batch_size=batch_size):\n\u001b[1;32m 1097\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_train_batch_begin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1098\u001b[0;31m \u001b[0mtmp_logs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtrain_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterator\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1099\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdata_handler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshould_sync\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1100\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masync_wait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 778\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 779\u001b[0m \u001b[0mcompiler\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"nonXla\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 780\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 781\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 782\u001b[0m \u001b[0mnew_tracing_count\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_tracing_count\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py\u001b[0m in \u001b[0;36m_call\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 805\u001b[0m \u001b[0;31m# In this case we have created variables on the first call, so we run the\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 806\u001b[0m \u001b[0;31m# defunned version which is guaranteed to never create variables.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 807\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_stateless_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# pylint: disable=not-callable\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 808\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_stateful_fn\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 809\u001b[0m \u001b[0;31m# Release the lock early so that multiple threads can perform the call\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.7/site-packages/tensorflow/python/eager/function.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 2827\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_lock\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2828\u001b[0m \u001b[0mgraph_function\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_maybe_define_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2829\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mgraph_function\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_filtered_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2830\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2831\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.7/site-packages/tensorflow/python/eager/function.py\u001b[0m in \u001b[0;36m_filtered_call\u001b[0;34m(self, args, kwargs, cancellation_manager)\u001b[0m\n\u001b[1;32m 1846\u001b[0m resource_variable_ops.BaseResourceVariable))],\n\u001b[1;32m 1847\u001b[0m \u001b[0mcaptured_inputs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcaptured_inputs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1848\u001b[0;31m cancellation_manager=cancellation_manager)\n\u001b[0m\u001b[1;32m 1849\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1850\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_call_flat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcaptured_inputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcancellation_manager\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.7/site-packages/tensorflow/python/eager/function.py\u001b[0m in \u001b[0;36m_call_flat\u001b[0;34m(self, args, captured_inputs, cancellation_manager)\u001b[0m\n\u001b[1;32m 1922\u001b[0m \u001b[0;31m# No tape is watching; skip to running the function.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1923\u001b[0m return self._build_call_outputs(self._inference_function.call(\n\u001b[0;32m-> 1924\u001b[0;31m ctx, args, cancellation_manager=cancellation_manager))\n\u001b[0m\u001b[1;32m 1925\u001b[0m forward_backward = self._select_forward_and_backward_functions(\n\u001b[1;32m 1926\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.7/site-packages/tensorflow/python/eager/function.py\u001b[0m in \u001b[0;36mcall\u001b[0;34m(self, ctx, args, cancellation_manager)\u001b[0m\n\u001b[1;32m 548\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 549\u001b[0m \u001b[0mattrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mattrs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 550\u001b[0;31m ctx=ctx)\n\u001b[0m\u001b[1;32m 551\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 552\u001b[0m outputs = execute.execute_with_cancellation(\n","\u001b[0;32m/opt/conda/lib/python3.7/site-packages/tensorflow/python/eager/execute.py\u001b[0m in \u001b[0;36mquick_execute\u001b[0;34m(op_name, num_outputs, inputs, attrs, ctx, name)\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0mctx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mensure_initialized\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,\n\u001b[0;32m---> 60\u001b[0;31m inputs, attrs, num_outputs)\n\u001b[0m\u001b[1;32m 61\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mcore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_NotOkStatusException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mname\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mKeyboardInterrupt\u001b[0m: "]}]},{"metadata":{"papermill":{"duration":12.712813,"end_time":"2020-09-21T09:56:00.094415","exception":false,"start_time":"2020-09-21T09:55:47.381602","status":"completed"},"tags":[]},"cell_type":"markdown","source":"## post process"},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:56:26.121627Z","iopub.status.busy":"2020-09-21T09:56:26.08081Z","iopub.status.idle":"2020-09-21T09:57:04.897064Z","shell.execute_reply":"2020-09-21T09:57:04.897651Z"},"papermill":{"duration":51.76575,"end_time":"2020-09-21T09:57:04.897814","exception":false,"start_time":"2020-09-21T09:56:13.132064","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"preds_ls = []\nfor df, preds in zip(test_df, test_preds):\n for i, uid in enumerate(df.id):\n single_pred = preds[i]\n single_df = pd.DataFrame(single_pred, columns=pred_cols)\n single_df['id_seqpos'] = [f'{uid}_{x}' for x in range(single_df.shape[0])]\n preds_ls.append(single_df)\npreds_df = pd.concat(preds_ls).groupby('id_seqpos').mean().reset_index()\n# .mean() is for\n# 1, Predictions from multiple models\n# 2, TTA (augmented test data)\n\npreds_ls = []\nfor df, preds in zip(val_df, val_preds):\n for i, uid in enumerate(df.id):\n single_pred = preds[i]\n single_df = pd.DataFrame(single_pred, columns=pred_cols)\n single_df['id_seqpos'] = [f'{uid}_{x}' for x in range(single_df.shape[0])]\n single_df['SN_filter'] = df[df['id'] == uid].SN_filter.values[0]\n preds_ls.append(single_df)\nholdouts_df = pd.concat(preds_ls).groupby('id_seqpos').mean().reset_index()","execution_count":null,"outputs":[]},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:57:30.84898Z","iopub.status.busy":"2020-09-21T09:57:30.848097Z","iopub.status.idle":"2020-09-21T09:57:35.396342Z","shell.execute_reply":"2020-09-21T09:57:35.397025Z"},"papermill":{"duration":17.293127,"end_time":"2020-09-21T09:57:35.397197","exception":false,"start_time":"2020-09-21T09:57:18.10407","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"submission = preds_df[['id_seqpos', 'reactivity', 'deg_Mg_pH10', 'deg_pH10', 'deg_Mg_50C', 'deg_50C']]\nsubmission.to_csv(f'submission.csv', index=False)\nprint(f'wrote to submission.csv')","execution_count":null,"outputs":[]},{"metadata":{"papermill":{"duration":12.384864,"end_time":"2020-09-21T09:58:00.228947","exception":false,"start_time":"2020-09-21T09:57:47.844083","status":"completed"},"tags":[]},"cell_type":"markdown","source":"## Validation"},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:58:26.104504Z","iopub.status.busy":"2020-09-21T09:58:26.103111Z","iopub.status.idle":"2020-09-21T09:58:26.105315Z","shell.execute_reply":"2020-09-21T09:58:26.106353Z"},"papermill":{"duration":12.82694,"end_time":"2020-09-21T09:58:26.106501","exception":false,"start_time":"2020-09-21T09:58:13.279561","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"def print_mse(prd):\n val = pd.read_json('../input/stanford-covid-vaccine/train.json', lines=True)\n\n val_data = []\n for mol_id in val['id'].unique():\n sample_data = val.loc[val['id'] == mol_id]\n sample_seq_length = sample_data.seq_length.values[0]\n for i in range(68):\n sample_dict = {\n 'id_seqpos' : sample_data['id'].values[0] + '_' + str(i),\n 'reactivity_gt' : sample_data['reactivity'].values[0][i],\n 'deg_Mg_pH10_gt' : sample_data['deg_Mg_pH10'].values[0][i],\n 'deg_Mg_50C_gt' : sample_data['deg_Mg_50C'].values[0][i],\n }\n val_data.append(sample_dict)\n val_data = pd.DataFrame(val_data)\n val_data = val_data.merge(prd, on='id_seqpos')\n\n rmses = []\n mses = []\n for col in ['reactivity', 'deg_Mg_pH10', 'deg_Mg_50C']:\n rmse = ((val_data[col] - val_data[col+'_gt']) ** 2).mean() ** .5\n mse = ((val_data[col] - val_data[col+'_gt']) ** 2).mean()\n rmses.append(rmse)\n mses.append(mse)\n print(col, rmse, mse)\n print(np.mean(rmses), np.mean(mses))","execution_count":null,"outputs":[]},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:58:51.307542Z","iopub.status.busy":"2020-09-21T09:58:51.306918Z","iopub.status.idle":"2020-09-21T09:59:14.103528Z","shell.execute_reply":"2020-09-21T09:59:14.105346Z"},"papermill":{"duration":35.353703,"end_time":"2020-09-21T09:59:14.105565","exception":false,"start_time":"2020-09-21T09:58:38.751862","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"print_mse(holdouts_df)","execution_count":null,"outputs":[]},{"metadata":{"execution":{"iopub.execute_input":"2020-09-21T09:59:39.272921Z","iopub.status.busy":"2020-09-21T09:59:39.271903Z","iopub.status.idle":"2020-09-21T09:59:46.041567Z","shell.execute_reply":"2020-09-21T09:59:46.040925Z"},"papermill":{"duration":19.171895,"end_time":"2020-09-21T09:59:46.041676","exception":false,"start_time":"2020-09-21T09:59:26.869781","status":"completed"},"tags":[],"trusted":true},"cell_type":"code","source":"print_mse(holdouts_df[holdouts_df.SN_filter == 1])","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"language_info":{"name":"python","version":"3.7.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":4}