首页 > 解决方案 > keras model.fit 函数打印的准确率与验证集或训练集有关吗?

问题描述

我正在使用 tf.Keras 训练一个 CNN 模型,我将训练集分为训练集和验证集,我想可视化验证集的准确性。

这是代码,所以请告诉我打印的准确性是否与训练集或验证集有关?

model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])
model.fit( x= X_train.reshape(X_train.shape[0],280,252,1),
           y= train_Y_one_hot,           
           epochs=20,
           batch_size=64,
           validation_data=(X_val.reshape(X_val.shape[0],280,252,1),val_Y_one_hot),
           verbose=1)

输出:训练 103658 个样本,验证 25915 个样本 Epoch 1/20 28288/103658 [=======>.......] - ETA:40:01 - 损失:0.5309 - 准确度:0.9063

标签: pythontensorflowkerasconv-neural-network

解决方案


如果您想将准确性可视化为一个图,您可以获得每个时期的验证精度和损失列表,如下所示(我只运行了 5 个时期,所以我得到每个val_accuracy和5 个值val_loss

model.fit(x_train, y_train, epochs=5,validation_data=(x_test,y_test))
model.evaluate(x_test, y_test)


# access validation accuracy for each epoch
acc = model.history.history['val_accuracy']
print(acc) # [0.9573, 0.9696, 0.9754, 0.9762, 0.9784]

# access validation loss for each epoch
loss_val = model.history.history['val_loss']
print(loss_val) # [0.13892182569280268, 0.10223265058882534, 0.08262962606661022, 0.08026109958332964, 0.07378015918848105]

推荐阅读