🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

機械学習

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

Python

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

Q&A

解決済

1回答

1566閲覧

pythonでのエラーコードの解決

morisoh

総合スコア2

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

機械学習

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

Python

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

0グッド

0クリップ

投稿2020/12/11 09:21

前提・実現したいこと

全くの初心者ですがよろしくお願いします。
pythonで
https://qiita.com/tomo_20180402/items/e8c55bdca648f4877188
このサイトを参考に画像認識のプログラムを作っています。

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

モデル構築をした際に以下の2つのエラーが出ました E tensorflow/stream_executor/cuda/cuda_driver.cc:314] failed call to cuInit: CUDA_ERROR_UNKNOWN: unknown error UnboundLocalError: local variable 'logs' referenced before assignment

該当のソースコード

#モデルの構築 from keras import layers, models model = models.Sequential() model.add(layers.Conv2D(32,(3,3),activation="relu",input_shape=(150,150,3))) model.add(layers.MaxPooling2D((2,2))) model.add(layers.Conv2D(64,(3,3),activation="relu")) model.add(layers.MaxPooling2D((2,2))) model.add(layers.Conv2D(128,(3,3),activation="relu")) model.add(layers.MaxPooling2D((2,2))) model.add(layers.Conv2D(128,(3,3),activation="relu")) model.add(layers.MaxPooling2D((2,2))) model.add(layers.Flatten()) model.add(layers.Dense(512,activation="relu")) model.add(layers.Dense(7,activation="sigmoid")) #分類先の種類分設定 #モデル構成の確認 model.summary() #モデルのコンパイル from keras import optimizers model.compile(loss="binary_crossentropy", optimizer=optimizers.RMSprop(lr=1e-4), metrics=["acc"]) #データの準備 from keras.utils import np_utils import numpy as np categories = [省略] nb_classes = len(categories) X_train, X_test, y_train, y_test = np.load("省略") #データの正規化 X_train = X_train.astype("float") / 255 X_test = X_test.astype("float") / 255 #kerasで扱えるようにcategoriesをベクトルに変換 y_train = np_utils.to_categorical(y_train, nb_classes) y_test = np_utils.to_categorical(y_test, nb_classes) #モデルの学習 model = model.fit(X_train, y_train, epochs=10, batch_size=4, validation_data=(X_test,y_test))

試したこと

1つ目のエラーはnvidiaドライバだとおそらく問題なく実行できると思うのですが、intelでやっているためこのような問題が出ているのではないかと思っています。なのでintelでtensorflowが使える方法などを一通り調べてやってみました。

2つ目についてはエラーコードをコピペして解決策を探しましたが解決できませんでした。

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

軽率に載せていいものかわかりませんが、pip listの中の回答するにあたって必要そうなものを補足情報に載せておきます

Package Version


anaconda-client 1.6.14
anaconda-navigator 1.8.7
anaconda-project 0.8.2
conda 4.5.4
conda-build 3.10.5
conda-verify 2.0.0
imageio 2.3.0
imagesize 1.0.0
importlib-metadata 3.1.1
ipykernel 4.8.2
ipython 6.4.0
ipython-genutils 0.2.0
ipywidgets 7.2.1
isort 4.3.4
Keras-Preprocessing 1.1.2
navigator-updater 0.2.1
path.py 11.0.1
pathlib2 2.3.2
Pillow 5.1.0
pip 20.3.1
pylint 1.8.4
pytest 3.5.1
pytest-arraydiff 0.2
pytest-astropy 0.3.0
pytest-doctestplus 0.1.3
pytest-openfiles 0.3.0
pytest-remotedata 0.2.1
python-dateutil 2.7.3
tensorboard 2.4.0
tensorboard-plugin-wit 1.7.0
tensorflow-gpu-estimator 2.3.0

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

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

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

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

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

morisoh

2020/12/11 10:25

intel-tensorflowを入れたら代用はできますか?
jbpb0

2020/12/11 10:46

