用Keras進行手寫字型識別(MNIST資料集)

2021-08-27 23:54:12 字數 2509 閱讀 2862

首先載入資料

from keras.datasets import mnist

(train_images, train_labels)

,(test_images, test_labels)

= mnist.load_data(

)

接下來,看看這個資料集的基本情況:

train_images.shape
(60000, 28, 28)

len

(train_labels)

train_labels
array([5, 0, 4, …, 5, 6, 8], dtype=uint8)

test_images.shape
(10000, 28, 28)

len

(test_labels)

test_labels
array([7, 2, 1, …, 4, 5, 6], dtype=uint8)

from keras import models

from keras import layers

network = models.sequential(

)network.add(layers.dense(

512, activation=

'relu'

, input_shape=(28

*28,)

))network.add(layers.dense(

10, activation=

'softmax'

))

keras可以幫助我們實現一層一層的連線起來,在本例中的網路包含2個dense層,他們是密集連線(也叫全連線)的神經層。第二層是乙個10路softmax層,他將返回乙個由10個概率值(總和為1)組成的陣列。每個概率值表示當前數字影象屬於10個數字類別中的某乙個的概率。

要想訓練網路,我們還需要設定編譯步驟的三個引數:

network.

compile

(optimizer=

'rmsprop'

, loss=

'categorical_crossentropy'

, metrics=

['accuracy'

])

在訓練之前,需要對影象資料預處理,將其變換成網路要求的形狀,並縮放所有值都在[0,1]區間。比如,之前訓練影象儲存在乙個uint8型別的陣列中,其形狀為(60000,28, 28),取值範圍為[0, 255]。我們需要將其變換成乙個float32陣列,其形狀為(60000, 28*28),取值範圍為0-1

train_images = train_images.reshape(

(60000,28

*28))

#把乙個影象變成一列資料用於學習

train_images = train_images.astype(

'float32')/

255#astype用於進行資料型別轉換

test_images = test_images.reshape(

(10000,28

*28))

test_images = test_images.astype(

'float32')/

255

from keras.utils import to_categorical

train_labels = to_categorical(train_labels)

test_labels = to_categorical(test_labels)

network.fit(train_images, train_labels, epochs=

5, batch_size=

128)

會有乙個輸出

看看測試集表現如何:

test_loss, test_acc = network.evaluate(test_images, test_labels)

print

('test_acc:'

, test_acc)

我們還可以看某乙個具體的影象顯示情況

keras實現手寫字型識別

losses損失函式 optimizers優化目標函式,比如sgd datasets常用資料集,比如mnist models序貫模型,比如sequential layers神經網路中的層,比如全連線層dense activations啟用函式 import keras 匯入keras from ke...

kaggle mnist手寫字型識別

現在的許多手寫字型識別 都是基於已有的mnist手寫字型資料集進行的,而kaggle需要用到 上給出的資料集並生成測試集的輸出用於提交。這裡選擇keras搭建卷積網路進行識別,可以直接生成測試集的結果,最終結果識別率大概97 左右的樣子。coding utf 8 created on tue jun...

用word模仿手寫字型

首先我們來看一下效果圖 咳咳,是不是很有feel!將手寫字型解壓到資料夾下 開啟控制面板,搜尋字型,然後進入資料夾 然後將之前資料夾下的ttf檔案拖拽進去就可以了。接下來開啟word!開啟檔案 選項 信任中心 信任中心設定中選擇該選項 開啟檢視 巨集 新建 手寫字型 sub 手寫字型 手寫字型 巨集...