From 25f9352186509241431f746698968f1e44181510 Mon Sep 17 00:00:00 2001
From: Felix Kleinert <f.kleinert@fz-juelich.de>
Date: Fri, 22 May 2020 11:01:05 +0200
Subject: [PATCH] version for Paper submission
---
run.py | 2 +-
src/model_modules/model_class.py | 48 ++++++++++++++++++--------------
2 files changed, 28 insertions(+), 22 deletions(-)
diff --git a/run.py b/run.py
index 4fcb6cbf..b1f26e16 100644
--- a/run.py
+++ b/run.py
@@ -27,7 +27,7 @@ def main(parser_args):
# stations=['DEBW107', 'DEBY081', 'DEBW013', 'DEBW076', 'DEBW087', 'DEBW001'],
station_type='background', window_lead_time=4, window_history_size=6,
trainable=False, create_new_model=True, permute_data_on_training=True,
- extreme_values=3., train_min_length=365*4, val_min_length=365, test_min_length=365,
+ extreme_values=3., train_min_length=365, val_min_length=365, test_min_length=365,
create_new_bootstraps=True,hpc_hosts=["za"])
PreProcessing()
diff --git a/src/model_modules/model_class.py b/src/model_modules/model_class.py
index 865cab88..25504151 100644
--- a/src/model_modules/model_class.py
+++ b/src/model_modules/model_class.py
@@ -14,6 +14,7 @@ import logging
from src.model_modules.inception_model import InceptionModelBase
from src.model_modules.flatten import flatten_tail
from src.model_modules.advanced_paddings import PadUtils, Padding2D
+from src.helpers import l_p_loss
class AbstractModelClass(ABC):
@@ -500,20 +501,20 @@ class MyPaperModel(AbstractModelClass):
self.window_history_size = window_history_size
self.window_lead_time = window_lead_time
self.channels = channels
- self.dropout_rate = .3
- self.regularizer = keras.regularizers.l2(0.001)
- # self.initial_lr = 1e-4
- self.initial_lr = 0.01
- self.lr_decay = src.model_modules.keras_extensions.LearningRateDecay(base_lr=self.initial_lr, drop=.94, epochs_drop=10)
- self.epochs = 3 # 350
- self.batch_size = int(256 * 2)
+ self.dropout_rate = .35
+ self.regularizer = keras.regularizers.l2(0.01)
+ self.initial_lr = 1e-4
+ # self.initial_lr = 0.01
+ # self.lr_decay = src.model_modules.keras_extensions.LearningRateDecay(base_lr=self.initial_lr, drop=.94, epochs_drop=10)
+ self.epochs = 300
+ self.batch_size = int(256 *2)
self.activation = keras.layers.ELU
self.padding = "SymPad2D"
# apply to model
self.set_model()
self.set_compile_options()
- self.set_custom_objects(loss=self.compile_options["loss"], Padding2D=Padding2D)
+ self.set_custom_objects(loss=self.compile_options["loss"][0], Padding2D=Padding2D)
def set_model(self):
@@ -531,26 +532,26 @@ class MyPaperModel(AbstractModelClass):
first_filters = 16
conv_settings_dict1 = {
- 'tower_1': {'reduction_filter': 8, 'tower_filter': 16 * 2, 'tower_kernel': (3, 1),
+ 'tower_1': {'reduction_filter': 8, 'tower_filter': 16 * 2 , 'tower_kernel': (3, 1),
'activation': activation},
- 'tower_2': {'reduction_filter': 8, 'tower_filter': 16 * 2, 'tower_kernel': (5, 1),
+ 'tower_2': {'reduction_filter': 8, 'tower_filter': 16 * 2 , 'tower_kernel': (5, 1),
'activation': activation},
- 'tower_3': {'reduction_filter': 8, 'tower_filter': 16 * 2, 'tower_kernel': (1, 1),
+ 'tower_3': {'reduction_filter': 8, 'tower_filter': 16 * 2 , 'tower_kernel': (1, 1),
'activation': activation},
# 'tower_4':{'reduction_filter':8, 'tower_filter':8*2, 'tower_kernel':(7,1), 'activation':activation},
}
pool_settings_dict1 = {'pool_kernel': (3, 1), 'tower_filter': 16, 'activation': activation}
conv_settings_dict2 = {
- 'tower_1': {'reduction_filter': 64, 'tower_filter': 32 * 2 * 2, 'tower_kernel': (3, 1),
+ 'tower_1': {'reduction_filter': 64, 'tower_filter': 32 * 2 *2 , 'tower_kernel': (3, 1),
'activation': activation},
- 'tower_2': {'reduction_filter': 64, 'tower_filter': 32 * 2 * 2, 'tower_kernel': (5, 1),
+ 'tower_2': {'reduction_filter': 64, 'tower_filter': 32 * 2 *2, 'tower_kernel': (5, 1),
'activation': activation},
- 'tower_3': {'reduction_filter': 64, 'tower_filter': 32 * 2 * 2, 'tower_kernel': (1, 1),
+ 'tower_3': {'reduction_filter': 64, 'tower_filter': 32 * 2 *2, 'tower_kernel': (1, 1),
'activation': activation},
# 'tower_4':{'reduction_filter':8*2, 'tower_filter':16*2, 'tower_kernel':(7,1), 'activation':activation},
}
- pool_settings_dict2 = {'pool_kernel': (3, 1), 'tower_filter': 32 * 2, 'activation': activation}
+ pool_settings_dict2 = {'pool_kernel': (3, 1), 'tower_filter': 32 *2, 'activation': activation}
conv_settings_dict3 = {
'tower_1': {'reduction_filter': 64 * 2, 'tower_filter': 32 * 4, 'tower_kernel': (3, 1),
@@ -584,10 +585,10 @@ class MyPaperModel(AbstractModelClass):
regularizer=self.regularizer,
batch_normalisation=True,
padding=self.padding)
- # out_minor1 = flatten_tail(X_in, 'minor_1', False, self.dropout_rate, self.window_lead_time,
- # self.activation, 32, 64)
+
+
out_minor1 = flatten_tail(X_in, inner_neurons=64, activation=activation, output_neurons=self.window_lead_time,
- output_activation='linear', reduction_filter=32,
+ output_activation='linear', reduction_filter=32*2 ,
name='minor_1', bound_weight=False, dropout_rate=self.dropout_rate,
kernel_regularizer=self.regularizer
)
@@ -610,10 +611,15 @@ class MyPaperModel(AbstractModelClass):
)
self.model = keras.Model(inputs=X_input, outputs=[out_minor1, out_main])
+ # self.model = keras.Model(inputs=X_input, outputs=out_main)
def set_compile_options(self):
- self.optimizer = keras.optimizers.SGD(lr=self.initial_lr, momentum=0.9)
- self.compile_options = {"loss": [keras.losses.mean_squared_error, keras.losses.mean_squared_error],
- "metrics": ['mse', 'mea']}
+ # self.optimizer = keras.optimizers.SGD(lr=self.initial_lr, momentum=0.9)
+ self.compile_options = {"optimizer": keras.optimizers.adam(lr=self.initial_lr, amsgrad=True),
+ "loss": [l_p_loss(4), keras.losses.mean_squared_error],
+ #"loss": [keras.losses.mean_squared_error,keras.losses.mean_squared_error],
+ "metrics": ['mse'],
+ "loss_weights": [.01, .99],
+ }
--
GitLab