CNN-进行训练

 当我们建立好深度学习模型后,就可以使用反向传播算法,进行训练.
1,定义训练方式
在训练模型之前,我们必须使用compile方法对训练模型进行设置,如下列指令:

model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
2.开始训练
使用model.fit进行训练,训练过程会存储在train_history变量中,这个训练需输入下列参数

model.fit(x=x_Train4D_normalize,y=y_TrainOneHot,validation_split=0.2,epochs=10,batch_size=300,verbose=2)
(1)输入训练数据参数

x=x_Train4D_normalize
y=y_TrainOneHot
(2)设置参数validation_split=0.2
训练之前KERAS会自动将数据分成80%训练数据,20%验证数据
(3)设置周期次数与每一批次项数

epochs=10
batch_size=300
(4)设置显示训练过程

verbose=2
Epoch 1/10
– 44s – loss: 0.4913 – acc: 0.8468 – val_loss: 0.0968 – val_acc: 0.9725
Epoch 2/10
– 45s – loss: 0.1405 – acc: 0.9589 – val_loss: 0.0637 – val_acc: 0.9802
Epoch 3/10
– 45s – loss: 0.1021 – acc: 0.9694 – val_loss: 0.0516 – val_acc: 0.9838
Epoch 4/10
– 44s – loss: 0.0846 – acc: 0.9751 – val_loss: 0.0463 – val_acc: 0.9856
Epoch 5/10
– 46s – loss: 0.0727 – acc: 0.9780 – val_loss: 0.0397 – val_acc: 0.9879
Epoch 6/10
– 45s – loss: 0.0649 – acc: 0.9805 – val_loss: 0.0395 – val_acc: 0.9884
Epoch 7/10
– 45s – loss: 0.0566 – acc: 0.9829 – val_loss: 0.0444 – val_acc: 0.9868
Epoch 8/10
– 45s – loss: 0.0520 – acc: 0.9841 – val_loss: 0.0335 – val_acc: 0.9898
Epoch 9/10
– 45s – loss: 0.0453 – acc: 0.9862 – val_loss: 0.0344 – val_acc: 0.9904
Epoch 10/10
– 45s – loss: 0.0431 – acc: 0.9868 – val_loss: 0.0347 – val_acc: 0.9903
从以上执行结果的屏幕显示界面可以看到共执行了10个训练周期 ,从中可以发现误差越来越小,准确率越来越高
3.画出准确率执行结果
之前的训练步骤会将每一个训练周期的准确率与误差记录在train_history变量中
我们可以使用下面的程序代码读取train_histroy,画出准确率的执行结果
 
4.画出误差执行结果