【发布时间】:2020-05-19 17:27:44
【问题描述】:
我一直在寻找在 Python 中使用 TensorFlow 调整 ANN 模型超参数的资源,到目前为止,我遇到的每个解决方案/讨论都涉及分类输出数据集的分类问题,并使用简单的逻辑回归模型或 GridSearch sklearn(到目前为止,仅处理二进制输出的那些)。
但是,我的问题是连续输出,我试图实现 GridSearch,但遇到了错误:
"ValueError: Continuous is not supported"
- 我不确定当输出变量是连续的时GridSearch是否有效,但即使没有,也必须有一些其他函数可以帮助我优化我的参数?
- 在这种情况下,我们是否需要标准化输入和输出变量?对于连续输入和输出变量,最好的方法是什么?
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import GridSearchCV
from keras.models import Sequential
from keras.layers import Dense
def build_classifier(optimizer):
classifier = Sequential()
classifier.add(Dense(10, input_dim = 5, activation = 'relu', kernel_initializer="uniform"))
classifier.add(Dense(5, activation = 'relu', kernel_initializer = 'uniform'))
classifier.add(Dense(1, activation = 'linear', kernel_initializer = 'uniform'))
classifier.compile(optimizer = optimizer, loss = 'mse', metrics = ['accuracy'])
return classifier
classifier = KerasClassifier(build_fn = build_classifier)
parameters = {'batch_size': [25, 32],
'epochs': [100, 500],
'optimizer': ['adam','rmsprop']}
grid_search = GridSearchCV(estimator = classifier, param_grid = parameters, scoring = 'accuracy', cv = 3)
grid_search = grid_search.fit(X_train, y_train)
best_parameters = grid_search.best_params_
best_accuracy = grid_search.best_score_
【问题讨论】:
-
请分享所有相关代码/数据。请参阅:minimal reproducible example、How to Ask、help center。
-
@AMC 我这样做了。很抱歉给您带来不便。
-
您正在使用包装器 KerasClassifier,您应该使用 KerasRegressor。
-
@GuilhermeMarques 非常感谢。我会相应地更改代码。
标签: python tensorflow neural-network grid-search hyperparameters