rltrader
rltrader copied to clipboard
TensorFlow 2.5 적용과 한계
TensorFlow 2에서는 Graph를 생성하지 않고 코드를 즉시 실행(Eager Execution) 합니다. 이로 인해 Graph, Session 등을 신경쓰지 않아도 되서 코드를 쉽게 작성할 수 있습니다.
사실 케라스를 사용하면 큰 차이가 없습니다만...
그런데 TF2의 Eager Execution에 의해 predict를 많이 호출하는 RLTrader의 속도가 매우 느려집니다.
결국 최신 TF2를 사용하면서 TF2 기능을 끄도록 했습니다. https://github.com/quantylab/rltrader/blob/dev/networks.py#L12
원인을 찾아주셔서 감사합니다! 그러면 새로운 TF2버전을 사용해도 TF1버전과 동일한 속도로 코드가 돌아갈까요?
@kyle-109 네 TF2를 사용하지만 속도 저하의 원인인 Eager Execution을 비활성화하여 TF1과 같은 방식으로 작동합니다.
TensorFlow 2에서는 Graph를 생성하지 않고 코드를 즉시 실행(Eager Execution) 합니다. 이로 인해 Graph, Session 등을 신경쓰지 않아도 되서 코드를 쉽게 작성할 수 있습니다.
사실 케라스를 사용하면 큰 차이가 없습니다만...
그런데 TF2의 Eager Execution에 의해 predict를 많이 호출하는 RLTrader의 속도가 매우 느려집니다.
결국 최신 TF2를 사용하면서 TF2 기능을 끄도록 했습니다. https://github.com/quantylab/rltrader/blob/dev/networks.py#L12
감사합니다. Gpu 활용시 eager mode를 사용하지 않으니 속도가 많이 향상되었습니다. 다만 좀더 속도를 향상시키고 싶어서 Colab에서 Tpu를 사용해보았는데 속도가 느리더라구요. Tpu에서는 eager mode on 상태에서만 사용가능하다고 하는데 tpu속도가 느린이유도 이것때문일까요??