some tips

DL中的訓練集、驗證集、驗證集  (建議比例:6:2:2 或 8:1:1)

訓練集(Training set):學習樣本數據集,通過匹配一些參數來建立一個分類器。建立一種分類的方式,主要是用來訓練模型的。

驗證集(Validation set):對學習出來的模型,調整分類器的參數,如在神經網絡中選擇隱藏單元數。驗證集還用來確定網絡結構或控制模型複雜程度的參數。

測試集Test set:主要是測試訓練好的模型的分辨能力(識別率等)

不同set分割代碼實現:

split = np.random.rand(len(x))
    # x_train shape=(20930, 10064)
    train_flag = split <= 0.6
    x_train = x[train_flag,:]
    y_train = y[train_flag]
    valid_flag =(split  > 0.6) & (split <= 0.8)
    x_valid = x[valid_flag,:]
    y_valid = y[valid_flag]
    test_flag = split > 0.8
    x_test = x[test_flag,:]
    y_test = y[test_flag]


keras 實踐:

1.validation set

注:Keras中,驗證集劃分只要在fit函數裏設置validation_split的值就好了,這個對應了取訓練集中百分之幾的數據出來當做驗證集。但由於shuffle是在validation _split之後執行的,所以如果一開始訓練集沒有shuffle的話,有可能使驗證集全是負樣本。

hist=model.fit(train_set_x,train_set_y,batch_size=256,shuffle=True,nb_epoch=nb_epoch,validation_split=0.1)
2.test set

這裏注意evaluate和fit函數的默認batch_size都是32,自己記得修改。

print model.evaluate(test_set_x,test_set_y ,batch_size=256)

       

      關於在驗證集和測試集上的準確率差別,測試集準確率是否會比驗證集上下降很多,還不清楚。經一次實驗,準確率差不多。有待進一步學習。



參考:

深度學習框架Keras使用心得(http://blog.csdn.net/xjcvip007/article/details/52801216)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章