RLTrader에서 TensorFlow 2 사용하기

2021-07-26 • rltraderrltrader, tensorflow2, tf2 • 1 min read

기존 RLTrader에서는 TensorFlow 1.5 버전을 사용했습니다. TF2가 나온지 꽤 오래 되었는데 RLTrader에서 TF2 적용 시 처리 시간이 오래 걸리는 성능 하락 이슈가 있어서 TF2를 적용하지 않고 있었습니다.

TF2에서는 Graph를 생성하지 않고 코드를 즉시 실행(Eager Execution) 합니다. 이로 인해 Graph, Session 등을 신경쓰지 않아도 되서 코드를 쉽게 작성할 수 있습니다.

사실 케라스를 사용하면 큰 차이가 없습니다만...

그런데 TF2의 Eager Execution에 의해 predict를 많이 호출하는 RLTrader의 속도가 매우 느려집니다.

결국 최신 TF2를 사용하면서 TF2 기능을 끄도록 했습니다. https://github.com/quantylab/rltrader/blob/dev/networks.py#L12

import tensorflow as tf
tf.compat.v1.disable_v2_behavior()

이렇게 Eager Execution을 비활성화했을 때와 안했을 때의 prediction 속도는 5배 가량 차이납니다.

이후 TF2가 더 발전하여 Eager Execution에서도 속도 향상이 생기기를 기대해 봅니다.