Keras深度學習(四)

2021-10-19 09:31:32 字數 3857 閱讀 2799

今天測試前幾天所提到的演算法

1.

#使用keras定義簡單的神經網路

from __future__ import print_function

import numpy as np

from keras.datasets import mnist

from keras.models import sequential

from keras.layers.core import dense,activation

from keras.optimizers import sgd

from keras.utils import np_utils

np.random.seed(

1671

)#重複性設定

#網路和訓練

nb_epoch=

200batch_size=

128verbose=

1nb_classes=

10#輸出個數等於數字個數

optimizer=sgd(

)#sgd優化器

n_hidden=

128validation_split=

0.2#訓練集中用作驗證集的比例

#資料:混合並劃分訓練集和測試集的資料

#(x_train,y_train)

,(x_test,y_test)

=mnist.load_data(

)#x_train是60000行28*28的資料,變形為60000*784

reshaped=

784#

x_train=x_train.reshape(

60000

,reshaped)

x_test=x_text.reshape(

10000

,reshaped)

x_train=x_train.astype(

'float32'

)x_test=x_text.astype(

'float32'

)#歸一化

#x_train/=

255y_text/=

255print

(x_train.shape[0]

,'train samples'

)print

(x_test.shape[0]

,'test samples'

)#將類向量轉化為二值類別矩陣

y_train=np_utils.to_categorical(y_train, nb_classes)

y_test=np_utils.to_categorical(y_test, nb_classes)

#10個輸出

#最後是softmax啟用函式

model=seqiential(

)model.add(dense(nb_classes,input_shape=

(reshaped)))

model.add(activation(

'softmax'))

model.summary(

)

最後,程式識別的準確率為92.28%

2.

#使用隱藏層改進簡單網路

from __future__ import print_function

import numpy as np

from keras.datasets import mnist

from keras.models import sequential

from keras.layers.core import dense ,activation

from keras.optimizers import sgd

from keras.utils import np_utils

np.random.seed(

1671

)#重複性設定

#網路和訓練

nb_epoch =

20#重複訓練的次數

batch_size=

128#權重更新前,訓練的例項數

verbose=

1nb_classes=

10#輸出個數等於數字的個數

optimizer=sgd(

)#sgd優化器

n_hidden=

128

validation_split=

0.2#訓練集用於驗證的劃分比例

#資料,混合並劃分訓練集和測試集的資料

(x_train, y_train)

,(x_test,y_test)

=mnist.load_data(

)#x_train是60000行28*28的資料,變形為60000*748

reshaped=

784#

x_train=x_train.reshape(

60000

,reshaped)

x_test=x_test.reshape(

10000

,reshaped)

x_train=x_train.astype(

'float32'

)x_test=x_test.astype(

'float32'

)#歸一化處理

x_train/=

255x_test/=

255print

(x_train.shape[0]

,'train samples'

)print

(x_test.shape[0]

,'test samples'

)#將類向量轉化為二值類別矩陣

y_train=np_utils.to_categorical(y_train,nb_classes)

y_test=np_utils.to_categorical(y_test,nb_classes)

#n_hidden個隱藏層

#10個輸出

#最後是softmax啟用函式

model =sequential(

)model.add(dense(n_hidden,input_shape=

(reshaped,))

)model.add(activation(

'relu'))

model.add(dense(n_hidden)

)model.add(activation(

'relu'))

model.add(dense(nb_classes)

)model.add(activation(

'softmax'))

model.summary(

)model.

compile

(loss=

'categorical_crossentropy'

, optimizer=optimizer,metrics=

['accuracy'])

history=model.fit(x_train,y_train,

batch_size=batch_size,epochs=nb_epoch,

verbose=verbose,validation_split=validation_split)

score=model.evaluate(x_test,y_test,verbose=verbose)

print

("test score:"

,score[0]

)print

("test accuracy:"

,score[1]

)

目前這個演算法還在測試。

準確率未知,但是目前計算到第10層,準確率為92.8%

keras深度學習(二)

上一次,我學到了感知機,多層感知機,啟用函式等 寫出了第乙個keras 例項 import keras.models import sequential model sequential model.add dense 12,input dim 8,kernel initializer random...

深度學習之Keras

keras簡介 keras是乙個高層神經網路api,keras完全由python編寫而成,使用tensorflow theano及cntk作為後端。通過python指令碼檢視keras使用的後端 輸出結果 使用keras構建深度學習模型 1.定義模型 建立乙個序貫模型並新增配置層。2.編譯模型 指定...

深度學習 實驗四 Keras基礎與簡單應用

搭建keras開發環境,掌握基於tensorflow的高階api框架keras的基本用法,通過mnist手寫數字體資料集,搭建基於keras api的神經網路,並用來識別手寫數字體。1.匯入模組 匯入實驗所需的相關模組 datasets模組中匯入資料集mnist模組 layer.core模組匯入de...