0
ネットワークの出力(他の方法で計算)でグラディエントを得ることができます。グラディエントをすべてのパラメータにバックプロパゲーションしてネットワーク全体に適用できますか?テンソルフローを使用すると、既に計算されたグラジエントをすべてのパラメータにバックプロパゲーションして、ネットワーク全体にグラジエントを適用できますか?
ネットワークの出力(他の方法で計算)でグラディエントを得ることができます。グラディエントをすべてのパラメータにバックプロパゲーションしてネットワーク全体に適用できますか?テンソルフローを使用すると、既に計算されたグラジエントをすべてのパラメータにバックプロパゲーションして、ネットワーク全体にグラジエントを適用できますか?
これは、linkで確認できます。あなたは計算された勾配もtensors
またはvariables
ある場合は、gradients
を置き換えることができます
trainable_variables = tf.trainable_variables()
grads = tf.gradients(self.cost, trainable_variables)
if self.hps.optimizer == 'sgd':
optimizer = tf.train.GradientDescentOptimizer(self.lrn_rate)
elif self.hps.optimizer == 'mom':
optimizer = tf.train.MomentumOptimizer(self.lrn_rate, 0.9)
apply_op = optimizer.apply_gradients(
zip(grads, trainable_variables),
global_step=self.global_step, name='train_step')
。
あなたが計算した勾配が数値である場合、私はテンソルフローが簡単にこれを行うことができるとは確信していません。
私はこのように、すべてのgradsを取得し、それらを適用する必要がありますと思います。私は最後のレイヤーのグラデーションのみを持つことができます。最初のレイヤーのグラデーションは先行レイヤーのレイヤーグラデーションとすべてのグラデーションを取得してから適用できます。ありがとうございました! –