Biorąc pod uwagę przykładowy kod .
Chciałbym wiedzieć, jak zastosować obcinanie gradientu w tej sieci w sieci RNN, gdzie istnieje możliwość eksplozji gradientów.
tf.clip_by_value(t, clip_value_min, clip_value_max, name=None)
To jest przykład, który można wykorzystać, ale gdzie mam go wprowadzić? W obronie 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)
Ale to nie ma sensu, ponieważ tensor _X jest wejściem, a nie gradem, który ma być przycięty?
Czy muszę w tym celu zdefiniować własny Optimizer, czy też istnieje prostsza opcja?
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)
a następnie wykonywana jest iteracja optymalizatora,optimizer.run()
ale użycieoptimizer.run()
nie wydaje się działać w tym przypadku?