如何解决Keras GridSearchCV 最好是负数
我需要使用 kesar tensorflow 创建一个神经网络。我还需要对指标使用“均方误差”。我已经对参数进行了必要的修改,以便它适合模型。我知道 MSE 输出不应该是负值,但我不确定为什么我的 gridsearchcv 的“最佳”是负值。我的 MSE 和损失也异常高。我已将指标更改为“mse”并将激活更改为“线性”,因为它需要一个合理的参数值。下面是我的代码:
我的模型功能:
def create_my_model(hidden_layers = 0,l1 =0.1,l2 = 0.01):
model = Sequential()
for i,nodes in enumerate(hidden_layers):
if i == 0:
model.add(Dense(nodes,input_dim = 9,activation = 'sigmoid',kernel_regularizer=keras.regularizers.l1_l2(l1,l2)))
else:
model.add(Dense(nodes,l2)))
model.add(Dense(1,activation = 'linear')) #outer layer
model.compile(loss="mse",optimizer="adam",metrics=["mse"])
return model
我的 gridsearchcv 实现:
model = KerasClassifier(build_fn=create_my_model)
hidden_layers = [[15,14,13,12,11,10],[20,19,18,17,16,15],[15,13],[14,10,9]]
l1 = [0.001,0.01]
l2 = [0.001,0.01]
#activi = ['relu','sigmoid','tanh','elu']
parameter_grid = dict(hidden_layers = hidden_layers,l1=l1,l2=l2)
mse = make_scorer(mean_squared_error,greater_is_better=False)
mygrid = gridsearchcv(estimator = model,param_grid=parameter_grid,n_jobs = -1,scoring = mse)
grid_result = mygrid.fit(classification,target)
我的输出:
639/639 [==============================] - 2s 2ms/step - loss: 2176786.7854 - mse: 2176786.5518
Best: -0.206580 using {'hidden_layers': [15,'l1': 0.001,'l2': 0.001}
我所做的更改
我已将评分更改为“neg_mean_squared_error”,但我的最佳评分仍然为负:
mygrid = gridsearchcv(estimator = model,scoring ='neg_mean_squared_error')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。