keras如何使用model.compile封装自己的模型

使用keras可以方便的构造出我们自己的模型,但是由于keras是一种集成度但同时也缺乏一定的灵活性,本文主要介绍keras在构造模型的complie接口几个主要参数,帮大家理解如何根据自己的需求灵活的构造合适的参数

model.compile中有几个主要的参数,其大概如下:
model.compile(loss=[None, total, total, total, total, total, total],
              loss_weights=[0, 20, 1, 1, 10, 1000, 600],
              optimizer=MyAdam(lr=lr), metrics={'all_loss': total})

1. loss表示训练过程的损失,可以是一个list,注意如果输出是一个多维的,但是loss只有一个话,训练过程会对每一个输出都执行同一个loss函数,如果需要不同的输出执行不同的loss需要多个loss分开

2. loss_weigths:表示每个输出对应的损失的权重

3. optimizer:优化器的类型,我们可以根据需求重写优化器的函数,实现自己的优化器

4. metrics:监控的变量,支持list或者字典,但要注意,如果是list则表示输出的每一个维度都需要经过该函数,比如输出是[a,b],如果metrics是[fn(1),fn(2)],则表示a,b既需要经过fn(1)计算有需要经过fn(2)计算,最终输出的是4个值。

注意:此时在训练过程中输出的值损失包括总的损失和每一个损失函数对应的损失。

 

在模型存储的时候,我们往往会采用

checkPoint = ModelCheckpoint(filepath=filePath1, monitor="all_loss_total_4", verbose=1,
                             save_best_only=True, save_weights_only=True,
                             )

其中monitor表示每一个损失对应的名字,如果输出有多个损失的话需要根据对应的名字选择对应的损失进行监控

 

你可能感兴趣的:(keras,python,深度学习)