Effective TensorFlow 2.0

https://www.tensorflow.org/alpha/guide/effective_tf2

주요 변경 사항 요약

  • API 정리 : 많은 API가 삭제 또는 이동 됨
  • 즉시 실행 : 기존의 세션을 활용하는 수동 컴파일 방식 탈피. 모든 코드는 라인 순서대로 실행.
  • 전역 메커니즘 제거 : 기존에 tf.global_varialbes_initializer() 같은 헬퍼 메서드를 필요로 하던 메커니즘을 삭제.
  • 세션 대신 함수 :
    • tf.function() 데코레이터로 파이썬 함수 감쌀 수 있음
    • 텐서플로가 이 함수를 하나의 그래프로 실행하기 위해 JIT 컴파일
    • 노드 가지치기, 커녈 융합 등 함수 최적화 가능
    • 함수 저장 및 복구 가능. 이식성
    • 파이썬과 TF 코드를 자유롭게 섞어 씀으로써 파이썬의 장점 활용
    • TF는 파이썬 인터프리터가 없는 환경에서도 실행 됨. 사용자가 환경에 따라 코드를 재작성하지 않도록 @tf.function를 추가하면 오토그래프가 파이썬 코드를 동일한 텐서플로 코드로 변경

TF 2.0의 권장 사항

  • 작은 함수로 코드를 리팩토링 하라 : 모든 연산을 먼저 결합하여 준비 후 sess.run하던 이전 버전과 다르게, TF 2.0은 필요 시 호출 할 수 있는 작은 함수로 코드를 리팩토링 해야함. 모든 함수의 tf.function 데코를 적용할 필요 없음. 모들 훈련의 한 단계(step)나 정방향 연산 forward pass 같은 고수준 연산에만 tf.function 데코레이터를 적용
  • 케라스 층과 모델을 사용해 변수를 관리 하라