質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • Python

    11317questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Python 3.x

    9417questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • MacOS(OSX)

    2297questions

    MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

  • 機械学習

    937questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

  • TensorFlow

    894questions

TensorFlow をCPUで使用する際のエラーについて

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 406

harunouta

score 100

 前提・実現したいこと

画像から説明文を生成する手法の「Show and Tell」をCPUで実行しようとしています。
以下の参考サイト通りに進めています。
参考記事

 発生している問題・エラーメッセージ

キャプション生成の最後の実行で、以下のエラーが出ました。
run_inference スクリプトをビルドをするところまでは、できています。

tensorflow.python.framework.errors_impl.NotFoundError: ~/test/M/models/research/im2txt/word_counts.txt; No such file or directory

 該当のソースコード

以下が、参考記事のコードです。
このtest/M/researchというのが、gitからクローンしたもともとのフォルダには存在せず、記事中ではここで初めて出てきたので、それが問題になっているのではないかと推測されます。

しかし、解決方法がわからないので、質問させていただきました。

~/test/models/research/im2txt/bazel-bin/im2txt/run_inference \
--checkpoint_path="~/test/M/models/research/im2txt/model.ckpt-2000000" \
--vocab_file="~/test/M/models/research/im2txt/word_counts.txt" \
--input_files="~/test/M/models/research/im2txt/im2txt/cat.jpg"

 試したこと1

参考記事の「トレーニング済みモデルの準備」で処理しなければならないmodel.ckpt-2000000というファイルの変更日が2016年になっていたので、再度参考記事に明記されていた以下のコードを実行して処理したところ、エラーが表示されました。

参考記事とは異なるファイル階層で、プログラムを実行したので最初の2行は、参考記事から変更しました。

OLD_CHECKPOINT_FILE = "model.ckpt-2000000"
NEW_CHECKPOINT_FILE = "model.ckpt-2000000"

import tensorflow as tf
vars_to_rename = {
    "lstm/BasicLSTMCell/Linear/Matrix": "lstm/basic_lstm_cell/weights",
    "lstm/BasicLSTMCell/Linear/Bias": "lstm/basic_lstm_cell/biases",
}
new_checkpoint_vars = {}
reader = tf.train.NewCheckpointReader(OLD_CHECKPOINT_FILE)
for old_name in reader.get_variable_to_shape_map():
  if old_name in vars_to_rename:
    new_name = vars_to_rename[old_name]
  else:
    new_name = old_name
  new_checkpoint_vars[new_name] = tf.Variable(reader.get_tensor(old_name))

init = tf.global_variables_initializer()
saver = tf.train.Saver(new_checkpoint_vars)

with tf.Session() as sess:
  sess.run(init)
  saver.save(sess, NEW_CHECKPOINT_FILE)

エラー文

$ python checkpoint_change.py
2018-11-11 14:45:58.509219: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2018-11-11 14:46:17.630002: W tensorflow/core/framework/op_kernel.cc:1273] OP_REQUIRES failed at save_restore_v2_ops.cc:109 : Not found: ; No such file or directory

(略)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "checkpoint_change.py", line 23, in <module>
    saver.save(sess, NEW_CHECKPOINT_FILE)
  File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1458, in save
    raise exc
ValueError: Parent directory of model.ckpt-2000000 doesn't exist, can't save.


しかし、階層を変えて

OLD_CHECKPOINT_FILE = "test/models/research/im2txt/model.ckpt-2000000"
NEW_CHECKPOINT_FILE = "test/models/research/im2txt/model.ckpt-2000000"


にしたところ、エラーは起きず、

model.ckpt-2000000.data-00000-of-00001
model.ckpt-2000000.index
model.ckpt-2000000.meta


の3つのファイルが生成されました。

 試したこと2

参考記事の実行コマンドでは、Mフォルダがないというエラーが出ていたので、Mフォルダのないコマンドで試したところ。さらに別のエラーが出て、解決できませんでした。

$ test/models/research/im2txt/bazel-bin/im2txt/run_inference --checkpoint_path="test/models/research/im2txt/model.ckpt-2000000" --vocab_file="test/models/research/im2txt/word_counts.txt" --input_files="test/models/research/im2txt/im2txt/cat.jpg"

エラー文

