zoukankan      html  css  js  c++  java
  • Keras如何构造简单的CNN网络

    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

      

  • 相关阅读:
    uva 1416 (SPFA) **月赛第E题的原题**
    uva 10917 (Dijsktra+记忆化搜索) **月赛第D题的原题**
    uva 11478(二分+差分约束系统)
    uva 11374(Dijkstra) HappyNewYear!!!
    Codeforces GoodBye2013 解题报告
    Codeforces Round #222 (Div. 2) 解题报告
    uva 515(差分约束)
    uva 10273(模拟)
    uva 10985(floyd+dfs)
    uva 10594(最小费用最大流)
  • 原文地址:https://www.cnblogs.com/lutingting/p/5156422.html
Copyright © 2011-2022 走看看