tensorflow 2.3.0をお使いなのですよね? tensorflow 1.xはCPU版とGPU版が分かれていて、pipでインストールするときに適切な方を指定しなくてはならなかったのですが、tensorflow 2.xになって両者は統合されて、pipでインストールするときに意識しなくてもよくなりました tennsorflow実行時にNVIDIA製GPUが付いてるかどうかで、自動的にGPUを使うかCPUだけで計算するか、判断してくれます なので、普通はGPU無しPCで実行したときに > CUDA_ERROR_UNKNOWN のようなCUDAのエラーは出ないはずなのです GPU無しPCなのに、tensorflowがGPUが付いてるように錯覚してGPUを使おうとして使えないためエラーになってる、みたいなことになってるような https://www.tensorflow.org/install?hl=ja に書かれてるように、単に pip install tensorflow とするだけでいいはず そうしたら、GPUが付いてないPCでは、CPUだけで計算します
morisoh

2020/12/11 13:15

tensorflow-gpuやコントロールパネルからnvidia関連のアプリを削除しもう一度試してみましたが駄目でした エラーコードが増え、読む限りどうしてもcudaを探してる感じがあります。 W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'nvcuda.dll'; dlerror: nvcuda.dll not found W tensorflow/stream_executor/cuda/cuda_driver.cc:312] failed call to cuInit: UNKNOWN ERROR (303)
jbpb0

2020/12/11 13:33

最初の二つは、その後に Ignore above cudart dlerror if you do not have a GPU set up on your machine. みたいなのが出ませんか? 普通はそれとセットで出るので、GPU無いので気にしない、ってなるのですけど 三つめは、GPUが無いPCで出るのはおかしいです やっぱり、NVIDIA関連の入れてはいけないものを入れてしまい、それが削除しきれずに残っているために、tensorflowがGPUがあると勘違いして、GPU使おうとしてコケる、ということが起きているような
jbpb0

2020/12/11 13:46

お使いのPCのOSはWindowsですよね コマンドプロンプトで set を実行して表示される環境変数の中に、NVIDIAとかCUDAとか付くものはありませんか? C:\ProgramData や C:\Program Files の下に、フォルダ名に NVIDIA が付いてるフォルダは残ってませんか?
jbpb0

2020/12/11 13:55

> tensorflow-gpuやコントロールパネルからnvidia関連のアプリを削除し の後に、PCを再起動させてからtensorflowのインストールを行ってください 再起動するまでは、削除したつもりで消えてない、ってこともあるので
morisoh

2020/12/11 16:01

>最初の二つは、その後に Ignore above cudart dlerror if you do not have a GPU set up on your machine. みたいなのが出ませんか? 出ていました cmdからsetを実行し確認しましたが該当しそうなものはありませんでした また、C:に残っていたcudaやnvidiaやcuDNNもすべて消しましたがエラーコードは変わらずでした、tensorflowの再インストールやPCの再起動もしました。 いっそのことpythonやVSCやanacondaも再インストールした方がいいのでしょうか?
jbpb0

2020/12/12 00:28

それでしたら、最初の二つは無視して大丈夫です 問題は三つ目ですね cuda_driver.cc がエラー出してますけど、もしかして、NVIDIAのドライバーを入れてませんか? ここから落とせるやつ https://www.nvidia.co.jp/Download/index.aspx?lang=jp
morisoh

2020/12/12 05:02

入れましたが、デバイスマネージャーのディスプレイアダプタを見るとintelしかないので、恐らく昨日アンインストールしました
jbpb0

2020/12/12 07:00

pythonコードの先頭に import os os.environ["CUDA_VISIBLE_DEVICES"]="-1" を追加したら、どうなりますか?
morisoh

2020/12/12 07:57

変わらずでした 2020-12-12 16:55:42.057715: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found 2020-12-12 16:55:42.072425: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. 2020-12-12 16:55:45.112911: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'nvcuda.dll'; dlerror: nvcuda.dll not found 2020-12-12 16:55:45.123877: W tensorflow/stream_executor/cuda/cuda_driver.cc:312] failed call to cuInit: UNKNOWN ERROR (303) 2020-12-12 16:55:45.136799: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:169] retrieving CUDA diagnostic information for host: MyComputer 2020-12-12 16:55:45.145901: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:176] hostname: MyComputer 2020-12-12 16:55:45.163710: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations: AVX2 To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 2020-12-12 16:55:45.228208: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x208ebfeaaa0 initialized for platform Host (this does not guarantee that XLA will be used). Devices: 2020-12-12 16:55:45.249735: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version
jbpb0

