2017-09-29 256 views
-2

我已經看了幾個教程,使用卷積神經網絡深入Keras深入學習。在本教程中(在Keras的官方文檔),該數據集MNIST加載像這樣:Keras中x_train和x_test有什麼區別?

from keras.datasets import mnist 

(x_train, y_train), (x_test, y_test) = mnist.load_data() 

然而,上訴人沒有作出解釋,爲什麼我們有兩個數據元組。我的問題是:什麼x_trainy_train以及他們如何從他們x_testy_test同行有什麼不同?

+0

我不知道該子集的內容是不同的,但一個是培訓,另一種是用於測試。你想使用不同的數據進行測試,以確保你沒有過度使用。編輯:至於爲什麼他們以這種方式分開對所有來到一起,你只是自己切片,我不知道。 –

+1

[在神經網絡中訓練,驗證和測試集有什麼區別?](https:// stackoverflow。問題/ 2976452 /什麼是差異之間的火車驗證和測試設置在神經網絡) – fuglede

回答

3

訓練集是用於訓練模型的數據集的子集。

  • x_train是訓練數據集。
  • y_train是一組標籤來在x_train所有數據。

測試集是數據集的一個子集,您可以在模型經過驗證集初始審覈後用來測試您的模型。

  • x_test是測試數據集。
  • y_test是一組標籤來在x_test所有數據。

驗證集是您用來調整超參數的數據集的一個子集(與訓練集分開)。

  • 您列出的示例沒有提到驗證集。

我在Youtube上做了一個Deep Learning with Keras playlist。它包含了開始使用Keras的基礎知識,還有一些視頻演示瞭如何將圖像組織成火車/有效/測試集,以及如何讓Keras爲您創建驗證集。看到這個實現可能會幫助你更好地掌握這些不同數據集在實踐中的使用方式。

+0

感謝您的播放列表鏈接!我會看看。 –

1

的所有機器學習算法的最終目標是推廣到新的數據。如果您根據所有數據創建模型,則不會針對模型如何對新數據執行度量。爲了解決這個問題,我們通常會將列車數據分爲三部分,列車數據集,開發/調整數據集和測試數據集。讓我們舉個例子把數據分成兩部分,訓練和測試。在這種情況下,您首先將數據分爲60/70/80%火車和40/30/20測試,並應用10倍交叉驗證和網格搜索,這對調整也很有幫助。請注意,直到這一次你正在訓練和調整你的訓練數據(在調試階段你永遠不會碰到你測試數據,甚至沒有看到它的分佈或任何東西)。 一旦您生成了模型,就可以在測試數據上運行它,並在測試數據上獲得模型的性能。這將用作未知數據模型的性能指標。