TensorFlow 1.9


TensorFlow 1.9
텐서플로우 1.9 버전의 업데이트 내용을 설명드립니다. 업데이트가 이뤄진지 조금 시간이 지났지만, 기존 버전과 달리 다소 큰 변화가 있어서 업데이트 내용을 정리합니다.

이번 업데이트에서 가장 큰 차이는 Keras API 버전이 업데이트 되면서 가이드 튜토리얼까지 Keras기반으로 업데이트 된 것일 것입니다. 그리고 기존 하위 버전에서 사용되던 코드가 호환되지 않는 경우가 발생 하는 내용을 포함합니다. 이점 함께 참고해 주시기 바랍니다.

설치

아래의 명령어로 텐서플로우 1.9 버전으로 설치 또는 업그레이드 가능합니다.

# CPU버전 
$ sudo -H pip install --upgrade tensorflow==1.9.0

# GPU 버전일 경우
$ sudo -H pip install --upgrade tensorflow-gpu==1.9.0

직접 소스코드를 빌드할 경우 아래의 글을 참고해 주시기 바랍니다. 현재 소스코드에서 태깅된 버전은 v1.9.0 입니다.

텐서플로우 소스코드 빌드 방법

주요 내용

  • 가이드 튜토리얼 문서가 기존 Estimator 모델에서 tf.keras 기반으로 내용으로 변경되었습니다.
  • tf.keras에서 사용된 Keras API 버전의 2.1.6 으로 업데이트되었습니다.
  • tf.keras.layers.CuDNNGRU 그리고 tf.keras.layers.CuDNNLSTM 레이어가 추가되었습니다.
  • Boosted Trees Estimator 모델의 지원 기능 추가되었습니다.
  • TFLite Optimizing Converter 를 위한 Python 인터페이스가 확장되었고, 표준 PIP 패키지 설치에서 커맨드 라인 인터페이스가 포함되었습니다.
  • 데이터 로딩과 텍스트 처리 기능이 향상 되었습니다. (tf.decode_compressed, tf.string_strip, tf.strings.regex_full_match)
  • 추가 pre-made Estimator 모델이 추가되었습니다. (tf.contrib.estimator.BaselineEstimator, tf.contrib.estimator.RNNClassifier, tf.contrib.estimator.RNNEstimator)
  • distributions.Bijector API가 Bijectors를 위한 브로드캐스팅을 지원하게 되었습니다.

튜토리얼 문서는 텐서플로우를 처음으로 시작하는 분들이 학습 하는 문서입니다. 모델을 개발하고 사용하는데 있어서 권장되는 방법을 제시합니다. 과거에는 로우 레벨의 API를 학습하면서 모델을 개발하고, 학습한 뒤에 사용하였지만 이후에는 Estimator 모델을 사용하도록 권장하였습니다.

그리고 현재 1.9 버전에서는 Keras API를 사용하여 모델 개발을 권장하는 듯합니다. 현재 pre-made Estimator이 추가되고 있기에 조금더 텐서플로우 개발 방향을 지켜봐야 할 듯합니다. 텐서플로우에서 Keras API를 사용하여 모델을 개발 할 수 있을 경우, CNTK 또는 Theano의 딥러닝 프레임워크를 사용하는 분들이 바로 텐서플로우를 이용하여 모델을 개발할 수 있을 것입니다.

Keras API 를 이용하여 생성된 모델은 tf.keras.estimator.model_to_estimator 라는 함수로 Estimator 모델로 변환하여 사용할 수 있으며, 시간이 된다면 Keras API 에 대해서 보다 자세히 내용을 설명하는 글을 작성하도록 하겠습니다.

호환 불가 내용

만약 기존의 코드에서 빈 변수 범위를 지정할 경우, 1.9버전을 포함하여 이후 버전부터 호환이 되지 않게 됩니다.
기존의 코드가 variable_scope(”, …) 으로 개발된 경우 variable_scope(tf.get_variable_scope(), …) 와 같이 수정해 주셔야 합니다.

추가적으로 사용자 정의 ops 를 빌드하는데 사용되는 헤더 파일들이 site-packages/external 에서 site-packages/tensorflow/include/external 으로 이동되었으니, 함께 참고해 주시기 바랍니다.

본문 내용 인용시에는 출처를 밝혀 주시기 바랍니다.