ブレークポイントの訓練tensorflow
2019年9月7日
名前が示すように、トレーニングを再開したモデルがまだトレーニングを完了していない何らかの理由で中断されたことを意味し、訓練基地の訓練を継続する次の時間は、かつての上部ではなく、ゼロからのスタートで訓練することができ、それらのトレーニング時間のためにあなたが長いこの道モデルは非常に友好的です。
あなたがトレーニングを再開したい場合は、2つの条件を満たさなければなりません。
(すなわち、データブレークポイント保存);(1)地域は、モデルトレーニングのスナップショットを保存し
(2)のスナップショットを読み取ることによって、モデル訓練場の環境を復元することができます。(ブレークポイントのデータ復旧)
これらの2つの操作がでtrain.Saverクラスtensorflowを使用していました。
1. tensorflow.trainn.Saver类
__init__ ( var_listは = なし、 再構築 = Falseを、 シャード = Falseを、 max_to_keep = 5 、 keep_checkpoint_every_n_hours = 10000.0 、 名前 = なし、 restore_sequentially = Falseを、 saver_def = なし、 ビルダー = なし、 defer_build = Falseを、 ALLOW_EMPTY = Falseを、 write_version = TF。 train.SaverDef.V2、 pad_step_number = Falseを、 save_relative_paths = Falseの、 ファイル名 = なし )
ここで紹介するすべてのパラメータが共通パラメータの説明だけでなく
max_to_keepを:デフォルトは5である、あなたはモデル番号を保存することができます;の数以上5を保存すると、自動的に5つのモデルの最大値が同時に存在していることを保証するために、最も古いモデルを削除します; 0またはNoneに設定すると、すべてのトレーニングは、モデル内に保存されますが、これは外付けハードディスクの多くは別に意味がありません。
他のパラメータは、一般的に、その上にデフォルト値を使用します。
セーバー= tf.train.Saver(max_to_keep = 10)
他のパラメータの使用を補完する機会を持っています。
2.データブレークポイントを保存
オブジェクトモデルを保存する方法保存セーバーを使用します。
セーブ( SESの、 save_path、 global_step = なし、 latest_filename = なし、 meta_graph_suffix = ' メタ' 、 write_meta_graph = 真、 write_state = 真、 strip_default_attrs = Falseを、 save_debug_info = 偽 )
一般的なパラメータ:
SESの:セッションを保存する必要性は、一般的には、私たちのプログラムのSESです。
save_path:このような「CKPT / my_model」として、モデルファイルのパスと名前を保存あなたはCKPTフォルダに保存したい場合に注意を払う、あなたは/バックCKPTスラッシュを追加する必要があります。
global_step:トレーニング時間、セーバーは、自動的にファイル名に格納された値に加算されます。
saver.save(SESの、" my_model "、global_step = 1 ) saver.save(SESの、" my_model "、global_step = 100 ) saver.save(SESの、" CKPT / my_model "、global_step = 1)
コードの行は以下のようになり、それぞれ1,2,3。
1:生成された「my_model_1ファイル」名のパスコードは、
2:名前が生成されたパスコード「my_model_100ファイル」では、
3:CKPTフォルダ内の「my_model_1ファイル」と呼ばれる生成します。
最も一般的な使用方法:
以下のためのエポックでの範囲(n_iter): '' ' 訓練プロセス ''' saver.save(SESの、ckpt_dir + " MODEL_NAME "、global_step =エポック)
前記ckpt_dirブレークデータは、パスに格納されます。
3.ブレークポイントデータ復旧
まず、前モデルと同じ確立し、そこには切れ目がなく、そのデータをチェックし、そうであれば、回復します。
= ckpt_dirは、" CKPTは/ " #はオブジェクトセーバー作成 セーバー= tf.train.Saver() #をブレークポイントのファイルがある場合、最近のブレークファイル読み込み CKPT = (ckpt_dirがある)tf.train.latest_checkpointを IF!CKPT = :なし セーバー.restore(SESの、CKPT)
モデル名、tf.train.latest_checkpoint(ckpt_dir)を提供する必要が自動的に最新のモデルファイルを探してckpt_dirフォルダに移動しません。