当我运行以下代码时,我收到
ValueError.模型未配置计算精度。模型没有被配置为计算精度。您应该通过
metrics=["accuracy"]
至model.compile()
方法。
我的代码。
def create_network():
model = models.Sequential()
model.add(layers.Dense(64, activation='relu', input_shape=(X.shape[1],)))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(1))
model.compile(optimizer='rmsprop',
loss='mse',
metrics=['mae'])
return model
from keras.wrappers.scikit_learn import KerasClassifier
neural_network = KerasClassifier(build_fn=create_network,
epochs=100,
batch_size=10,
verbose=1)
X=feature_normalization(X)[0]
from sklearn.model_selection import cross_val_score
cross_val_score(neural_network, X, y, cv=4)
但我不能在回归模型中使用精度。有什么线索可以告诉我怎么还能用 cross_val_score
而不像这里一样从头开始做k-fold交叉验证。
for i in range(k):
print(f'Processing fold # {i}')
X_test = X[i * num_val_samples: (i+1) * num_val_samples]
y_test = y[i * num_val_samples: (i+1) * num_val_samples]
X_train = np.concatenate([X[:i * num_val_samples],
X[(i+1) * num_val_samples:]],
axis=0)
y_trains = np.concatenate([y[:i * num_val_samples],
y[(i+1)*num_val_samples:]],
axis=0)
model = create_network()
model.fit(X_train,
y_train,
epochs=num_epochs,
batch_size=10,
verbose=1)
val_mse, val_mae = model.evaluate(X_test, y_test, verbose=1)
all_scores.append(val_mae)
Cross_val_score函数不能识别keras模型中使用的指标,默认为None,请尝试在cross_val_score中添加scoring='accuracy'。