ホーム » TensorFlow 2.0 » TensorFlow 2.0 Alpha : アップグレード・スクリプトで変換する

TensorFlow 2.0 Alpha : アップグレード・スクリプトで変換する

TensorFlow 2.0 Alpha : アップグレード・スクリプトで変換する (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/12/2019

* 本ページは、TensorFlow の本家サイトの TF 2.0 Alpha の以下のページを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

アップグレード・スクリプトで変換する

TensorFlow 2.0 は引数の順序変更、シンボルの名前変更そしてパラメータのデフォルト値変更のような多くの API 変更を含みます。これらの変更総てを手動で遂行することは退屈で誤りがちになるでしょう。変更を合理化して貴方の TF 2.0 への移行をできる限りシームレスにするために、TensorFlow チームはレガシーコードを新しい API に移行する手助けをするために tf_upgrade_v2 ユティリティを作成しました。

tf_upgrade_v2 ユティリティは TF 2.0 の pip install で自動的に含まれます。それは既存の TensorFlow 1.x Python スクリプトを TensorFlow 2.0 に変換することにより貴方のアップグレードプロセスを加速します。

変換スクリプトはできる限り自動化しますが、依然としてスクリプトで遂行できない構文的そしてスタイル的な変更があります。

 

互換モジュール

特定のある API シンボルは文字列置換の単純な使用ではアップグレードできません。貴方のコードが TensorFlow 2.0 で依然としてサポートされることを確実にするため、アップグレード・スクリプトは compat.v1 モジュールを含みます。このモジュールは tf.foo のような TF 1.x シンボルを等値な tf.compat.v1.foo 参照で置き換えます。互換モジュールが素晴らしい一方で、置き換えを手動で校正してそれらを tf.compat.v1.* 名前空間の代わりに tf.* 名前空間の新しい API に出来る限り迅速に移行することを推奨します。

TensorFlow 2.x モジュールの deprecation (例えば、tf.flags と tf.contrib) により、幾つかの変更は compat.v1 への切り替えでは対応できません。このコードのアップグレードは追加ライブラリ (例えば、absl.flags) の使用や tensorflow/addons のパッケージへの切り替えが必要かもしれません。

 

アップグレード・スクリプト

貴方のコードを TensorFlow 1.x から TensorFlow 2.x へ変換するためには、これらの手順に従ってください :

pip パッケージからスクリプトを実行する

最初に、tensorflow==2.0.0-alpha0 か tensorflow-gpu==2.0.0-alpha0 パッケージを pip install します。

Note: tf_upgrade_v2 は TensorFlow 1.13 と (nightly TF 2.0 ビルドを含む) それ以後のために自動的にインストールされます。

アップグレード・スクリプトは単一の Python ファイル上で実行できます :

tf_upgrade_v2 --infile tensorfoo.py --outfile tensorfoo-upgraded.py

スクリプトはコードのための fix を見つけられない場合にはエラーをプリントします。ディレクトリ・ツリー上でそれを実行することもできます :

# upgrade the .py files and copy all the other files to the outtree
tf_upgrade_v2 --intree coolcode --outtree coolcode-upgraded

# just upgrade the .py files
tf_upgrade_v2 --intree coolcode --outtree coolcode-upgraded --copyotherfiles False

 

詳細レポート

スクリプトはまた詳細な変更のリストも報告します、例えば :

'tensorflow/tools/compatibility/testdata/test_file_v1_12.py' Line 65
--------------------------------------------------------------------------------

Added keyword 'input' to reordered function 'tf.argmax'
Renamed keyword argument from 'dimension' to 'axis'

    Old:         tf.argmax([[1, 3, 2]], dimension=0))
                                        ~~~~~~~~~~
    New:         tf.argmax(input=[[1, 3, 2]], axis=0))

この情報の総ては report.txt ファイルに含まれます、それは貴方のカレント・ディレクトリにエクスポートされます。ひとたび tf_upgrade_v2 が実行されて貴方のアップグレードされたスクリプトがエクスポートされれば、貴方のモデルを実行して出力が TF 1.x に類似していることを確実にするためにチェックできるでしょう。

 

警告 (= Caveats)

  • このスクリプトを実行する前に貴方のコードの一部を手動でアップデートしないでください。特に、tf.argmax や tf.batch_to_space のように引数を順序変更した関数はスクリプトに (貴方の既存のコードをミスマップする) 正しくないキーワード引数を追加させる原因になります。
  • このスクリプトは引数の順序変更をしません。代わりに、スクリプトは (引数を順序変更した) 関数にキーワード引数を追加します。
 

以上



AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com