keras model.fit 函数打印的准确度与验证集或训练集有关吗?

Yac*_*ine 7 python conv-neural-network keras tensorflow

我正在使用 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)
Run Code Online (Sandbox Code Playgroud)

输出:在 103658 个样本上进行训练,在 25915 个样本上进行验证 Epoch 1/20 28288/103658 [=======>.................................] - 预计到达时间:40:01 - 损失:0.5309 - 准确度:0.9063

Vis*_*ati 3

如果您想将准确性可视化为图表,您可以获取每个时期的验证准确性和损失的列表,如下所示(我只运行了 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]
Run Code Online (Sandbox Code Playgroud)