簡體   English   中英

在同一圖上繪制訓練、驗證和測試集

[英]Plot training, validation and test set on same plot

這就是我分割數據的方式

(X, y), (X_test, y_test) = mnist.load_data()
X_train, X_val, y_train, y_val = train_test_split(X, 
                                                  y, 
                                                  test_size=0.1, 
                                                  random_state=1)

下面的代碼繪制了 X_train 和 X_val,我想添加 X_test 的情節

history = model.fit(
    x= X_train,
    y= y_train,
    epochs = 10,
    validation_data = (X_val, y_val),
    batch_size = 128
)

from matplotlib import pyplot as plt


plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'val'], loc='upper left')
plt.show()

是否也可以在此test_loss繪制test_loss以在同一圖中獲得所有三個的概覽?

沒有history.history['test_loss']

在此處輸入圖片說明

您還沒有計算 test_loss。 您首先需要使用 X_test 預測一些標簽,然后根據預測值和 y_test 計算損失。 或者,您可以使用評估直接執行此操作:

test_loss = model.evaluate(X_test, y_test)

您不能將它們一起繪制,因為 test_loss 是在訓練結束時計算一次的單個值,而不是像驗證那樣的每個時期。

盡管如此,您不應在訓練中使用 X_test 和 y_test,因為您將在整個可用數據上進行訓練,因此您無法再進行測試。

X_test 和 y_test 僅在所有步驟結束時使用,以測試模型的性能。

在您進行訓練時,驗證數據用於“測試數據”的目的。 完成所有訓練和優化后,您可以在訓練廣告驗證的組合數據集上重新訓練網絡,並使用生成的網絡在測試數據集 (X_test, y_test) 上測試其性能

暫無
暫無

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

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