其中verbose是日志等级: verbose:日志显示 verbose = 0 为不在标准输出流输出日志信息 verbose = 1 为输出进度条记录 verbose = 2 为每个epoch输出一行记录 注意: 默认为 1
Train on 48000 samples, validate on 12000 samples Epoch 1/5 48000/48000 - 4s - loss: 0.9353 - accuracy: 0.7783 - val_loss: 0.3760 - val_accuracy: 0.9023 Epoch 2/5 48000/48000 - 1s - loss: 0.3890 - accuracy: 0.8895 - val_loss: 0.2828 - val_accuracy: 0.9208 Epoch 3/5 48000/48000 - 1s - loss: 0.3156 - accuracy: 0.9080 - val_loss: 0.2428 - val_accuracy: 0.9312 Epoch 4/5 48000/48000 - 1s - loss: 0.2757 - accuracy: 0.9200 - val_loss: 0.2166 - val_accuracy: 0.9382 Epoch 5/5 48000/48000 - 1s - loss: 0.2461 - accuracy: 0.9281 - val_loss: 0.1941 - val_accuracy: 0.9457
查看训练过程中相关指标的值:可用于后期画图使用 train_history.history{‘loss’: [0.9352779900034268, 0.3889504156385859, 0.3156389035284519, 0.27566256585220494, 0.24609261999527612], ‘accuracy’: [0.7783125, 0.8895208, 0.9079792, 0.91997916, 0.928125], ‘val_loss’: [0.37601099784175557, 0.28281597085297105, 0.24280174300074578, 0.21655768944571416, 0.19407257350782553], ‘val_accuracy’: [0.9023333, 0.92083335, 0.93116665, 0.9381667, 0.9456667]}
画图: def show_train_history(history, train, validation): plt.plot(history.history[train]) plt.plot(history.history[validation]) plt.title('Train History') plt.xlabel('epoch') plt.ylabel('accuracy') plt.legend(['validation','train'],loc='upper left') 网络评估: scores = network.evaluate(x_test_nor, y_test_onthot) 类别预测 prediction = network.predict_classes(x_test_nor) 查看分类结果 分类表: pd.crosstab(y_test, prediction, rownames=['label'], colnames=['prediction'])预测错误的样本位置:
df = pd.DataFrame({'label':y_test,'predict':prediction}) print(df[(df.label==5)&(df.predict==3)]) #查看是5预测错成3的数据位置