Работает ли авто-дифференцирование в тензорном потоке при объединении активаций из нескольких сетей в одну цель?
Я новичок в тензорном потоке и пытаюсь выяснить, решит ли моя функция функцию авто-дифференцирования в тензорном потоке. Итак, у меня есть две сети, где каждая сеть выводит скрытый вектор. Итак, скажем, мой чистый A выводит скрытый вектор -La(Hxr) - где (H,r) представляет размеры выходного скрытого вектора La. Аналогично чистый B выводит Lb(Wxr) . Таким образом, мои целевые функции принимают обе эти задержки как входные данные и объединяют их в виде (La.Lb'), где (.) - это скалярное произведение, а (') представляет транспонирование. Я буду оптимизировать эту целевую функцию с помощью кросс-энтропии.
Теперь мой вопрос: сможет ли авторазница тензорного потока правильно рассчитать градиенты и распространиться обратно? Это не простой случай здесь. Сеть A должна обновляться только по градиентам относительно La, а сеть B должна обновляться только по градиентам, рассчитанным по Lb. Так достаточно ли тензорный поток, чтобы понять это? И есть ли способ проверить это?
Спасибо!
1 ответ
TensorFlow поддерживает автоматическое дифференцирование любого вида вычислительного графа, который вы можете определить, используя его. Я использовал TensorFlow для объединения прогнозов из нескольких сетей, чтобы вычислить потери с использованием различных функций потерь. Так что тензорный поток достаточно умен, чтобы понять это, он будет правильно вычислять градиенты и распространять их обратно.