1. 程式人生 > >從訓練集Label到神經網路預測的簡單思路

從訓練集Label到神經網路預測的簡單思路

思路如下:

1. 匯入各種模組
基本形式為:

  • import 模組名
    這個是引入整個包,如果使用包中的某個類,需要加上模組名的限定。
  • from 某個檔案 import 某個模組
    這是隻引入包裡的某個類,在使用時無需新增模組名的限定。

2. 匯入資料(以兩類分類問題為例,即numClass = 2)

  • 訓練集資料data

  • 訓練集的標籤

3. 將匯入的資料轉化我keras可以接受的資料格式

keras要求的label格式應該為binary class matrices,所以,需要對輸入的label資料進行轉化,利用keras提供的to_categorical函式

label
= np_utils.to_categorical(label, numClass)

  
4. 建立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'))<br><br> # 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

6. model預測

利用model.predict 、model.predict_on_batch 或者 model.predcit_generator