더북(TheBook)

텐서플로의 그레이디언트 테이프

텐서플로의 강력한 자동 미분 기능을 활용할 수 있는 API는 GradientTape입니다. 이 API는 파이썬의 with 문과 함께 사용하여 해당 코드 블록 안의 모든 텐서 연산을 계산 그래프 형태(이따금 이를 ‘테이프(tape)’라고 부릅니다)로 기록합니다. 그다음 이 그래프를 사용해서 (tf.Variable 클래스의 인스턴스인) 변수 또는 변수 집합에 대한 어떤 출력의 그레이디언트도 계산할 수 있습니다. tf.Variable은 변경 가능한(mutable) 상태를 담기 위한 특별한 종류의 텐서입니다. 예를 들어 신경망의 가중치는 항상 tf.Variable의 인스턴스입니다.

import tensorflow as tf

x = tf.Variable(0.) 
with tf.GradientTape() as tape: 
    y = 2 * x + 3 
grad_of_y_wrt_x = tape.gradient(y, x) 

초깃값 0으로 스칼라 변수를 생성합니다.

GradientTape 블록을 시작합니다.

이 블록 안에서 변수에 텐서 연산을 적용합니다.

tape를 사용해서 변수 x에 대한 출력 y의 그레이디언트를 계산합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.