Betrachtet man den Beispielcode .
Ich würde gerne wissen, wie man Gradientenbeschneidungen in diesem Netzwerk auf dem RNN anwendet, wo die Möglichkeit besteht, dass Gradienten explodieren.
tf.clip_by_value(t, clip_value_min, clip_value_max, name=None)
Dies ist ein Beispiel, das verwendet werden könnte, aber wo führe ich das ein? In der Def von 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)
Dies ist jedoch nicht sinnvoll, da der Tensor _X die Eingabe und nicht der Grad ist. Was soll abgeschnitten werden?
Muss ich dafür meinen eigenen Optimierer definieren oder gibt es eine einfachere Option?
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)
und anschließend wird eine Iteration des Optimierers durchgeführt,optimizer.run()
aber die Verwendungoptimizer.run()
scheint in diesem Fall nicht zu funktionieren.