思路如下:
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