我正在尝试在我的数据上使用多个 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 可以用来优化分类模型。
任何建议,将不胜感激。