Я пытаюсь использовать сканирование и развертывание из Talos, но получаю IndexError. Используя функцию модели ...
def fluctuationModel(__XTraData__, __yTraData__, __XValData__, __yValData__, __tunePara__):
# SET RANDOM SEED FOR REPRODUCABILITY
np.random.seed(111)
# GENERATE MODEL
DANNMode = Sequential()
# DEFINE FIRST LAYER
DANNMode.add(Dense(3, input_dim = __XTraData__.shape[1], kernel_initializer = __tunePara__['init'], activation = __tunePara__['acti']))
DANNMode.add(Dropout(__tunePara__['drop']))
# DEFINE DEEP LAYERS
DANNMode.add(Dense(__tunePara__['neur'], kernel_initializer = __tunePara__['init'], activation = __tunePara__['acti']))
DANNMode.add(Dropout(__tunePara__['drop']))
DANNMode.add(Dense(__tunePara__['neur'], kernel_initializer = __tunePara__['init'], activation = __tunePara__['acti']))
DANNMode.add(Dropout(__tunePara__['drop']))
DANNMode.add(Dense(__tunePara__['neur'], kernel_initializer = __tunePara__['init'], activation = __tunePara__['acti']))
DANNMode.add(Dropout(__tunePara__['drop']))
DANNMode.add(Dense(__tunePara__['neur'], kernel_initializer = __tunePara__['init'], activation = __tunePara__['acti']))
DANNMode.add(Dropout(__tunePara__['drop']))
DANNMode.add(Dense(__tunePara__['neur'], kernel_initializer = __tunePara__['init'], activation = __tunePara__['acti']))
DANNMode.add(Dropout(__tunePara__['drop']))
DANNMode.add(Dense(__tunePara__['neur'], kernel_initializer = __tunePara__['init'], activation = __tunePara__['acti']))
DANNMode.add(Dropout(__tunePara__['drop']))
DANNMode.add(Dense(__tunePara__['neur'], kernel_initializer = __tunePara__['init'], activation = __tunePara__['acti']))
DANNMode.add(Dropout(__tunePara__['drop']))
DANNMode.add(Dense(__tunePara__['neur'], kernel_initializer = __tunePara__['init'], activation = __tunePara__['acti']))
DANNMode.add(Dropout(__tunePara__['drop']))
# DEFINE LAST LAYER
DANNMode.add(Dense(1, kernel_initializer = __tunePara__['init'], activation = __tunePara__['acti']))
DANNMode.add(Dropout(__tunePara__['drop']))
# COMPILE MODEL
DANNMode.compile(optimizer = __tunePara__['opti'](lr_normalizer(__tunePara__['lr'], __tunePara__['opti'])), loss = __tunePara__['loss'], metrics = [rmse])
# FIT MODEL
modeHist = DANNMode.fit(x = __XTraData__, y = __yTraData__, validation_data = [__XValData__, __yValData__], epochs = __tunePara__['epoc'], batch_size = __tunePara__['batc'], verbose = 0, shuffle = False)
return modeHist, DANNMode
и используя параметры, как показано ниже ...
tunePara = {'lr': (0.1, 10, 10),
'acti': ['swish'],
'batc': [10, 20, 30, 40, 50],
'drop': [0.05, 0.10, 0.15, 0.20, 0.25],
'epoc': [1],
'init': ['random_normal'],
'loss': ['cosine_similarity'],
'neur': [10],
'opti': [Adam]
}
и используя следующую пользовательскую функцию активации и метрику c, как показано ниже ...
# DEFINE "SWISH" ACTIVATION FUNCTION
def swish(__inpuData__, __traiBeta__ = 1):
return (sigmoid(__traiBeta__ * __inpuData__) * __inpuData__)
# DEFINE RMSE METRIC
def rmse(__trueOutp__, __predOutp__):
return sqrt(mean(square(__predOutp__ - __trueOutp__), axis = -1))
при вызове Scan, а затем Deploy, как указано ниже ...
scanObje = talos.Scan(x = XTraData, y = yTraData, x_val = XValData, y_val = yValData, val_split = 0.25, params = scanPara, model = fluctuationModel, experiment_name = 'flucPredData', reduction_metric = 'rmse', minimize_loss = True, clear_session = True, save_weights = True, fraction_limit = 0.05)
talos.Deploy(scan_object = scanObje, model_name = 'flucPredMode', metric = 'rmse', asc = True)
Я получаю следующую ошибку ...
File "/Users/CODE/pythonPlayground/exercises/apollo_V25/apollo_WORKER_predictFluctuation.py", line 580, in apollo_WORKER_generateHyperparameterScanPlatform
talos.Deploy(scan_object = scanObje, model_name = 'flucPredMode', metric = 'rmse', asc = True)
File "/Users/CODE/base_env/lib/python3.7/site-packages/talos/commands/deploy.py", line 39, in __init__
self.model = activate_model(scan_object, self.best_model)
File "/Users/CODE/base_env/lib/python3.7/site-packages/talos/utils/best_model.py", line 20, in activate_model
model = model_from_json(self.saved_models[model_id])
IndexError: list index out of range
Может ли кто-нибудь укажите мне, пожалуйста, что я делаю не так?