Ответ 1
tf.stop_gradient(tensor)
может быть тем, что вы ищете. Тензор будет рассматриваться как постоянный для целей вычисления градиента. Вы можете создать две потери с разными частями, рассматриваемыми как константы.
Другой вариант (и часто лучше) - создать 2 оптимизатора, но явно оптимизировать только подмножества переменных, например.
train_a = tf.train.GradientDescentOptimizer(0.1).minimize(loss_a, var_list=[A])
train_b = tf.train.GradientDescentOptimizer(0.1).minimize(loss_b, var_list=[B])
и вы можете перебирать между ними обновления.