Interrompe o cálculo do gradiente.
Quando executada em um gráfico, esta operação gera seu tensor de entrada como está.
Ao construir operações para calcular gradientes, esta operação evita que a contribuição de suas entradas seja levada em consideração. Normalmente, o gerador de gradiente adiciona operações a um gráfico para calcular as derivadas de uma 'perda' especificada, descobrindo recursivamente as entradas que contribuíram para o seu cálculo. Se você inserir esta operação no gráfico, as entradas serão mascaradas do gerador de gradiente. Eles não são levados em consideração para calcular gradientes.
Isso é útil sempre que você deseja calcular um valor com o TensorFlow, mas precisa fingir que o valor era uma constante. Por exemplo, a função softmax para um vetor x pode ser escrita como
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)
(se os valores máximos não forem únicos, então o gradiente pode fluir para a entrada errada) e tratá-lo como uma constante. Portanto, devemos escrever isso comodef stable_softmax(x):
z = x - tf.stop_gradient(tf.reduce_max(x))
numerator = tf.exp(z)
denominator = tf.reduce_sum(numerator)
return numerator / denominator
- O algoritmo EM onde o M-step não deve envolver retropropagação através da saída do E-step .
- Treinamento de divergência contrastiva de máquinas de Boltzmann onde, ao diferenciar a função energia, o treinamento não deve retropropagar através do gráfico que gerou as amostras do modelo.
- Treinamento adversário, onde nenhum backprop deve acontecer durante o processo de geração de exemplo adversário.
Métodos Públicos
Saída <T> | asOutput () Retorna o identificador simbólico de um tensor. |
estático <T> StopGradient <T> | |
Saída <T> | saída () |
Métodos herdados
Métodos Públicos
Saída pública <T> asOutput ()
Retorna o identificador simbólico de um tensor.
As entradas para operações do TensorFlow são saídas de outra operação do TensorFlow. Este método é usado para obter um identificador simbólico que representa o cálculo da entrada.
public static StopGradient <T> create (escopo do escopo , entrada Operand <T>)
Método de fábrica para criar uma classe que envolve uma nova operação StopGradient.
Parâmetros
escopo | escopo atual |
---|
Devoluções
- uma nova instância de StopGradient