1. 導入各種模塊
基本形式為:
import 模塊名
from 某個文件 import 某個模塊
2. 導入數據(以兩類分類問題為例,即numClass = 2)
訓練集數據data
可以看到,data是一個四維的ndarray
訓練集的標簽
3. 將導入的數據轉化我keras可以接受的數據格式
keras要求的label格式應該為binary class matrices,所以,需要對輸入的label數據進行轉化,利用keras提高的to_categorical函數
label = np_utils.to_categorical(label, numClass
此時的label變為了如下形式
(注:PyCharm無法顯示那么多的數據,所以下面才只顯示了1000個數據,實際上該例子所示的數據集有1223個數據)
4. 建立CNN模型
以下圖所示的CNN網絡為例
#生成一個model model = Sequential() #layer1-conv1 model.add(Convolution2D(16, 3, 3, border_mode='valid',input_shape=data.shape[-3:])) model.add(Activation('tanh'))#tanh # layer2-conv2 model.add(Convolution2D(32, 3, 3, border_mode='valid')) model.add(Activation('tanh'))#tanh # layer3-conv3 model.add(Convolution2D(32, 3, 3, border_mode='valid')) model.add(Activation('tanh'))#tanh # layer4 model.add(Flatten()) model.add(Dense(128, init='normal')) model.add(Activation('tanh'))#tanh # layer5-fully connect model.add(Dense(numClass, init='normal')) model.add(Activation('softmax'))
#
sgd = SGD(l2=0.1,lr=0.001, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd,class_mode="categorical")
5. 開始訓練model
利用model.train_on_batch或者model.fit