我正在尝试使用RandomizedSearchCV优化我的模型的超参数。但是,即使我定义了很少的迭代,它也不会停止运行。有人能帮我吗?我正在使用的代码如下所示:
def build_classifier(optimizer, units, alpha, l1):
model = tf.keras.Sequential()
model.add(tf.keras.layers.LSTM(units, kernel_regularizer = regularizers.l1(l1 = l1), input_shape= (None, n_features), return_sequences = True))
model.add(tf.keras.layers.LSTM(units, kernel_regularizer = regularizers.l1(l1 = l1), return_sequences = True))
model.add(tf.keras.layers.LSTM(units, kernel_regularizer = regularizers.l1(l1 = l1), return_sequences = False))
model.add(tf.keras.layers.Dense(5))
model.compile(optimizer = optimizer, loss = 'mae')
return model
from keras.wrappers.scikit_learn import KerasRegressor
parameters ={'optimizer':['adam','rmsprop','SGD'],
'units':[4,8,16,32,64,128],
'alpha':[0.1,0.2,0.3,0.4,0.5],
'l1':[0.00001,0.0001,0.001,0.01,0.1],
'epochs':[2,5]}
classifier = KerasRegressor(build_fn = build_classifier)
from sklearn.model_selection import RandomizedSearchCV
random_search = RandomizedSearchCV(estimator = classifier, param_distributions = parameters, n_iter = 1, n_jobs = 1, cv = 5, scoring = 'neg_mean_absolute_error')
y_hyperparameters = np.reshape(y_hyperparameters, (y_hyperparameters.shape[0], n_features))
random_search.fit(X_hyperparameters, y_hyperparameters, verbose = 1, batch_size = 1, validation_data = (test_X_hyperparameters, test_y_hyperparameters), shuffle = False)
print('Random Best score:', random_search.best_score_)
print('Random Best params:', random_search.best_params_)发布于 2022-05-06 20:16:48
误差的一个可能原因是完全不同的算法的混合和匹配:回归器、分类器和序列模型(即LSTM)。您导入一个回归器,将它命名为一个分类器,实际的模型是一个LSTM。
https://datascience.stackexchange.com/questions/99515
复制相似问题