Ошибка IndexError при использовании Deploy в Talos - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь использовать сканирование и развертывание из 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

Может ли кто-нибудь укажите мне, пожалуйста, что я делаю не так?

...