https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/train/exponential_decay
tf.train.exponential_decay(
learning_rate,
global_step,
decay_steps,
decay_rate,
staircase=False,
name=None
)
decayed_learning_rate = learning_rate *
decay_rate ^ (global_step / decay_steps)
global_step = tf.Variable(0, trainable=False)
starter_learning_rate = 0.1
learning_rate = tf.compat.v1.train.exponential_decay(starter_learning_rate,
global_step,
100000, 0.96, staircase=True)
# Passing global_step to minimize() will increment it at each step.
learning_step = (
tf.compat.v1.train.GradientDescentOptimizer(learning_rate)
.minimize(...my loss..., global_step=global_step)
)
예제에서 첫 번째 파라메터로 들어간 starter_learning_rate는 말 그대로 최초 학습시 사용될 learning_rate이다.
두 번째 파라메터로 사용된 global_step은 현재 학습 횟수이다.
세 번째 파라메터는 위 예제에서는 100000이 들어갔는데 총 학습 횟수이다.
네 번째 파라메터는 얼마나 rate가 감소될 것인가를 나타낸다. 매번 0.96이 곱해진다고 생각하면 된다.
다섯 번째 파라메터는 이산적으로 학습 속도 감속 유무이다. 나는 이산적으로라는 말의 정의가 무엇인지 잘 모르겠지만 해당 파라메터가 true일때 decay_rate 즉 4번째 파라메터에 (global_step / decay_steps)의 승수가 적용된다.
출처: https://twinw.tistory.com/243 [흰고래의꿈]
'IT 공방 > Python' 카테고리의 다른 글
tensorflow 2.0 CNN(sequential GradientTape) (0) | 2020.01.23 |
---|---|
tensorflow 2.0 CNN(sequential model.fit) (0) | 2020.01.23 |
colab(코랩)에서 ipynb 파일을 html로 저장하기 (0) | 2019.12.10 |
python으로 상관관계 분석하기 (이산형자료) (0) | 2019.11.25 |
Python list(리스트) 형태 엑셀(excel) 로 저장하기 (0) | 2019.09.23 |