Hag*_*ard 5 python keras tensorflow
我目前正在训练一个 Keras 模型,其相应的拟合调用如下所示:
model.fit(X,y_train,batch_size=myBatchSize,epochs=myAmountOfEpochs,validation_split=0.1,callbacks=myCallbackList)
Run Code Online (Sandbox Code Playgroud)
Keras Github 页面上的这条评论解释了“validation_split=0.1”的含义:
验证数据不一定取自每个类,它只是数据的最后 10%(假设您要求 10%)。
我现在的问题是:是否有一种简单的方法可以随机选择(例如)训练数据的 10% 作为验证数据?我想使用随机选取的样本的原因是,最后 10% 的数据不一定包含我的案例中的所有类。
非常感谢。
感谢Matias Valdenegro的评论,我受到启发,进一步研究并针对我的问题提出了以下解决方案:
from sklearn.model_selection import train_test_split
[input: X and Y]
XTraining, XValidation, YTraining, YValidation = train_test_split(X,Y,stratify=Y,test_size=0.1) # before model building
[The model is built here...]
model.fit(XTraining,YTraining,batch_size=batchSize,epochs=amountOfEpochs,validation_data=(XValidation,YValidation),callbacks=callbackList)
Run Code Online (Sandbox Code Playgroud)