TensorFlow 1.0으로 전환

 

TensorFlow 1.0의 API는 이전 버전과 호환되지 않는 방식으로 변경되었습니다. 즉, TensorFlow 0.x에서 작동하는 TensorFlow 프로그램은 TensorFlow 1.0에서 반드시 작동하지 않습니다. 내부적으로 일관된 API를 보장하기 위해 이 API를 변경했으며, 1.x 수명주기 전반에 걸쳐 후속 변경을 계획하지 않았습니다.

이 가이드는 API의 주요 변경 사항과 TensorFlow 1.0 용 프로그램을 자동으로 업그레이드하는 방법을 안내합니다. 이 가이드는 변경 사항을 단계별로 설명 할뿐만 아니라 변경 이유를 설명합니다.

업그레이드 방법

코드를 1.0으로 자동 포팅하려면 tf_upgrade.py스크립트를 사용해 보십시오 . 이 스크립트는 많은 경우를 처리하지만 수동 변경이 필요한 경우도 있습니다. GitHub에서 이 스크립트를 가져옵니다 .

단일 0.x TensorFlow 소스 파일을 1.0으로 변환하려면 다음 형식의 명령을 입력하십시오.

$ python tf_upgrade.py –infile InputFile –outfile OutputFile

예를 들어, 다음 명령은 이름이 test.py인 0.x의 TensorFlow 프로그램을 이름이  test_1.0.py인 1.0의 TensorFlow 프로그램으로 변환합니다.

$ python tf_upgrade.py –infile test.py –outfile test_1.0.py

tf_upgrade.py스크립트는 또한 report.txt라는 이름의 파일을 생성하고, 이 파일은 수행한 모든 변경 사항을 자세히 설명하고 수동으로 해야 할 변경 사항에 대한 추가 제안을 합니다.

0.x TensorFlow 프로그램의 전체 디렉토리를 1.0으로 업그레이드하려면 다음 형식의 명령을 입력하십시오.

$ python tf_upgrade.py –intree InputDir –outtree OutputDir

예를 들어, 다음 명령은 디렉토리에 있는 모든 0.x TensorFlow 프로그램을 변환하여 해당 /home/user/cool 디렉토리에 해당하는 1.0  항목을 /home/user/cool_1.0로 만듭니다.

$ python tf_upgrade.py –intree / home / user / cool –outtree /home/user/cool_1.0

제한 사항

조심해야 할 몇 가지 사항이 있습니다. 구체적으로 :

  • tf.reverse()의 인스턴스를 수동으로 수정해야 합니다 . tf_upgrade.py 스크립트는 표준출력(stdout)과 report.txt파일로 경고합니다.

  • 재정렬된 인수에서 tf_upgrade.py 코드는 최소한의 형식으로 다시 작성하려고 하므로 실제 인수 순서를 자동으로 변경할 수 없습니다. 대신 tf_upgrade.py 키워드 인수를 도입하여 함수 호출을 순서에 독립적으로 만듭니다.

  • tf.get_variable_scope().reuse_variables() 는 작동하지 않을 거것입니다. 해당 줄을 삭제하고 다음과 같은 줄로 바꾸는 것이 좋습니다.

       with tf.variable_scope(tf.get_variable_scope(), reuse=True):

        …

  • tf.pack과 tf.unpack 비슷하게, TensorArray.pack와 TensorArray.unpack을 TensorArray.stack와 TensorArray.unstack로 이름을 변경합니다. 그러나, TensorArray.pack과 TensorArray.unpack은  tf 네임스페이스와 간접적으로 관련되어 있기 때문에 사전적으로 감지 할 수없습니다. 예) foo = tf.TensorArray(); foo.unpack()

Upgrading your code manually

tf_upgrade.py를 실행하는 대신 코드를 수동으로 업그레이드 할 수 있습니다. 이 문서의 나머지 부분에서는 TensorFlow 1.0에서 변경된 모든 이전 버전과의 호환 목록을 제공합니다.

Variables

가변함수는 더 일관되고 덜 혼동스럽게 만들어졌습니다.

  • tf.VARIABLES

    • tf.GLOBAL_VARIABLES 로 이름을 변경합니다.

  • tf.all_variables

    • tf.global_variables 로 이름을 변경합니다.

  • tf.initialize_all_variables

    • tf.global_variables_initializer 로 이름을 변경합니다.

  • tf.initialize_local_variables

    • tf.local_variables_initializer 로 이름을 변경합니다.

  • tf.initialize_variables

    • tf.variables_initializer 로 이름을 변경합니다.

Summary functions

Summary function 은 tf.summary 네임스페이스 아래에 통합되었습니다.

  • tf.audio_summary

    • tf.summary.audio로 이름을 변경합니다.

  • tf.contrib.deprecated.histogram_summary

    • tf.summary.histogram로 이름을 변경합니다.

  • tf.contrib.deprecated.scalar_summary

    • tf.summary.scalar로 이름을 변경합니다.

  • tf.histogram_summary

    • tf.summary.histogram로 이름을 변경합니다.

  • tf.image_summary

    • tf.summary.image로 이름을 변경합니다.

  • tf.merge_all_summaries

    • tf.summary.merge_all로 이름을 변경합니다.

  • tf.merge_summary

    • tf.summary.merge로 이름을 변경합니다.

  • tf.scalar_summary

    • tf.summary.scalar로 이름을 변경합니다.

  • tf.train.SummaryWriter

    • tf.summary.FileWriter로 이름을 변경합니다.

이후 내용은 원문 참조 : https://www.tensorflow.org/install/migration