Considerando il codice di esempio .
Vorrei sapere come applicare il gradiente di clipping su questa rete sulla RNN dove c'è la possibilità di esplodere i gradienti.
tf.clip_by_value(t, clip_value_min, clip_value_max, name=None)
Questo è un esempio che potrebbe essere utilizzato, ma dove lo presento? Nella definizione di 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)
Ma questo non ha senso in quanto il tensore _X è l'input e non il grad cosa deve essere ritagliato?
Devo definire il mio ottimizzatore per questo o esiste un'opzione più semplice?
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)
e quindi viene eseguita un'iterazione dell'ottimizzatore,optimizer.run()
ma l'utilizzooptimizer.run()
non sembra funzionare in questo caso?