Так как вычисления Tensor составляют графы , лучше интерпретировать их в терминах графов.
Возьмем для примера простую линейную регрессию
WX+B=Y
где W
и B
обозначают веса и смещения, а также X
для входов наблюдений иY
наблюдений и выходные данные наблюдений.
Очевидно, X
и Y
имеют одинаковую природу (явные переменные), которые отличаются от того, что W
и B
(латентные переменные). X
и Y
являются значениями выборок (наблюдений) и, следовательно, нуждаются в месте для заполнения , в то время как W
и B
являются весами и смещением, переменными (предыдущие значения влияют на последние) в графе, которые следует обучать, используя разные X
и Y
пары. Мы размещаем различные образцы для заполнителей для обучения переменных .
Нам нужно только , чтобы сохранить или восстановить те переменные (на контрольно - пропускных пунктах) , чтобы сохранить или восстановить граф с кодом.
Заполнители в основном являются держателями для различных наборов данных (например, данных обучения или данных испытаний). Тем не менее, переменные обучаются в процессе обучения для конкретных задач, то есть, чтобы предсказать результат ввода или сопоставить входы с желаемыми метками. Они остаются такими же , пока вы не переучивать или тонкую настройку модели с использованием различных или же образцов для заполнения в Указатель место заполнения часто через Dict. Например:
session.run(a_graph, dict = {a_placeholder_name : sample_values})
Заполнители также передаются в качестве параметров для установки моделей.
Если вы измените заполнители (добавьте, удалите, измените форму и т. Д.) Модели в середине обучения, вы все равно сможете перезагрузить контрольную точку без каких-либо других модификаций. Но если переменные сохраненной модели изменены, вам следует соответствующим образом настроить контрольную точку, чтобы перезагрузить ее и продолжить обучение (все переменные, определенные на графике, должны быть доступны в контрольной точке).
Подводя итог, если значения взяты из выборок (наблюдения, которые у вас уже есть), вы можете безопасно заполнить их, а если вам нужен параметр для обучения, используйте переменную (проще говоря, установите переменные для значений, которые вы хотите использовать TF автоматически).
В некоторых интересных моделях, таких как модель передачи стиля , входные пиксели будут оптимизированы, и обычно называемые переменные модели фиксированы, тогда мы должны сделать ввод (обычно инициализированный случайным образом) как переменную, как реализовано в этой ссылке.
Для получения дополнительной информации, пожалуйста, сделайте вывод на этот простой и иллюстрирующий документ .
Variable
s, но не кplaceholder
s (значения которых всегда должны быть указаны).