keras,FCN,mnist手写数字识别,实例,添加隐藏层,添加Dropout,防止过拟合

该博客记录了使用Keras实现FCN模型对MNIST手写数字识别的过程,通过添加隐藏层和Dropout策略防止过拟合。训练过程中展示了损失(loss)和准确率(accuracy)的变化,最终得到训练准确率为97.78%,验证集上展示了模型的稳定表现。
摘要由CSDN通过智能技术生成
import numpy as np
from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense,Dropout
from keras.optimizers import SGD

#载入数据
(x_train,y_train),(x_test,y_test)=mnist.load_data()
#(60000,28,28)
print('x_shape:',x_train.shape)
#(60000)
print('y_shape:',y_train.shape)

#(60000,28,28)->(60000,784)
x_train=x_train.reshape(x_train.shape[0],-1)/255.0 #除以255是归一化
x_test=x_test.reshape(x_test.shape[0],-1)/255.0
#换one_hot 格式,把像素点转变成0、1形式
y_train=np_utils.to_categorical(y_train,num_classes=10)#把y_train分成10个类别
y_test=np_utils.to_categorical(y_test,num_classes=10)

#创建模型,加入隐藏层,加入Dropout
model=Sequential([Dense(units=200,input_dim=784,bias_initializer='one',activation='tanh'),
                  Dropout(0.4),
                  Dense(units=100,input_dim=200,bias_initializer='one',activation='tanh'),
                  Dropout(0.4),
                  Dense(units=10,input_dim=100,bias_initializer='one',activation='softmax')])#bias_initializer='one',偏置值的初始值设为1

'''
#也可以用add()函数加隐藏层
model.add(Dense(...))
model.add(Dense(...))
'''
#定义优化器
sgd=SGD(lr=0.2)

#定义优化器,loss function,训练过程中计算准确率,二次代价函数改为categorical_crossentropy交叉熵函数
model.compile(optimizer=sgd, loss='categorical_crossentropy',metrics=['accuracy'])#这里还可以计算准确率

#训练模型,可以用fit函数
model.fit(x_train,y_train,batch_size=32,epochs=10)#从60000张图中每次拿32张来训练,60000张图训练完叫一个周期,一共训练10个周期

#评估模型,用evaluate()函数
loss,accuracy=model.evaluate(x_test,y_test)
print('\ntest loss',loss)
print('test accuracy',accuracy)

loss,accuracy=model.evaluate(x_train,y_train)
print('\ntrain loss',loss)
print('train accuracy',accuracy)




结果:

   32/60000 [..............................] - ETA: 8:59 - loss: 2.9518 - acc: 0.1562
  480/60000 [..............................] - ETA: 42s - loss: 2.7830 - acc: 0.1542 
 1184/60000 [..............................] - ETA: 19s - loss: 2.0911 - acc: 0.3252
 1984/60000 [..............................] - ETA: 12s - loss: 1.6201 - acc: 0.4743
 2848/60000 [>.............................] - ETA: 9s - loss: 1.3482 - acc: 0.5667 
 3616/60000 [>.............................] - ETA: 8s - loss: 1.2158 - acc: 0.6098
 4448/60000 [=>............................] - ETA: 7s - loss: 1.1108 - acc: 0.6450
 5248/60000 [=>............................] - ETA: 6s - loss: 1.0207 - acc: 0.6736
 6048/60000 [==>...........................] - ETA: 6s - loss: 0.9490 - acc: 0.6964
 6816/60000 [==>...........................] - ETA: 5s - loss: 0.8987 - acc: 0.7152
 7616/60000 [==>...........................] - ETA: 5s - loss: 0.8628 - acc: 0.7281
 8448/60000 [===>..........................] - ETA: 5s - loss: 0.8309 - acc: 0.7388
 9248/60000 [===>..........................] - ETA: 4s - loss: 0.8005 - acc: 0.7484
