利用tensorflow實現手寫識別
1.手寫數字資料集
2.資料預處理
3.設計卷積神經網路結構
設計依據:
#建立模型
2 model =sequential()34
#一層卷積
5model.add(
6conv2d(
7 filters=32, #
輸出32*32
8 kernel_size=(5,5), #
卷積核的大小
9 padding='
same
', #
保證卷積核大小,不夠補零
10 input_shape=x_train.shape[1:], #
(8, 8, 1)
11 activation='
relu
')) #
稀疏性12
#第一層輸入資料的shape要指定外,其他層的資料的shape框架會自動推導。13#
池化層1
14 model.add(maxpool2d(pool_size=(2, 2)))15#
drop層
16 model.add(dropout(0.25))
1718
#二層卷積
19model.add(
20conv2d(
21 filters=32, #
輸出32*32
22 kernel_size=(5,5), #
卷積核的大小
23 padding='
same
', #
保證卷積核大小,不夠補零
24 activation='
relu
')) #
稀疏性25
#第一層輸入資料的shape要指定外,其他層的資料的shape框架會自動推導。26#
池化層1
27 model.add(maxpool2d(pool_size=(2, 2)))28#
drop層
29 model.add(dropout(0.25))
3031
#三層卷積
32model.add(
33conv2d(
34 filters=64, #
輸出64*64
35 kernel_size=(5,5), #
卷積核的大小
36 padding='
same
', #
保證卷積核大小,不夠補零
37 activation='
relu
')) #
稀疏性38
#四層卷積
39model.add(
40conv2d(
41 filters=128, #
輸出128*128
42 kernel_size=(5,5), #
卷積核的大小
43 padding='
same
', #
保證卷積核大小,不夠補零
44 activation='
relu
')) #
稀疏性4546#
池化層1
47 model.add(maxpool2d(pool_size=(2, 2)))48#
drop層
49 model.add(dropout(0.25))50#
平坦層51
model.add(flatten())52#
全連線層
53 model.add(dense(128,activation='
relu'))
54#drop層
55 model.add(dropout(0.25))56#
全連線層
57 model.add(dense(10,activation='
softmax
'))4.模型訓練
5.模型評價
……
#**值y_pred =model.predict_classes(x_test)
#將真實值轉換為數字
y_test1 =np.argmax(y_test, axis=1).reshape(-1)
y_true = np.array(y_test1[0]).reshape(-1)
15 手寫數字識別 小資料集
1.手寫數字資料集 from sklearn.datasets import load digits digits load digits 2.資料預處理 x data digits.data.astype np.float32 scale minmaxscaler x data scale.fit...
15 手寫數字識別 小資料集
1.手寫數字資料集 from sklearn.datasets import load digits digits load digits 2.資料預處理 3.設計卷積神經網路結構 4.模型訓練 訓練模型 import matplotlib.pyplot as plt model.compile l...
15 手寫數字識別 小資料集
1.手寫數字資料集 2.資料預處理 3.設計卷積神經網路結構 設計卷積神經網路結構 model sequential ks 3,3 卷積核的大小 input shape x train.shape 1 model.add conv2d filters 16,kernel size ks,paddin...