• Keras模型分类分析及代码实现


    一.序列模型

      1.序列模型【写法一】

        序列模型属于通用模型的一种,这种模型各层之间是依次顺序的线性关系。在第k层和第k+1层之间可以加上各种元素来构造神经网络。这些元素可以通过一个列表来制定,然后作为参数传递给序列模型来生成相应的模型。

      from keras.models import Sequential
      from keras.layers import Dense
      from keras.layers import Activation
    
      # input_shape 输入层,784表示输入样式
      layers = [Dense(32, input_shape=(784,)), # Dense 全连接层,32表示全连接层上面有32个神经元
              Activation('relu'), # 激活函数relu
              Dense(10), 
              Activation('softmax')]
    
      model = Sequential(layers) # 构建序列模型
      model.summary() # 打印模型信息

      执行结果:

        

      解析:

        a.25120=784*32 + 32,表示全连接层要计算的参数个数,32表示截距

        b.330=32*10 + 10 解析同上

        c.25450=25120+330 表示全部要计算的参数个数

      2.序列模型【写法二】

      from keras.models import Sequential
      from keras.layers import Dense
      from keras.layers import Activation
    
      model = Sequential()
      model.add(Dense(32, input_shape=(784,)))
      model.add(Activation('relu'))
      model.add(Dense(10))
      model.add(Activation('softmax'))
    
      model.summary()

      执行结果同上!

    二.通用模型

      通用模型可以用来设计非常复杂、任意拓扑结构的神经网络。类似于序列模型,通用模型通过函数化的应用接口来定义模型。在通用模型中,从输入的多维矩阵开始,然后定义各层及其要素,最后定义输出层。将输入层和输出层作为参数纳入通用模型中就可以定义一个模型对象。

      from keras.models import Model
      from keras.layers import Input, Dense
    
      # 定义输入层
      input = Input(shape=(784,))
    
      # 定义各个连接层,包括两个全连接层,使用relu和softmax激活函数
      layer1 = Dense(64, activation='relu')(input)
      layer2 = Dense(64, activation='relu')(layer1)
    
      # 定义输出层
      out = Dense(10, activation='softmax')(layer2)
    
      # 定义模型对象
      model = Model(inputs=input, output=out)
      model.summary()

      执行结果:

        

    三.代码实战

      参考我的博客:https://www.cnblogs.com/yszd/p/10294536.html

  • 相关阅读:
    模拟链表
    解密回文——栈
    解密QQ——队列
    排序算法的实现与比较
    2016年第七届蓝桥杯C/C++B组省赛题目解析
    记账类问题汇总
    斐波那契数列题型汇总
    MFC绘图小实验(1)
    MFC绘图基础——上机操作步骤
    求 pi 的近似值题型汇总
  • 原文地址:https://www.cnblogs.com/yszd/p/12401650.html
Copyright © 2020-2023  润新知