TensorFlow : TensorLayer : FAQ (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 12/06/2018
* 本ページは、TensorLayer の以下のドキュメントの一部を翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
FAQ
TensorLayer をどのように効果的に学習するか
貴方がどのステージにいようとも、TensorLayer のソースコードとこの web サイト の Understand layer / Your layer を読むためにちょうど 10 分を費やすことを勧めます、抽象的な方法が誰に取っても非常に単純であることを見い出すでしょう。ソースコードを読むことは TensorFlow をより良く理解する助けとなりそして貴方自身のメソッドを容易に実装することを可能にします。
初心者
深層学習が初めてである人に対しては、contirbutors がこの web サイトで多くのチュートリアルを提供しています、これらのチュートリアルはオートエンコーダ、畳込みニューラルネットワーク、リカレント・ニューラルネットワーク、単語埋め込みと深層強化学習等を理解する案内をするでしょう。貴方が深層学習の基本を既に理解している場合には、チュートリアルはスキップして GitHub 上のサンプルコードを読み、スクラッチからサンプルを実装することを勧めます。
技術者
産業からの人々のために、contributors は多くの形式が一貫したサンプルを提供しました、コンピュータ・ビジョン、自然言語処理、そして強化学習をカバーしています。加えて、(オンラインで見つけられる) 画像キャプショニング、セマンティック/インスタンス・セグメンテーション、機械翻訳、チャットボット等の製品レベルのサンプルを既に実装した多くの TensorFlow ユーザもいます。注目すべき点は、特にコンピュータ・ビジョンのためのラッパー Tf-Slim は TensorLayer とシームレスに接続可能であることです。従って、貴方のプロジェクトで使用可能なサンプルを見つけることができるかもしれません。
研究者
学術からの人々のために、TensorLayer は元々は新規のアルゴリズムを実装する際に他のライブラリに伴う問題に直面した PhD 学生により開発されました。編集可能なモードで TensorLayer をインストールすることが推奨されます、そうすれば TensorLayer で貴方のメソッドを拡張できます。画像キャプショニング、ビジュアル QA 等のような画像関連の研究者のために、TensorLayer で既存の Tf-Slim 事前訓練モデルを使用することは非常に有用であることを見い出すかもしれません (Tf-Slim と接続するための特別な層が提供されます)。
幾つかの層を訓練から除外する
更新することを望む変数のリストを得る必要があるかもしれません、TensorLayer は変数リストを得るための 2 つの方法を提供します。
最初の方法はネットワークの all_params を使用することです、デフォルトでは、それは変数を順番にストアします。tl.layers.print_all_variables(train_only=True) あるいは network.print_params(details=False) を通して変数情報を表示出力できます。どの変数を更新するか選択するために、下を行なうことができます。
train_params = network.all_params[3:]
2 番目の方法は与えられた名前で変数を取得します。例えば、層名が dense を含む総ての変数を得たい場合には、下のようにできます。
train_params = tl.layers.get_variables_with_name('dense', train_only=True, printable=True)
変数リストを得る後、変数の一部だけを更新するように次のように optimizer を定義できます。
train_op = tf.train.AdamOptimizer(0.001).minimize(cost, var_list= train_params)
Logging
TensorLayer は実行情報をログするために Python logging module を採用しています。logging モジュールはデフォルトではコンソールにログを表示出力します。logging モジュールを configure することを望む場合、その マニュアル に従ってください。
可視化
Cannot Save Image
SSH 制御を通してスクリプトを実行する場合、時々次のエラーを見つけるかもしれません。
_tkinter.TclError: no display name and no $DISPLAY environment variable
それが発生する場合、sudo apt-get install python3-tk を実行するか、import tensorlayer as tl の前に import matplotlib そして matplotlib.use(‘Agg’) してください。代替的に、visualize.py か貴方自身のコードのトップに次のコードを追加してください。
import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt
マスター・バージョンをインストールする
TensorLayer の総ての新しい特徴を使用するためには、Github から新しいバージョンをインストールする必要があります。その前に、既に git をインストールしていることを確実にする必要があります。
[stable version] pip install tensorlayer [master version] pip install git+https://github.com/tensorlayer/tensorlayer.git
モデルをロードする
tl.files.load_npz() は tl.files.save_npz() によりセーブされた npz モデルだけをロードできることに注意してください。TensorLayer ネットワークにロードしたいモデルを持つ場合、最初にパラメータを順番にリストに割り当てて、それからパラメータを貴方の TensorLayer モデルにロードするために tl.files.assign_params() を使用することができます。
以上