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。

  • 相关阅读:
    纪念又一次ak
    hdu5618
    bzoj3393
    bzoj3438
    [JSOI2007]建筑抢修
    [CQOI2014]数三角形
    [BZOJ2662][BeiJing wc2012]冻结
    [NOIP2015]运输计划
    [ZJOI2006]超级麻将
    [APIO2009]抢掠计划
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/14344472.html
Copyright © 2011-2022 走看看