在训练深度学习模型时,通常将数据集切分为训练集和验证集.Keras提供了两种评估模型性能的方法:
- 使用自动切分的验证集
- 使用手动切分的验证集
一.自动切分
在Keras中,可以从数据集中切分出一部分作为验证集,并且在每次迭代(epoch)时在验证集中评估模型的性能.具体地,调用model.fit()训练模型时,可通过validation_split参数来指定从数据集中切分出验证集的比例.
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
from sklearn.datasets import load_iris
iris = load_iris()
iris_X = iris.data
iris_y = iris.target
np.random.seed(0)
np.random.shuffle(iris_X)
np.random.seed(0)
np.random.shuffle(iris_y)
np.random.seed(7) # fix random seed for reproducibility
# create model
model = Sequential()
model.add(Dense(8, input_dim=4, activation='relu'))
model.add(Dense(6, activation='relu'))
model.add(Dense(4, activation='softmax'))
# Compile model
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# Fit the model
model.fit(iris_X, iris_y, validation_split=0.20, epochs=80, batch_size=10)
validation_split:0~1之间的浮点数,用来指定训练集的一定比例数据作为验证集。验证集将不参与训练,并在每个epoch结束后测试的模型的指