今天測試前幾天所提到的演算法
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...