Розглядаючи приклад коду .
Я хотів би знати, як застосувати відсікання градієнта в цій мережі на RNN, де існує можливість вибуху градієнтів.
tf.clip_by_value(t, clip_value_min, clip_value_max, name=None)
Це приклад, який можна використати, але де я можу це ввести? У def 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)
Але це не має сенсу, оскільки тензор _X є вхідним, а не градусом, що слід відсікти?
Чи потрібно для цього визначати власний оптимізатор, чи є простіший варіант?
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)
а потім ітерація оптимізатора робиться як,optimizer.run()
але використанняoptimizer.run()
, здається, не працює в цьому випадку?