Ответ 1
loss: String (имя целевой функции) или объектная функция. См. Потери. Если модель имеет несколько выходов, вы можете использовать разные потери на каждом выходе, передавая словарь или список потерь. Значение потерь, которое будет минимизировано моделью, будет тогда суммой всех индивидуальных потерь.
...
loss_weights: дополнительный список или словарь, определяющий скалярные коэффициенты (поплавки Python) для взвешивания вкладов потерь различных выходных данных модели. Значение потерь, которое будет минимизировано моделью, будет тогда взвешенной суммой всех индивидуальных потерь, взвешенных по коэффициентам
loss_weights
. Если список, он должен иметь отображение 1:1 для выходных данных модели. Если тензор, он должен отображать выходные имена (строки) в скалярные коэффициенты.
Итак, да, окончательная потеря будет "взвешенной суммой всех индивидуальных потерь, взвешенных по loss_weights
убытков".
Вы можете проверить код, в котором рассчитывается потеря.
Кроме того, что это означает во время обучения? Является ли loss2 использованным только для обновления весов на слоях, откуда идет y2? Или он используется для всех слоев модели?
Веса обновляются через backpropagation, поэтому каждая потеря будет влиять только на слои, которые соединяют входные данные с потерей.
Например:
+----+
> C |-->loss1
/+----+
/
/
+----+ +----+/
-->| A |--->| B |\
+----+ +----+ \
\
\+----+
> D |-->loss2
+----+
-
loss1
будет влиять на A, B и C. -
loss2
будет влиять на A, B и D.