zoukankan      html  css  js  c++  java
  • keras编译与训练过程

    1.定义+compile

    self.model = Model(inputs=[self.input_layer, self.sf_layer], outputs=output)
    
    #或
    model = Sequential([
        Dense(32, input_shape=(784,)),
        Activation('relu'),
        Dense(10),
        Activation('softmax'),
    ])

    定义出了计算图的结构。

    在训练之前要配置学习过程,通过compile来实现:

    model.compile(optimizer='rmsprop',
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])

    而这里的loss是和模型定义的输出以及在fit时的y有关的,就是计算两者的损失。

    2.例子

    2.1 定义计算图

    根据选择的模型类型,初始化模型参数。

    开始创建计算图:

    这里的Input就是模型的输入,对应mode.fit中的x。下面是计算output的部分:

    //上图中的slice只返回output,因为它的index被初始化为了0。(那么它在这里有什么意义?)

    这是最终定义模型的语句,将计算图实例化了。

    2.2 compile

     编译使用的是zinb损失。

     调用fit输入数据跑模型,其中output是用来和模型计算图中的输出一起一起计算loss的。

    现在来关注一下loss:

    模型初始化的时候将Π和散度初始化了进去,在loss函数的时候只有真的值和模型的预测输出,参数作为模型。

    最终model.fit的输出是loss。

  • 相关阅读:
    android模拟器速度问题
    input.nextLine() 问题出错!
    android中的“visible ”、“invisible”、“gone”的区别(转载)
    为什么匿名内部类参数必须为final类型(转载)
    转载------------------关于android的一些技巧
    关于数据库的数据类型
    关于几个新的快捷键
    目标

    巨大bug
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/14344472.html
Copyright © 2011-2022 走看看