Останавливает вычисление градиента.
При выполнении в графе эта операция выводит входной тензор как есть.
При построении операций для вычисления градиентов эта операция предотвращает учет вклада ее входных данных. Обычно генератор градиента добавляет к графику операции для вычисления производных заданной «потери», рекурсивно определяя входные данные, которые способствовали его вычислению. Если вы вставите эту операцию в график, ее входные данные будут замаскированы от генератора градиента. Они не учитываются при расчете градиентов.
Это полезно каждый раз, когда вы хотите вычислить значение с помощью TensorFlow, но вам нужно притвориться, что это значение является константой. Например, функцию softmax для вектора x можно записать как
def softmax(x):
numerator = tf.exp(x)
denominator = tf.reduce_sum(numerator)
return numerator / denominator
def stable_softmax(x):
z = x - tf.reduce_max(x)
numerator = tf.exp(z)
denominator = tf.reduce_sum(numerator)
return numerator / denominator
tf.reduce_max(x)
(если максимальные значения не уникальны, тогда градиент может перейти на неправильный вход) и рассматривать его как константу. Поэтому нам следует записать это какdef stable_softmax(x):
z = x - tf.stop_gradient(tf.reduce_max(x))
numerator = tf.exp(z)
denominator = tf.reduce_sum(numerator)
return numerator / denominator
- Алгоритм EM , в котором M-шаг не должен включать обратное распространение ошибки через выход E-шага .
- Обучение контрастной дивергенции машин Больцмана, где при дифференцировании энергетической функции обучение не должно распространяться обратно через граф, который генерировал выборки из модели.
- Состязательное обучение, при котором в процессе генерации состязательных примеров не должно происходить обратного подтверждения.
Публичные методы
Выход <Т> | какВывод () Возвращает символический дескриптор тензора. |
статический <T> StopGradient <T> | |
Выход <Т> | выход () |
Унаследованные методы
Публичные методы
публичный вывод <T> asOutput ()
Возвращает символический дескриптор тензора.
Входные данные для операций TensorFlow являются выходными данными другой операции TensorFlow. Этот метод используется для получения символического дескриптора, который представляет собой вычисление входных данных.
public static StopGradient <T> create (область действия , ввод операнда <T>)
Фабричный метод для создания класса, обертывающего новую операцию StopGradient.
Параметры
объем | текущий объем |
---|
Возврат
- новый экземпляр StopGradient