我已经为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
你能解释什么是损失,acc,val_loss,val_acc?如何从输出中的这些指标中了解我的模型性能。如果可能的话请解释。
发布于 2018-11-10 11:03:31
首先对损失、acc、val_loss、val_acc等术语进行解释,然后对模型性能进行评价。
损失-这个指标是用来理解网络对训练数据和实际值的预测。假设你使用绝对交叉熵作为你的损失机制,你的损失实际上是告诉你你的预测离真正的分类值有多近或多远。
Acc --是网络对培训数据的准确性。经过1750个样本的训练,你的网络可以准确地预测0.98的准确性。
Val_loss,Val_acc --衡量标准是相同的,但评估的依据是验证数据,即不属于培训数据集的数据,这将帮助您评估网络对未经培训的数据的性能,在某种程度上模拟网络部署在所选数据集上的真实世界时的工作方式。
以上指标帮助您了解网络是如何执行每一个时代的,给您一个如何提高性能的想法。
如何执行模型性能:
模型性能要求您创建/管理培训数据集,该数据集将描述您在实际部署模型以进行实际预测时可以在现实世界中预期的内容。
您将根据您正在解决的问题查看测试的准确性、精确性、召回、f1分数、混淆矩阵和其他度量,以真正评估模型的性能。
希望这能回答你的问题。在深度学习网络中玩得开心:)
https://datascience.stackexchange.com/questions/41003
复制