1. ホーム
  2. tensorflow

[解決済み] tf.train.latest_checkpoint はチェックポイントパスを渡すと none を返す。

2022-03-01 14:28:11

質問

tf.train.latest_checkpoint()を使って予測用ENetモデルをトレーニングした後にチェックポイントをロードしようとすると、正しいチェックポイントパスを渡しているにもかかわらず、"None"が返されます。

以下は私のコードです。

     image_dir = './dataset/test/'
     images_list = sorted([os.path.join(image_dir, file) for file in 
     os.listdir(image_dir) if file.endswith('.png')])

     checkpoint_dir = "./checkpoint_mk"
     listi = os.listdir(checkpoint_dir)
     print(listi)
     checkpoint = tf.train.latest_checkpoint("./log/original/check")
     print(checkpoint,'--------------------------------------- 
     ++++++++++++++++++++++++++++++++++++++++++++++++++++')

None を返します。

チェックポイントは別のDirに保存されているので、絶対パスを渡しています。

以下は、私のチェックポイント・フォルダです。

編集 --------------

model_checkpoint_path: "model.ckpt-400"。

all_model_checkpoint_paths: "model.ckpt-0"

all_model_checkpoint_paths: "model.ckpt-400"

解決方法は?

その tf.train.latest_checkpoint path 引数は、カレントディレクトリ(Python スクリプトを実行する場所)からの相対パスである必要があります。複雑な構造の場合(データセットが別のフォルダやHDDに保存されているなど)、単純にフォルダへの絶対パスを使用することができます。そのため tf.train.latest_checkpoint("/home/nikhil_m/TensorFlow-ENet/log/original") はこのようなケースで動作します。