首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras model.evaluate()

Keras model.evaluate()
EN

Stack Overflow用户
提问于 2020-09-24 21:10:37
回答 2查看 740关注 0票数 0

我已经使用Keras实现了一个神经网络,现在我想尝试不同的输入特征组合,并进行超参数调整。到目前为止,我使用MSE作为损失,使用MAE作为度量。我的代码如下所示:

代码语言:javascript
复制
#Create the model
model = Sequential()

#Add first hidden layer
model.add(Dense(units=10, input_dim=n_features, activation='relu')) 

#Add output layer
model.add(Dense(units=1, activation='sigmoid'))

model.summary()

model.compile(optimizer='adam', loss='mse', metrics=['mae'])

history = model.fit(x_train, y_train, batch_size=32, epochs=100, validation_data=(x_val, y_val))

result = pd.DataFrame(history.history)
result.head(5)

这给出了训练损失和mae,以及每个时期之后的验证损失和mae。

现在,当比较不同的网络时,我想采用单个损失值进行比较。我不确定是否可以只使用model.evaluate(),以及它能做什么。

代码语言:javascript
复制
#store and print validation loss and validation mae
val_loss = model.evaluate(x_val, y_val, verbose=0)[0]
val_mae = model.evaluate(x_val, y_val, verbose=0)[1]
print('validation loss (MSE):', val_loss, '\nvalidation MAE:', val_mae)

我从model.evaluate()得到的输出并不是所有100个时期的最小损失或MAE。那么model.evaluate()做了什么呢?

EN

回答 2

Stack Overflow用户

发布于 2020-09-24 21:21:48

当你训练模型时,keras记录每个时期(数据集的迭代)之后的损失。很有可能在训练过程中,你的模型找到了一个好的最小值(比如在50年代),但随后又跳到了另一个稍差的最小值(在99年代),并在那里停止了训练。

如果NNs参数(不是超参数)等于50个时期,那么取所有100个时期的最小损失将给出损失。

model.evaluate()只是接受你的神经网络的现状(在100年代),计算预测,然后计算损失。

因此,最小的损失可能比model.evaluate()要小(尽管对于好的超参数来说只是轻微的损失),但是model.evaluate()会告诉您NN当前所在的位置。

票数 1
EN

Stack Overflow用户

发布于 2020-09-25 22:02:55

当您使用sigmoid作为最后一个激活函数时,MSE 不是正确的损失函数。

我建议'binary_crossentrophy'或者在你的最后一层不使用任何激活函数,使用'mse‘作为你的损失函数。

代码语言:javascript
复制
-MULTI LABEL CLASSIFICATION
activation: sigmoid 
loss: binary_crossentrophy

-MULTI CLASS CLASSIFICATION
activation: softmax
loss: categorical_crossentrophy

REGRESSION (-inf, +inf)
Activation: None
loss: mse

在分类和标签分类中,你都是在检查你的预测正确的次数,而当使用MSE时,你是在检查与实际正确值的距离。

所以它是一种不同类型的测量误差。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64047194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档