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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

1回答

1923閲覧

Googleのtensorflowによるcifar10の画像認識をWindows上で実行しようとしたときのエラー

good_morning

総合スコア61

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2017/07/13 05:27

Googleのtensorflowによるcifar10の画像認識をWindows上で実行しようとしたとき、次のエラーが出ました。

(tensorflow) C:\xxx>python tensorflow\models\image\cifar10\cifar10.py
Traceback (most recent call last):
File "tensorflow\models\image\cifar10\cifar10.py", line 47, in <module>
from tensorflow.models.image.cifar10 import cifar10_input
ImportError: No module named 'tensorflow.models'

このエラーメッセージは、tensorflow.modelsモジュールがないという意味ですが、ホーム配下に"tensorflow\models\image\cifar10"フォルダができており、その中にcifar10.pyも、cifar10_input.pyもあります。
従いまして、このエラーメッセージの本意が不明です。

何方かわかる方がいらっしゃいましたら、ご教示ください。

ちなみに、動作環境は、次のとおりです。

CPU:Core-i5
OS:Windows10,64bit
メモリ:4GB
Anaconda3
python35
tensorflow1.2.1

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

python tensorflow\models\image\cifar10\cifar10.py

と実行した際にモジュール検索パス(sys.path) に追加されるのは
(カレントディレクトリ)/tensorflow/models/image/cifar10/
であって
(カレントディレクトリ)/
ではありません。

よって、
from tensorflow.models.image.cifar10 import ...
はモジュール検索の範囲外となりますので、当然モジュールは見つけらません。

とりあえずの対策としては

PYTHONPATH=. python tensorflow\models\image\cifar10\cifar10.py

として、(カレントディレクトリ)/ をモジュール検索パスに加えてあげると解決するかもしれません。

投稿2017/07/13 09:11

magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

good_morning

2017/07/13 22:34

.bash_profileファイルに次の1行を挿入しました。 PYTHONPATH=. しかし、結果は同じでした。
magichan

2017/07/14 01:53

いや違います PYTHONPATH に設定する必用があるのは tensorflow が置かれている場所ですので、.bash_profileファイルで "PYTHONPATH=." と記述しても全く意味がありません。 私が言いたかったのは、cifar10.py を実行している際のカレントディレクトリに tensorflow が置かれているようなので、 "python tensorflow\models\image\cifar10\cifar10.py" の前に PYTHONPATH=. を付加して実行することで、環境変数を一時的に変更(PYTHONPATHにカレントディレクトリを追加)すると対処対策になりますよと言う事です。 ですので .bash_profile でやる場合は、tensorflow が置かれている場所のパスを指定してください。
good_morning

2017/07/14 08:01

PYTHONPATH に設定する必用があるのは tensorflow が置かれている場所ということですが、tensorflowの何が置かれているところでしょうか。 ちなみに、私の環境では、次のフォルダがbinです。 ここでよろしいでしょうおか? C:\Anaconda3\envs\tensorflow\Library\bin よろしくお願いします。
magichan

2017/07/14 08:51

質問にある 「"tensorflow\models\image\cifar10"フォルダができており」 の場所となります。
magichan

2017/07/14 10:58

ちょっと話が本来の質問とズレてきているようなので整理しますね。 今回の目的は tensorflow\models\image\cifar10\cifar10_input.py をインポートすることなのですが、Pythonの仕様では、import が出来るモジュールは 1. 入力スクリプト(cifar10.py)があるディレクトリ 2. PYTHONPATH で設定されているディレクトリ 3. インストール時に設定されるデフォルトディレクトリ となりますので、現在のカレントディレクトリー以下の tensorflow\models\image\cifar10\cifar10_input.py はモジュールとして検索されません これを対策する方法は幾つか考えられますが、とりあえず上記の2. で記述した 環境変数 PYTHONPATH を使用して、カレントディレクトリをモジュール検索PATHに追加することで、 tensorflow\models\image\cifar10\cifar10_input.py import できるのではないでしょうか。
good_morning

2017/07/14 21:44

詳しい説明ありがとうございます。 やっと理解できました。 ただし、一点だけ質問があります。 import が出来るモジュールは「1. 入力スクリプト(cifar10.py)があるディレクトリ」とされています。 私の環境では、入力スクリプト(cifar10.py)は「tensorflow\models\image\cifar10」にあります。ということは、「tensorflow\models\image\cifar10」を環境変数 PYTHONPATHで指定しなくてもimport できるのではないでしょうか。 よろしくお願いします。
magichan

2017/07/15 01:12

はい、できます。 でもその場合は from tensorflow.models.image.cifar10 import cifar10_input ではなくて import cifar10_input と記述する必要があります。でなければ tensorflowフォルダーを探しに行ってエラーとなります。 この方法で回答することも考えたのですが、この方法の場合は他の import でもエラーが引き起こす可能性があるので、単純なPYTHONPATHの方法で回答させていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問