Настройки метрик веса с несколькими выходами модели Keras

Keras

Keras поддерживает модели с несколькими входами и несколькими выходами.В этой статье описывается метод настройки потерь, веса потерь и показателей для нескольких выходов.

вывод модели

Предположим, что модель имеет несколько выходов

  • classify: двумерный массив, вывод softmax для классификации, необходимо настроить потерю перекрестной энтропии
  • сегментация: карта того же размера, что и вход, сигмовидный вывод, необходимо настроить потери двух классов
  • другие: настроить другие выходы, необходимо настроить потери

Конкретная конфигурация

model

  • Переменные — это сетевые слои в модели.
 inputs = [input_1 , input_2]
 outputs = [classify, segmentation, others]
 model = keras.models.Model(inputs, outputs)

loss

 my_loss = {
     'classify': 'categorical_crossentropy',\
     'segmentation':'binary_crossentropy',\
     'others':my_loss_fun}

loss weight

 my_loss_weights = {
     'classify':1,\
     'segmentation':1,\
     'others':10}

metrics

 my_metrics ={
     'classify':'acc',\
     'segmentation':[mean_iou,'acc'],\
     'others':['mse','acc']
     }

компилировать

 model.compile(optimizer=Adam(lr=config.LEARNING_RATE), loss=my_loss, loss_weights= my_loss_weights, metrics= my_metrics)