2020/12/12 10:22

お書きになった内容を、最初から全部読み直しました [元々のメッセージ] E tensorflow/stream_executor/cuda/cuda_driver.cc:314] failed call to cuInit: CUDA_ERROR_UNKNOWN: unknown error [現在のメッセージ] W tensorflow/stream_executor/cuda/cuda_driver.cc:312] failed call to cuInit: UNKNOWN ERROR (303) 元々のは最初が「E」なので完全ダメですが、現在のは最初が「W」なので必ずしもダメとは限りません 内容を確認して問題無ければ、そのままでも大丈夫です (メッセージが変わっていたことに気づいてませんでした) tensorflow-gpuやNVIDIA関連のものを全部アンインストールして、-gpuが付いてないtensorflowをインストールした時からメッセージが変わったのですよね?? それでしたら、もしかしたら、現状はCPUを使って計算できる環境になっているのでは? https://teratail.com/questions/306602 の「Code1」か「Code2」のどちらでもいいですから、コピペしてそのまま動かしてみてください
morisoh

2020/12/12 10:53

core1を動かしたところ、問題なく動いたようです WarningはありますがErrorは見つかりませんでした。 ありがとうございます。 残りはunbounderrorの部分なんですが、恐れ入りますがこちらもわかりますでしょうか Epoch 1/10 Traceback (most recent call last): File "省略", line 57, in <module> validation_data=(X_test,y_test)) File "C:\Users\mori-soh\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\keras\engine\training.py", line 108, in _method_wrapper return method(self, *args, **kwargs) File "C:\Users\mori-soh\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1104, in fit epoch_logs = copy.copy(logs) UnboundLocalError: local variable 'logs' referenced before assignment
jbpb0

2020/12/12 11:28

データのサンプル数や、特徴量の次元数は正しいでしょうか? model.fit() の直前に下記を追加して、確認してみてください print(X_train.shape) print(y_train.shape) print(X_test.shape) print(y_test.shape)
morisoh

2020/12/12 11:45

データのサンプル数や特徴量の次元数については、申し訳ないですがどこを見ればいいのかわかりません。 参考までにnp.loadのnpyにはカテゴリが7個、画像が211枚あります。 print~~を追加して実行しましたが、 (0,) (0, 7) (0,) (0, 7) が追加された他は変わりありませんでした
jbpb0

2020/12/12 12:04

「0」となっているところにサンプル数が入るはずなので、データが空です np.load() の直後に、上記と同じprint()の4行を追加してみてください もしそこでも「0」なら、データファイルがおかしいか、データの読み込み方がおかしいか、です
morisoh

2020/12/12 12:23

npyを作成するプログラムでモジュールエラーが出ていました、申し訳ないです pipでPILとImageとpillowを入れていますが from PIL import Image ModuleNotFoundError: No module named 'PIL' のエラーが出ていました
morisoh

2020/12/12 15:46

PILを消してpillowのみで実行しても治らないようです anacondaからpillowをインストールする解決策も試しましたがだめでした
jbpb0

2020/12/13 00:42 編集

一旦、両方ともアンインストールしてから、pillowをインストールしましたか? pip list conda list のどちらでも、両方とも現れない状態にしてから、インストールします https://pillow.readthedocs.io/en/latest/installation.html にも「Before installing Pillow, please uninstall PIL.」と書かれてます
morisoh

2020/12/13 04:52

両方アンインストールした状態からpillowをインストールしましたが、エラーは変わりませんでした
jbpb0

2020/12/13 05:30 編集

pillowをインストールした場合でも、インポートするパッケージの名前はpillowではなくPILですが、そこは大丈夫でしょうか?
morisoh

2020/12/13 05:43

はい、プログラム自体はfrom PIL import Imageのままです
jbpb0

2020/12/13 07:19 編集

pillowがインポートできない件は、別質問にした方が、ここのコメントよりも別の人達の目にも留まるので、いいと思います 何をしたら、どのようなエラーが出るのか、pythonコードも含めて詳しく書かれると、よりいいと思います
morisoh

2020/12/13 08:10

そうしてみます、長い間お付き合いありがとうございます
guest

回答1

0

自己解決

gpuで動かそうとしていたため、cpuに切り替える

投稿2020/12/18 05:03

morisoh

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問