Правильно. Глобальные потери представляют собой взвешенную сумму двух частичных потерь как
Global loss=(loss1 * weight1 + loss2 * weight2)
Я взял функциональную модель keras, чтобы продемонстрировать, что глобальные потери представляют собой взвешенную сумму двух частичных потерь. Пожалуйста, взгляните на весь код здесь .
Модель составлена как
model.compile(optimizer=keras.optimizers.RMSprop(1e-3),
loss=[keras.losses.BinaryCrossentropy(from_logits=True),
keras.losses.CategoricalCrossentropy(from_logits=True)],
loss_weights=[1., 0.2])
Модель обучена как
model.fit({'title': title_data, 'body': body_data, 'tags': tags_data},
{'priority': priority_targets, 'department': dept_targets},
epochs=2,batch_size=32)
Epoch 1/2
40/40 [==============================] - 2s 45ms/step - loss: 1.2723 - priority_loss: 0.7062 - department_loss: 2.8304
Epoch 2/2
40/40 [==============================] - 2s 46ms/step - loss: 1.2593 - priority_loss: 0.6995 - department_loss: 2.7993
Проверьте, как весит и две потери используются для получения общей потери (потеря1 * вес1 + потеря2 * вес2) (0,7062 * 1,0 + 2,8304 * 0,2) # 1,27228
Надеюсь, это поможет.