NotFoundError (see above for traceback): Restoring from checkpoint failed. This is most likely due to a Variable name or other graph key that is missing from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:

Key lstm/basic_lstm_cell/bias not found in checkpoint
     [[node save/RestoreV2 (defined at /Users/username/Desktop/show_and_tell/test/models/research/im2txt/bazel-bin/im2txt/run_inference.runfiles/im2txt/im2txt/inference_utils/inference_wrapper_base.py:116)  = RestoreV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, ..., DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_save/Const_0_0, save/RestoreV2/tensor_names, save/RestoreV2/shape_and_slices)]]

 補足情報(FW/ツールのバージョンなど)

MacOS mojave
tensorflow                         1.12.0    
numpy                              1.15.4
Babel                              2.3.4     
Python 3.6.0 :: Anaconda 4.3.0 (x86_64)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mts10806

    2018/11/10 19:09

    回答依頼いただきましたが、全く専門外なので期待には応えられません。他に専門知識をお持ちのかたに回していただければと

    キャンセル

  • can110

    2018/11/11 07:27

    参考記事にそって実際に行った手順を明記されると回答得られやすいかと思います(抜けた/誤った手順はないか?)

    キャンセル

回答 1

checkベストアンサー

0

動作未検証なので推測ですがトレーニング済みモデルの準備の手順が抜けている、あるいは異なる場所にword_counts.txtを解凍配置したのではないでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/11 14:41

    ご回答いただきましてありがとうございます。トレーニング済みモデルの準備は行いました。~/test/models/research/im2txt配下に「im2txt_2016_10_11.2000000.tar.gz」を解凍し、「word_counts.txt」を置きました。その後、トレーニング済みモデルの準備で「word_counts.txt」の中身を変更し、checkpoint file(model.ckpt-2000000) の修正を行いました。
    word_counts.txtは、txtファイルなので解答できないと思うのですが、どういうことでしょうか。

    キャンセル

  • 2018/11/11 14:48

    つまり手順は間違いないという理解でよろしいでしょうか?

    キャンセル

  • 2018/11/11 15:01

    はい。手順は買いてある通りに行なっています。

    キャンセル

  • 2018/11/11 15:03

    質問にも買いてありますように最後に実行させるときに、"~/test/M/models"と買いてあり、このMフォルダを作成していないので何のことかわかりません。
    ```
    ~/test/models/research/im2txt/bazel-bin/im2txt/run_inference \
    --checkpoint_path="~/test/M/models/research/im2txt/model.ckpt-2000000" \
    --vocab_file="~/test/M/models/research/im2txt/word_counts.txt" \
    --input_files="~/test/M/models/research/im2txt/im2txt/cat.jpg"
    ```

    キャンセル

  • 2018/11/11 15:09

    記事を読んでいましたが「~/test/M/models/」のMあたりのフォルダ構成が明確になっていないようで気になってました。
    結局、記事の手順通りに作業しても、そのとおりの結果が得られないということかと思います。
    記事の作成者に聞くべき質問のように思われてきました。

    キャンセル

  • 2018/11/11 15:14

    Mフォルダを無くすとエラーが起きてしまいました。やはりこのフォルダが問題のようですね。

    キャンセル

  • 2018/11/11 15:16

    惜しい処まで来ているような気はするのですが…
    お役に立てず申し訳ありません。

    キャンセル

  • 2018/11/13 13:55

    ありがとうございます。
    参考記事元に連絡してみましたが、お返事がない状況です。

    他に参考になりそうな記事がなく、実装できない状況なのですが、どうにか解決する方法はないのでしょうか。

    キャンセル

  • 2018/11/13 13:57

    惜しいところまで来ているので、なんとかしたいのですが、記事元の方に連絡が取れないと無理でしょうか。

    何卒よろしくお願いいたします。

    キャンセル

  • 2018/11/17 12:23

    https://teratail.com/questions/158038
    こちらの質問で、Mフォルダを設定しなかった場合のエラーに関しても明記させていただきました。
    確認いただけますと幸いです。

    キャンセル

同じタグがついた質問を見る

  • Python

    11317questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Python 3.x

    9417questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • MacOS(OSX)

    2297questions

    MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

  • 機械学習

    937questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

  • TensorFlow

    894questions