簡體   English   中英

keras model.fit 函數打印的精度與驗證集或訓練集有關嗎?

[英]is the accuracy printed by keras model.fit function related to validation set or training set?

我正在使用 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 [=======>......................] - 預計到達時間:40:01 - 損失:0.5309 - 准確度:0.9063

如果您想將准確度可視化為 plot,您可以獲得每個 epoch 的驗證准確度和損失列表,如下所示(我只運行了 5 個 epoch,所以我為每個val_accuracyval_loss得到 5 個值)

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]

這是訓練損失和准確性。 您將在 epoch 結束時獲得驗證集的結果。

model 的准確度完全取決於訓練數據、訓練數據中所做的預處理以及分類器的類型及其參數。

訪問訓練准確性和驗證准確性

accuracy = model.history.history["accuracy"]
val_accuracy = model.history.history["val_accuracy"]

訪問訓練損失和驗證損失

loss = model.history.history["loss"]
val_loss = model.history.history["val_loss"]

繪制訓練准確性和驗證准確性

plt.plot(accuracy, label="accuracy")
plt.plot(val_accuracy, label="validation accuracy")
plt.ylabel("Accuracy")
plt.xlabel("Epoch")
plt.legend()
plt.show()

訓練准確率和驗證准確率圖

繪制訓練損失和驗證損失

plt.plot(loss, label="loss")
plt.plot(val_loss, label="validation loss")
plt.ylabel("Loss")
plt.xlabel("Epoch")
plt.legend()
plt.show()

訓練損失和驗證損失圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM