0
grads_and_vars = []
for var in tf.trainable_variables():
if 'synthetic' in var.name:
grads_and_vars.append(self.optim.compute_gradients(self.grad_total_loss, var_list=[var])[0])
else:
for k in self.grad_output.keys():
if k in var.name:
grads = tf.gradients(self.layer_out[k], var, self.grad_output[k])[0]
grads_and_vars.append((grads,var))
# minimize the gradient loss and only change the dni module
self.train_op = self.optim.apply_gradients(grads_and_vars, global_step=self.global_step)
私は誰かのコードに読んでいます、誰も私に説明することができテンソルフローにおけるこれら2つの方法の勾配の計算の違いは何ですか?
grads_and_vars.append(self.optim.compute_gradients(self.grad_total_loss, var_list=[var])[0])
と
grads = tf.gradients(self.layer_out[k], var, self.grad_output[k])[0]
grads_and_vars.append((grads,var))
違い何彼らは同じことをやっていますか?