私の現在のプロジェクトでは、100回の繰り返しステップごとにモデルをトレーニングし、チェックポイントを保存します。チェックポイントファイルはすべて同じディレクトリ(model.ckpt-100、model.ckpt-200、model.ckpt-300など)に保存されます。その後、最新のものだけでなく、保存されたすべてのチェックポイントの検証データに基づいてモデルを評価したいと思います。テンソルフロー:複数のチェックポイントでモデル評価を実行
現在、チェックポイントファイルを復元するためのコードの私の作品は、次のようになります。
ckpt = tf.train.get_checkpoint_state(FLAGS.checkpoint_dir)
ckpt_list = saver.last_checkpoints
print(ckpt_list)
if ckpt and ckpt.model_checkpoint_path:
print("Reading model parameters from %s" % ckpt.model_checkpoint_path)
saver.restore(sess, ckpt.model_checkpoint_path)
# extract global_step from it.
global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1]
print('Succesfully loaded model from %s at step=%s.' %
(ckpt.model_checkpoint_path, global_step))
else:
print('No checkpoint file found')
return
しかし、これは唯一、最新の保存されたチェックポイントファイルを復元します。では、保存されたすべてのチェックポイントファイルにループを書き込むにはどうすればよいですか? saver.last_checkpointsでチェックポイントファイルのリストを取得しようとしましたが、返されるリストは空です。
ご協力いただきまして、ありがとうございます。
モデルを正確に保存していますか? 'saver.save(..)'を呼び出す際に、出力ファイルの名前を自分で作成しているのでしょうか、あるいは 'global_step'パラメータを使用していますか? – kaufmanu