반응형


작년 11월이 tensorflow 의 3주년이었습니다. tensorflow 는 출시된 이래로 지금까지 가장 사랑받는 딥러닝 라이브러리였습니다. 그리고 얼마전 tensorflow dev summit 에서 새로운 milestone 이라고 할 수 있는 tensorflow 2.0 소식이 발표되었습니다! (tensorflow dev summit 2019 의 동영성은 이 곳에서 볼 수 있습니다.)


Tensorflow 2.0의 주된 내용은 tf.keras 에 관한 것이라고 할 수 있습니다. 사실 Keras 는 2년 전부터 tensorflow에 통합되었습니다. Tensorflow 2.0 의 가장 큰 변화는 tf.keras 의 기능을 보다 강화하여 기존 tensorflow 와의 통합을 한 것이라고 할 수 있습니다. 즉, keras 를 단순히 high-level API 로 제시한 것이 아니라, 전면으로 내세워 tf 의 기능을 통합하려는 것입니다. 본 영상에서도 대부분 tf.keras 의 기능을 설명하고 있습니다. 

Keras 는 대규모 모델 보다는 간단한 모델을 빠르게 프로토타이핑을 하는데 강점이 있는 API 입니다. 따라서 사용하기는 힘들어도 대규모 네트워크를 구현할 때는 tensorflow 가 이점이 있었는데, tensorflow 2.0 에서는 keras와 tf 를 통합함으로써 keras 를 대규모 네트워크에서도 쉽고 효율적으로 사용할 수 있도록 강화한 것입니다. 

대표적인 내용은 아래와 같습니다. 

1. eager context 를 사용할 수 있다. 1.* 버전에서 tf.keras를 사용할 때는 keras 로 작성된 모델을 그래프로 변환하는 과정을 거쳤는데, 2 버전에서는 eager mode로 동작할 수 있다 (run_eagerly=True). 통해 eager 모드로 누릴 수 있는 이점을 누릴 수 있다. eager는 디버깅과 프로토타이핑을 쉽게 할 수 있다. 
2. tensorflow의 estimator 를 쉽게 사용할 수 있어, transfer learninng 이 쉽다.

3. tensorboard 와 keras 와의 통합이 매우 간단해졌다. call back 에 넣기만 하면 된다. 

4. distributed strategy 를 keras 에서 사용할 수 있다. 예를 들어, multi-gpu, multi-node 처리를 가능하게하는데, 이는 엄청난 성능의 증가를 가능하게 한다. 그리고 이것이 단 몇 줄로 가능하다. 

5. 모델을 저장하는 방식 (SavedMode)을 tf 와 keras 가 비슷하게 할 수 있다. 이는 다양한 플랫폼에서 interchangable 한 모델이 될 것이다. 


출처 - https://medium.com/tensorflow/whats-coming-in-tensorflow-2-0-d3663832e9b8


Tensorflow 2.0은 alpha 버전을 지금 사용할 수 있고, rc 버전 (release candidate) 이 올해 봄 중에 배포될 예정이라고 합니다. 전 지금까지 tensorflow 를 backend로 keras 를 사용해왔었는데, tensorflow 2.0이 release 되면 tensorflow 내부에서 keras 를 사용하는 쪽으로 바꾸어야겠습니다. 이외에도 tf 2.0 에서는 중복된 api 와 duplicated 된 api 를 제거하여 더욱 쉽게 라이브러리를 사용할 수 있도록 개선하였습니다. 이외에 다양한 개선점에 대해서는 해당 포스트를 참고하시면 좋을 것 같습니다.

반응형