keras: model.compile ()

是keras自带的函数,函数位于keras/engine/training.py,是类Model(Network)的一个成员函数,函数原型

def compile(optimizer,
            loss=None,
             metrics=None,
             loss_weights=None,
             sample_weight_mode=None,
             weighted_metrics=None,
             target_tensors=None,
              **kwargs):

参数:

optimizer: 优化器

loss:损失函数,可以用自带的,也可以自定义.如果模型有多个输出,可以传入一个字典或者损失列表,模型降会把这些损失加在一起

metrics: 评价函数,与损失函数类似,只不过评价函数的结果不会用于训练过程中,可以传递已有的评价函数名称,或者传递一个自定义的theano/tensorflow函数来使用,自带的评价函数有:binary_accuracy(y_true,y_pred), categorical_accuracy(y_true,y_pred),sparse_categorical_accuracy(y_true,y_pred), top_k_categorical_accuracy(y_true,y_pred,k=5).自定义评价函数应该在编译的时候compile传递进去,该函数需要以(y_true,y_pred)作为输入参数,并返回一个张量作为输出结果.

loss_weights:可选项,是一个list或字典,指定不同的损失的系数

例子一,所有参数采用keras内置的

model.compile (optimizer=Adam(lr=1e-4), loss=’binary_crossentropy’, metrics=[‘accuracy’])

功能:编译创建好的模型,网络模型搭建完后,需要对网络的学习过程进行配置,否则在调用 fit 或 evaluate 时会抛出异常。可以使用 

用法举例:

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

该参数可指定为已预定义的优化器名,如Adam,rmsprop(root mean square prop)、adagrad等优化器,

参数:

optimizer:参数

  • lr:大或等于0的浮点数,学习率

  • momentum:大或等于0的浮点数,动量参数

  • decay:大或等于0的浮点数,每次更新后的学习率衰减值

  • nesterov:布尔值,确定是否使用Nesterov动量

loss:计算损失,这里用的是交叉熵损失

metrics: 列表,包含评估模型在训练和测试时的性能的指标,典型用法是metrics=[‘accuracy’]。如果要在多输出模型中为不同的输出指定不同的指标,可向该参数传递一个字典,例如metrics={‘output_a’: ‘accuracy’}


 

你可能感兴趣的:(keras: model.compile ())