0

我正在尝试在我的数据上使用多个 LSTM 模型,例如 Vanilla、Stacked、Bi-directional,但找到最佳超参数的成本非常高。在 Colab Pro 上使用 TPU 时,我的程序在运行了 10 多个小时后崩溃了,我尝试了多次。

这是我的代码:

epochs = [10, 25, 50]
activations = ['tanh', 'relu', 'selu']
layers1 = [32, 64, 100]
layers2 = [32, 64, 100]
layers3 = [32, 64, 100]
optimizers = ['adam', 'sgd', 'rmsprop']
ep_bi=[]
act_bi=[]
opt_bi=[]
lay1_bi=[]
lay2_bi=[]
lay3_bi=[]
rmse_bi=[]
map_bi=[]

for epoch in epochs:
  for activation in activations:
    for layer1 in layers1:
      for layer2 in layers2:
        for layer3 in layers3:
          for optimizer in optimizers:
            print(epoch)
            print(activation)
            print(layer1)
            print(layer2)
            print(layer3)
            print(optimizer)
            # define model
            model_bi_lstm = Sequential()
            model_bi_lstm.add(Bidirectional(LSTM(layer1, activation=activation, use_bias=True), input_shape=(n_step, n_features)))
            model_bi_lstm.add(Bidirectional(LSTM(layer2, activation=activation, use_bias=True), input_shape=(n_step, n_features)))
            model_bi_lstm.add(Bidirectional(LSTM(layer3, activation=activation, use_bias=True), input_shape=(n_step, n_features)))
            model_bi_lstm.add(Dense(1))
            model_bi_lstm.compile(optimizer=optimizer, loss='mse')

            # fit model
            history = model_bi_lstm.fit(X, y, epochs=epochs, verbose=1)

            #Summary of the model
            print(model_bi_lstm.summary())

这不是整个代码。

我想知道是否可以使用 Keras Tuner 为这种情况找到最佳超参数?我做了我的研究,但没有找到任何东西,不过 Keras Tuner 可以用来优化分类模型。

任何建议,将不胜感激。

4

0 回答 0