10048/60000 [====>.........................] - ETA: 4s - loss: 0.7775 - acc: 0.7564
10912/60000 [====>.........................] - ETA: 4s - loss: 0.7524 - acc: 0.7644
11776/60000 [====>.........................] - ETA: 4s - loss: 0.7285 - acc: 0.7711
12640/60000 [=====>........................] - ETA: 4s - loss: 0.7105 - acc: 0.7767
13408/60000 [=====>........................] - ETA: 4s - loss: 0.7013 - acc: 0.7798
14144/60000 [======>.......................] - ETA: 3s - loss: 0.6903 - acc: 0.7841
14912/60000 [======>.......................] - ETA: 3s - loss: 0.6766 - acc: 0.7888
15744/60000 [======>.......................] - ETA: 3s - loss: 0.6633 - acc: 0.7933
16512/60000 [=======>......................] - ETA: 3s - loss: 0.6509 - acc: 0.7971
17312/60000 [=======>......................] - ETA: 3s - loss: 0.6402 - acc: 0.8008
18144/60000 [========>.....................] - ETA: 3s - loss: 0.6307 - acc: 0.8041
18976/60000 [========>.....................] - ETA: 3s - loss: 0.6218 - acc: 0.8067
19744/60000 [========>.....................] - ETA: 3s - loss: 0.6123 - acc: 0.8097
20576/60000 [=========>....................] - ETA: 3s - loss: 0.6060 - acc: 0.8117
21344/60000 [=========>....................] - ETA: 3s - loss: 0.6000 - acc: 0.8141
22208/60000 [==========>...................] - ETA: 2s - loss: 0.5913 - acc: 0.8169
22976/60000 [==========>...................] - ETA: 2s - loss: 0.5843 - acc: 0.8188
23808/60000 [==========>...................] - ETA: 2s - loss: 0.5789 - acc: 0.8208
24640/60000 [===========>..................] - ETA: 2s - loss: 0.5747 - acc: 0.8224
25472/60000 [===========>..................] - ETA: 2s - loss: 0.5694 - acc: 0.8239
26208/60000 [============>.................] - ETA: 2s - loss: 0.5651 - acc: 0.8250
27072/60000 [============>.................] - ETA: 2s - loss: 0.5595 - acc: 0.8265
27840/60000 [============>.................] - ETA: 2s - loss: 0.5539 - acc: 0.8282
28704/60000 [=============>................] - ETA: 2s - loss: 0.5499 - acc: 0.8298
29376/60000 [=============>................] - ETA: 2s - loss: 0.5454 - acc: 0.8311
30176/60000 [==============>...............] - ETA: 2s - loss: 0.5414 - acc: 0.8326
30976/60000 [==============>...............] - ETA: 2s - loss: 0.5380 - acc: 0.8338
31776/60000 [==============>...............] - ETA: 2s - loss: 0.5323 - acc: 0.8353
32544/60000 [===============>..............] - ETA: 2s - loss: 0.5289 - acc: 0.8364
33344/60000 [===============>..............] - ETA: 1s - loss: 0.5245 - acc: 0.8377
34176/60000 [================>.............] - ETA: 1s - loss: 0.5209 - acc: 0.8386
34976/60000 [================>.............] - ETA: 1s - loss: 0.5169 - acc: 0.8401
35712/60000 [================>.............] - ETA: 1s - loss: 0.5153 - acc: 0.8406
36544/60000 [=================>............] - ETA: 1s - loss: 0.5108 - acc: 0.8420
37312/60000 [=================>............] - ETA: 1s - loss: 0.5073 - acc: 0.8433
38112/60000 [==================>...........] - ETA: 1s - loss: 0.5048 - acc: 0.8441
38912/60000 [==================>...........] - ETA: 1s - loss: 0.5031 - acc: 0.8446
39712/60000 [==================>...........] - ETA: 1s - loss: 0.5008 - acc: 0.8453
40544/60000 [===================>..........] - ETA: 1s - loss: 0.4988 - acc: 0.8460
41312/60000 [===================>..........] - ETA: 1s - loss: 0.4956 - acc: 0.8470
42112/60000 [====================>.........] - ETA: 1s - loss: 0.4936 - acc: 0.8479
42944/60000 [====================>.........] - ETA: 1s - loss: 0.4923 - acc: 0.8486
43744/60000 [====================>.........] - ETA: 1s - loss: 0.4893 - acc: 0.8495
44544/60000 [=====================>........] - ETA: 1s - loss: 0.4863 - acc: 0.8503
45280/60000 [=====================>........] - ETA: 1s - loss: 0.4832 - acc: 0.8513
46016/60000 [======================>.......] - ETA: 0s - loss: 0.4809 - acc: 0.8521
46848/60000 [======================>.......] - ETA: 0s - loss: 0.4784 - acc: 0.8529
47584/60000 [======================>.......] - ETA: 0s - loss: 0.4759 - acc: 0.8535
48384/60000 [=======================>......] - ETA: 0s - loss: 0.4734 - acc: 0.8541
49216/60000 [=======================>......] - ETA: 0s - loss: 0.4702 - acc: 0.8550
50048/60000 [========================>.....] - ETA: 0s - loss: 0.4681 - acc: 0.8558
50816/60000 [========================>.....] - ETA: 0s - loss: 0.4664 - acc: 0.8563
51584/60000 [========================>.....] - ETA: 0s - loss: 0.4650 - acc: 0.8567
52384/60000 [=========================>....] - ETA: 0s - loss: 0.4625 - acc: 0.8573
53216/60000 [=========================>....] - ETA: 0s - loss: 0.4601 - acc: 0.8580
54080/60000 [==========================>...] - ETA: 0s - loss: 0.4582 - acc: 0.8587
54848/60000 [==========================>...] - ETA: 0s - loss: 0.4570 - acc: 0.8593
55648/60000 [==========================>...] - ETA: 0s - loss: 0.4550 - acc: 0.8600
56448/60000 [===========================>..] - ETA: 0s - loss: 0.4538 - acc: 0.8604
57280/60000 [===========================>..] - ETA: 0s - loss: 0.4518 - acc: 0.8609
57952/60000 [===========================>..] - ETA: 0s - loss: 0.4498 - acc: 0.8615
58656/60000 [============================>.] - ETA: 0s - loss: 0.4480 - acc: 0.8621
59200/60000 [============================>.] - ETA: 0s - loss: 0.4467 - acc: 0.8625
59776/60000 [============================>.] - ETA: 0s - loss: 0.4457 - acc: 0.8629
60000/60000 [==============================] - 4s 70us/step - loss: 0.4453 - acc: 0.8631
Epoch 2/10

   32/60000 [..............................] - ETA: 9s - loss: 0.4432 - acc: 0.9062
  672/60000 [..............................] - ETA: 5s - loss: 0.3326 - acc: 0.8973
 1280/60000 [..............................] - ETA: 4s - loss: 0.3275 - acc: 0.8992
 1984/60000 [..............................] - ETA: 4s - loss: 0.3029 - acc: 0.9047
 2688/60000 [>.............................] - ETA: 4s - loss: 0.2984 - acc: 0.9070
 3424/60000 [>.............................] - ETA: 4s - loss: 0.3075 - acc: 0.9039
 4192/60000 [=>............................] - ETA: 4s - loss: 0.3044 - acc: 0.9058
 4928/60000 [=>............................] - ETA: 4s - loss: 0.3045 - acc: 0.9060
 5760/60000 [=>............................] - ETA: 3s - loss: 0.3037 - acc: 0.9062
 6432/60000 [==>...........................] - ETA: 3s - loss: 0.3009 - acc: 0.9078
 7136/60000 [==>...........................] - ETA: 3s - loss: 0.3064 - acc: 0.9079
 7872/60000 [==>...........................] - ETA: 3s - loss: 0.2980 - acc: 0.9094
 8672/60000 [===>..........................] - ETA: 3s - loss: 0.2955 - acc: 0.9084
 9408/60000 [===>..........................] - ETA: 3s - loss: 0.2967 - acc: 0.9087
