帮助 Keras 顺序模型输出

数据挖掘 机器学习 Python
2022-03-17 02:52:08

我已经为 MNIST 数据集训练了一个带有 keras 的顺序模型,这是我使用的代码。

# Create the model
model = Sequential()

# Add the first hidden layer
model.add(Dense(50, activation='relu', input_shape = (X.shape[1],)))

# Add the second hidden layer
model.add(Dense(50, activation='relu'))

# Add the output layer
model.add(Dense(10, activation = 'softmax'))

# Compile the model
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics = ['accuracy'])

# Fit the model
model.fit(X, y, validation_split=.3)

输出:

Train on 1750 samples, validate on 750 samples
1750/1750 [==============================] - 0s - loss: 0.1002 - acc: 0.9811 - val_loss: 0.3777 - val_acc: 0.8800

你能解释一下什么是loss, acc , val_loss, val_acc吗?我如何从输出中的这些指标中了解我的模型性能。请尽可能解释。

1个回答

首先将解释术语损失、acc、val_loss、val_acc,然后进入评估模型性能。

损失 - 该指标用于了解网络对训练数据的预测与实际值的对比。鉴于您使用分类交叉熵作为您的损失机制,您的损失实际上告诉您您的预测与真实分类值有多近或多远。

Acc - 是网络在训练数据上的准确度。在对 1750 个样本进行训练后,您的网络可以以 0.98 的准确度进行准确预测。

Val_loss,Val_acc - 指标相同,但在验证数据(即不属于训练数据集的数据)上进行评估,这将帮助您评估网络在未训练数据上的表现,有点模仿当您的网络在所选数据集上部署在现实世界中时,您的网络将如何工作。

上述指标可帮助您了解网络在每个 epoch 的执行情况,让您了解如何提高性能。

如何执行模型性能:

模型性能要求您创建/管理训练数据集,这些数据集将描述您在部署模型以进行实际预测时在现实世界中的预期。

您将根据您要解决的问题查看测试准确度、精确度、召回率、f1 分数、混淆矩阵和其他指标,以真正评估您的模型性能。

希望这能回答你的问题。享受深度学习网络的乐趣 :)