iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 25
0
AI & Machine Learning

tensorflow python系列 第 25

DAY25 基於Keras進行數字辨識(1)

前言:

我們今天就先從建立模型開始進行手寫數字辨識,不同於DAY19的,這邊是使用Keras來進行。

程式開始:

(1)準備

from keras.utils import np_utils
import numpy as np
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
import matplotlib.pyplot as plt
np.random.seed(10)

(x_train_image,y_train_label),(x_test_image,y_test_label)=mnist.load_data()

x_train=x_train_image.reshape(60000,784).astype('float32')
x_test=x_test_image.reshape(10000,784).astype('float32')

x_train_nor=x_train/255
x_test_nor=x_test/255

y_train_one=np_utils.to_categorical(y_train_label)
y_test_one=np_utils.to_categorical(y_test_label)

說明:

第1~8行:宣告引入函式庫

第10行:讀入mnist資料集

第12~13行:將原本28*28的矩陣轉為784個數字。

第15~16行:將數字特徵值標準化。

第18~19行:使用one-hot進行轉換。

(2)建立輸入輸出以及隱藏層

model = Sequential()

model.add(Dense(units=256,
                input_dim=784,
                kernel_initializer='normal',
                activation='relu'
                ))
model.add(Dropout(0.5))
model.add(Dense(units=10,
                kernel_initializer='normal',
                activation='softmax'
                ))

說明:

第1行:建立一個線性堆疊的模型。

第3~7行:建立輸入以及隱藏層。

第8行:再隱藏層時放棄一些神經元,避免overfitting。

第9~12行:建立輸出層

結語:

當你使用keras之後,你去對照前幾篇的程式碼,你發現程式碼的長短變得短很多,也看起來更簡單了。


上一篇
DAY24 Keras安裝
下一篇
DAY26 基於Keras進行數字辨識(2)
系列文
tensorflow python30

尚未有邦友留言

立即登入留言