10080/60000 [====>.........................] - ETA: 3s - loss: 0.2973 - acc: 0.9090
10816/60000 [====>.........................] - ETA: 3s - loss: 0.2980 - acc: 0.9088
11616/60000 [====>.........................] - ETA: 3s - loss: 0.2988 - acc: 0.9091
12384/60000 [=====>........................] - ETA: 3s - loss: 0.3039 - acc: 0.9079
13056/60000 [=====>........................] - ETA: 3s - loss: 0.3052 - acc: 0.9078
13664/60000 [=====>........................] - ETA: 3s - loss: 0.3054 - acc: 0.9083
14240/60000 [======>.......................] - ETA: 3s - loss: 0.3094 - acc: 0.9072
14848/60000 [======>.......................] - ETA: 3s - loss: 0.3103 - acc: 0.9065
15488/60000 [======>.......................] - ETA: 3s - loss: 0.3097 - acc: 0.9069
16096/60000 [=======>......................] - ETA: 3s - loss: 0.3088 - acc: 0.9071
16768/60000 [=======>......................] - ETA: 3s - loss: 0.3062 - acc: 0.9074
17568/60000 [=======>......................] - ETA: 3s - loss: 0.3074 - acc: 0.9072
18304/60000 [========>.....................] - ETA: 3s - loss: 0.3085 - acc: 0.9072
19104/60000 [========>.....................] - ETA: 2s - loss: 0.3078 - acc: 0.9075
19872/60000 [========>.....................] - ETA: 2s - loss: 0.3074 - acc: 0.9078
20608/60000 [=========>....................] - ETA: 2s - loss: 0.3075 - acc: 0.9079
21344/60000 [=========>....................] - ETA: 2s - loss: 0.3066 - acc: 0.9079
22112/60000 [==========>...................] - ETA: 2s - loss: 0.3065 - acc: 0.9076
22944/60000 [==========>...................] - ETA: 2s - loss: 0.3044 - acc: 0.9083
23712/60000 [==========>...................] - ETA: 2s - loss: 0.3027 - acc: 0.9086
24448/60000 [===========>..................] - ETA: 2s - loss: 0.3020 - acc: 0.9087
25280/60000 [===========>..................] - ETA: 2s - loss: 0.3024 - acc: 0.9087
26144/60000 [============>.................] - ETA: 2s - loss: 0.3010 - acc: 0.9088
26944/60000 [============>.................] - ETA: 2s - loss: 0.3007 - acc: 0.9088
27680/60000 [============>.................] - ETA: 2s - loss: 0.2997 - acc: 0.9094
28448/60000 [=============>................] - ETA: 2s - loss: 0.2992 - acc: 0.9096
29312/60000 [=============>................] - ETA: 2s - loss: 0.2970 - acc: 0.9102
30048/60000 [==============>...............] - ETA: 2s - loss: 0.2957 - acc: 0.9105
30880/60000 [==============>...............] - ETA: 2s - loss: 0.2950 - acc: 0.9107
31712/60000 [==============>...............] - ETA: 1s - loss: 0.2958 - acc: 0.9108
32544/60000 [===============>..............] - ETA: 1s - loss: 0.2961 - acc: 0.9108
33312/60000 [===============>..............] - ETA: 1s - loss: 0.2961 - acc: 0.9107
34176/60000 [================>.............] - ETA: 1s - loss: 0.2961 - acc: 0.9107
35008/60000 [================>.............] - ETA: 1s - loss: 0.2954 - acc: 0.9107
35776/60000 [================>.............] - ETA: 1s - loss: 0.2962 - acc: 0.9107
36512/60000 [=================>............] - ETA: 1s - loss: 0.2962 - acc: 0.9107
37312/60000 [=================>............] - ETA: 1s - loss: 0.2959 - acc: 0.9109
38208/60000 [==================>...........] - ETA: 1s - loss: 0.2973 - acc: 0.9109
38976/60000 [==================>...........] - ETA: 1s - loss: 0.2982 - acc: 0.9105
39744/60000 [==================>...........] - ETA: 1s - loss: 0.2978 - acc: 0.9108
40576/60000 [===================>..........] - ETA: 1s - loss: 0.2978 - acc: 0.9109
41440/60000 [===================>..........] - ETA: 1s - loss: 0.2973 - acc: 0.9109
42304/60000 [====================>.........] - ETA: 1s - loss: 0.2957 - acc: 0.9114
43072/60000 [====================>.........] - ETA: 1s - loss: 0.2955 - acc: 0.9116
43808/60000 [====================>.........] - ETA: 1s - loss: 0.2946 - acc: 0.9119
44544/60000 [=====================>........] - ETA: 1s - loss: 0.2938 - acc: 0.9123
45408/60000 [=====================>........] - ETA: 0s - loss: 0.2932 - acc: 0.9126
46208/60000 [======================>.......] - ETA: 0s - loss: 0.2922 - acc: 0.9129
47008/60000 [======================>.......] - ETA: 0s - loss: 0.2921 - acc: 0.9131
47808/60000 [======================>.......] - ETA: 0s - loss: 0.2922 - acc: 0.9132
48640/60000 [=======================>......] - ETA: 0s - loss: 0.2921 - acc: 0.9135
49408/60000 [=======================>......] - ETA: 0s - loss: 0.2912 - acc: 0.9135
50240/60000 [========================>.....] - ETA: 0s - loss: 0.2904 - acc: 0.9137
51040/60000 [========================>.....] - ETA: 0s - loss: 0.2913 - acc: 0.9135
51840/60000 [========================>.....] - ETA: 0s - loss: 0.2915 - acc: 0.9135
52640/60000 [=========================>....] - ETA: 0s - loss: 0.2907 - acc: 0.9138
53504/60000 [=========================>....] - ETA: 0s - loss: 0.2901 - acc: 0.9141
54368/60000 [==========================>...] - ETA: 0s - loss: 0.2895 - acc: 0.9145
55136/60000 [==========================>...] - ETA: 0s - loss: 0.2893 - acc: 0.9146
55904/60000 [==========================>...] - ETA: 0s - loss: 0.2890 - acc: 0.9146
56704/60000 [===========================>..] - ETA: 0s - loss: 0.2889 - acc: 0.9146
57568/60000 [===========================>..] - ETA: 0s - loss: 0.2882 - acc: 0.9148
58368/60000 [============================>.] - ETA: 0s - loss: 0.2882 - acc: 0.9147
59040/60000 [============================>.] - ETA: 0s - loss: 0.2873 - acc: 0.9150
59840/60000 [============================>.] - ETA: 0s - loss: 0.2872 - acc: 0.9151
60000/60000 [==============================] - 4s 67us/step - loss: 0.2874 - acc: 0.9150
Epoch 3/10

   32/60000 [..............................] - ETA: 5s - loss: 0.0614 - acc: 1.0000
  832/60000 [..............................] - ETA: 3s - loss: 0.2192 - acc: 0.9255
 1632/60000 [..............................] - ETA: 3s - loss: 0.2582 - acc: 0.9154
 2432/60000 [>.............................] - ETA: 3s - loss: 0.2621 - acc: 0.9174
 3168/60000 [>.............................] - ETA: 3s - loss: 0.2545 - acc: 0.9205
 4000/60000 [=>............................] - ETA: 3s - loss: 0.2659 - acc: 0.9160
 4768/60000 [=>............................] - ETA: 3s - loss: 0.2628 - acc: 0.9190
 5536/60000 [=>............................] - ETA: 3s - loss: 0.2646 - acc: 0.9193
 6272/60000 [==>...........................] - ETA: 3s - loss: 0.2659 - acc: 0.9195
 7072/60000 [==>...........................] - ETA: 3s - loss: 0.2570 - acc: 0.9228
 7904/60000 [==>...........................] - ETA: 3s - loss: 0.2529 - acc: 0.9250
 8672/60000 [===>..........................] - ETA: 3s - loss: 0.2481 - acc: 0.9261
 9536/60000 [===>..........................] - ETA: 3s - loss: 0.2461 - acc: 0.9259
10304/60000 [====>.........................] - ETA: 3s - loss: 0.2435 - acc: 0.9267
11168/60000 [====>.........................] - ETA: 3s - loss: 0.2418 - acc: 0.9272
11968/60000 [====>.........................] - ETA: 3s - loss: 0.2400 - acc: 0.9276
12768/60000 [=====>........................] - ETA: 3s - loss: 0.2425 - acc: 0.9268
13536/60000 [=====>........................] - ETA: 3s - loss: 0.2436 - acc: 0.9266
14240/60000 [======>.......................] - ETA: 2s - loss: 0.2466 - acc: 0.9256
15040/60000 [======>.......................] - ETA: 2s - loss: 0.2494 - acc: 0.9249
15840/60000 [======>.......................] - ETA: 2s - loss: 0.2475 - acc: 0.9252
16640/60000 [=======>....................

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值