Considerando o código de exemplo .
Gostaria de saber como aplicar gradiente nessa rede no RNN onde existe a possibilidade de explodir gradientes.
tf.clip_by_value(t, clip_value_min, clip_value_max, name=None)
Este é um exemplo que poderia ser usado, mas onde posso apresentá-lo? Na defesa do RNN
lstm_cell = rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0)
# Split data because rnn cell needs a list of inputs for the RNN inner loop
_X = tf.split(0, n_steps, _X) # n_steps
tf.clip_by_value(_X, -1, 1, name=None)
Mas isso não faz sentido porque o tensor _X é a entrada e não o grad que deve ser recortado?
Tenho que definir meu próprio Otimizador para isso ou existe uma opção mais simples?
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)
e, em seguida, uma iteração do otimizador é feita como,optimizer.run()
mas o usooptimizer.run()
não parece funcionar neste caso?