검색하기 귀찮아서 블로그에 박제
tensorflow에서 optimizer 'apply_gradients'와 'minimize' 차이
oziguyo_
2022. 7. 4. 22:19
728x90
1.
optimizer = tf.train.AdamOptimizer(learning_rate)
grads_and_vars = tape.gradient(cnn.loss)
train_op = optimizer.apply_gradients(zip(grads_and_vars, model.trainable_variables))
2.
optimizer = tf.train.AdamOptimizer(learning_rate)
train_op = optimizer.minimize(cnn.loss, global_step=global_step)
둘이 같은 동작을 한다고 보면 된다.
minimize는 다음과 같다.
def minimize(self, loss, var_list, grad_loss=None, name=None, tape=None):
grads_and_vars = self._compute_gradients(loss, var_list=var_list, grad_loss=grad_loss, tape=tape)
return self.apply_gradients(grads_and_vars, name=name)
그러나 _compute_gradients는 private 이므로 건드리지 않는게 좋다.
728x90