Keras Early Stopping 教程 发表于 2019-05-08 | 分类于 dl | 评论数: 1234567891011121314151617181920212223242526272829from sklearn.datasets import make_moonsfrom keras.models import Sequentialfrom keras.layers import Densefrom keras.callbacks import EarlyStoppingfrom keras.callbacks import ModelCheckpointfrom matplotlib import pyplotfrom keras.models import load_model# 生成2D分类数据集X, y = make_moons(n_samples=100, noise=0.2, random_state=1)# 切割训练/测试集n_train = 30trainX, testX = X[:n_train, :], X[n_train:, :]trainy, testy = y[:n_train], y[n_train:]# 定义模型model = Sequential()model.add(Dense(500, input_dim=2, activation='relu'))model.add(Dense(1, activation='sigmoid'))model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])# 设置early stopes = EarlyStopping(monitor='val_loss', mode='min', verbose=1, patience=200) # patience表示在n个epoch上没有提升时停止mc = ModelCheckpoint('best_model.h5', monitor='val_acc', mode='max', verbose=1, save_best_only=True)# 训练模型history = model.fit(trainX, trainy, validation_data=(testX, testy), epochs=4000, verbose=0, callbacks=[es, mc])# 加载模型saved_model = load_model('best_model.h5')# 评估模型性能_, train_acc = saved_model.evaluate(trainX, trainy, verbose=0)_, test_acc = saved_model.evaluate(testX, testy, verbose=0)print('Train: %.3f, Test: %.3f' % (train_acc, test_acc)) [1].https://machinelearningmastery.com/how-to-stop-training-deep-neural-networks-at-the-right-time-using-early-stopping/ 坚持原创技术分享,您的支持将鼓励我继续创作! 打赏 微信支付