Я прочитал здесь вопрос TensorFlow - get current value of a Variable и ответ оставил меня смущенным.Какая модель кэширования использует TensorFlow?
С одной стороны, DGA говорит: «И очень ясно:. Запуск переменная будет производить только текущее значение переменной, она не будет запускать любые присвоению операции, связанные с ним Это дешево.»
С другой стороны, Сальвадор Дали говорит: «@dga да, если переменная зависит от других переменных, они также должны быть оценены».
Итак, что это? Оценивает ли переменная только текущее значение или же оно пересчитывает его значение с нуля из переменных, от которых это зависит ?
Что произойдет, если я буду оценивать одну и ту же переменную дважды подряд? Does Tensorflow имеет какое-либо понятие «устаревших» переменных, то есть переменные, которые нуждаются в перерасчете, потому что их зависимости действительно изменились (например, в системе построения )?
Я спрашиваю, потому что я работаю с несколькими сетями, где частичный вывод одного net становится частичным вводом другой сети. Я хочу получить градиенты , вычисленные на входном уровне одной сети, и слияние + применить их к выходному уровню другой сети. Я надеялся сделать это вручную , получая/сохраняя градиенты в переменных графа, а затем работает с графическими операциями для обратного распространения градиентов. Таким образом, мне нужно понять, как все это работает под капотом.
Что я похож на этот How to use Tensorflow Optimizer without recomputing activations in reinforcement learning program that returns control after each iteration?, но я не могу сделать вывод, можно ли на основе последнего ответа (экспериментальная поддержка теперь?)
Спасибо!
ОК, все в кэше. Спасибо. –