keras支持模型多输入多输出,本文记录多输出时loss、loss weight和metrics的设置方式。
模型输出
假设模型具有多个输出
- classify: 二维数组,分类softmax输出,需要配置交叉熵损失
- segmentation:与输入同尺寸map,sigmoid输出,需要配置二分类损失
- others:自定义其他输出,需要自定义损失
具体配置
model
1
2
3 | inputs = [input_1 , input_2]
outputs = [classify, segmentation, others]
model = keras.models.Model(inputs, outputs) |
loss
1
2
3
4 | my_loss = {
'classify': 'categorical_crossentropy',\
'segmentation':'binary_crossentropy',\
'others':my_loss_fun} |
loss weight
1
2
3
4 | my_loss_weights = {
'classify':1,\
'segmentation':1,\
'others':10} |
metrics
1
2
3
4
5 | my_metrics ={
'classify':'acc',\
'segmentation':[mean_iou,'acc'],\
'others':['mse','acc']
} |
编译
1 | model.compile(optimizer=Adam(lr=config.LEARNING_RATE), loss=my_loss, loss_weights= my_loss_weights, metrics= my_metrics) |
本文标题 : Keras 模型多输出 loss weight metrics 设置
文章作者 :
发布时间 : 2020年05月25日 - 18:50:19
最后更新 : 2020年06月19日 - 20:17:58
原始链接 : https://www.zywvvd.com/2020/05/25/deep_learning/keras/keras-multi-metrics/keras-multi-metrics/