Tensorflowのローカルインストールを0.11rc2に更新しました。バージョン2で保存するために、保存する人にパラメータを追加する必要があるというメッセージが表示されました。この形式で保存されたモデルを読み込みます。私がモデルを走らせると、それはあらゆる時代に保存されます。保存するときは、translate.ckpt-3916
とtranslate.ckpt-3916.meta
というファイルを保存していました。今度は、translate.ckpt-3916.index
、translate.ckpt-3916.meta
、およびtranslate.ckpt-3916.data-000000-of-000001
という2つではなく、3つのファイルが取得されます。データをロードするためにTensorflow Saver v2を使用したモデルのロード
、私は次のコードを使用しmodel
はすでに私のプログラムの標準ハイパーで初期化されたモデルオブジェクトである
ckpt = tf.train.get_checkpoint_state(FLAGS.train_dir)
if ckpt and tf.gfile.Exists(ckpt.model_checkpoint_path):
print("Reading model parameters from %s" % ckpt.model_checkpoint_path)
model.saver.restore(session, ckpt.model_checkpoint_path)
else:
print("Created model with fresh parameters.")
session.run(tf.initialize_all_variables())
return model
を。これはsaver v1で問題なく動作します。 ckpt.model_checkpoint_path
は、バージョンに関係なくtranslate.ckpt-3916
のパスに評価されるため、チェックポイントがv2で保存されていれば、ファイルは見つかりません。
(バージョンのいずれかで保存された)そのディレクトリ内checkpoint
ファイルの内容は以下のとおりです。
model_checkpoint_path: "translate.ckpt-3916"
all_model_checkpoint_paths: "translate.ckpt-3916"
はセーバーV2にデータをロードするための新しい方法がありますか?さもなければ、私はどのように私のチェックポイントを読み込むことができますか?
EDIT:if ckpt and ckpt.model_checkpoint_path:
にラインif ckpt and tf.gfile.Exists(ckpt.model_checkpoint_path):
を変更する が好きではthis questionに示されているさらに少し動作するようですが、その後、次のエラーがスローされます:
InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [84] rhs shape= [98]
[[Node: save/Assign_54 = Assign[T=DT_FLOAT, _class=["loc:@NLC/Logistic/Linear/Bias"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/cpu:0"](NLC/Logistic/Linear/Bias, save/RestoreV2_54)]]