- Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.
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)