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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Anaconda

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

Python

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

Q&A

解決済

1回答

3273閲覧

Anacondaで再構築したtensorflow-gpuが動かない

Sparrow42

総合スコア36

Anaconda

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

Python

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

0グッド

1クリップ

投稿2020/12/09 07:31

編集2020/12/09 07:34

前提・実現したいこと

1週間ほど前にAnacondaのGPUが効かなくなったため、環境構築のやり直しを行いました。
そして、GPUに必要なTensorflow, CUDA, cuDNN, MSVC等入れなおしましたが効きませんでした。
原因にお心当たりのある方にご教授いただければ幸いです。

実行環境

Windows 10
NVIDIA GeForce GTX 1050

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

GPUの動作確認は以下のようになっています。1つ目が実行ソースコード、2つ目が出力結果です。
また、動作確認用のMNISTの学習を実行してもGPUは稼働していませんでした。

python

1from tensorflow.python.client import device_lib 2print(device_lib.list_local_devices())
In[1] : runfile('C:/Users/furu/Documents/HSCvideo/FrameInterporation_edge1ver.py', wdir='C:/Users/furu/Documents/HSCvideo') 2020-12-08 15:40:54.616128: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll 2020-12-08 15:40:54.616128: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll 2020-12-08 15:40:56.761000: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2 2020-12-08 15:40:56.763981: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll 2020-12-08 15:40:56.776223: E tensorflow/stream_executor/cuda/cuda_driver.cc:318] failed call to cuInit: CUDA_ERROR_UNKNOWN: unknown error 2020-12-08 15:40:56.778748: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:169] retrieving CUDA diagnostic information for host: DESKTOP-7I4IE8E 2020-12-08 15:40:56.778824: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:176] hostname: DESKTOP-7I4IE8E [name: "/device:CPU:0" device_type: "CPU" memory_limit: 268435456 locality { } incarnation: 8637331694356319930 ]

問題に至った経緯

以前までAnacondaでGPUは使えていたが、原因不明で使えなくなる

1カ月ほど前にGPU環境の構築に成功し、それからGPUは使えており、タスクマネージャーや先ほどの確認コードでも動作していることは確認できていました。
しかし、1週間ほど前に突然GPUが動かなくなり、CPUしか動かなくなりました。
(他にもJupyter Notebookで実行するとリモートデスクトップの画面が固まる等の変化もありました。関連性は不明。Spyderで実行することで解決済み。)

それに対して、Tensorflowのバージョン変更などを試しましたが、状況は変わりませんでした。

google colabで試してみるも、容量やメモリの関係で断念

GPUさえ使えればいいので、以前使用していたgoogle colabでやろうと考えました。しかし、50GB以上学習に必要な上、メモリも8G程度では足りないことから現実的でないと断念しました。

バージョンに原因があるかも?と思い、環境再構築へ

GPUが効かなくなってから改めてTensorflowが公表しているGPU環境のバージョン対応を調べたところ、誤ってLinuxのバージョン対応表に準拠していたことが判明しました。次の画像の選択部分が以前構築していたバージョンです。
Linuxのバージョン対応表
windowsのバージョン対応表は次の通りでした。選択部分が今回構築したバージョンです。
windowsのバージョン対応表
元々、1つ上のtensorflow-gpu2.1.0で検討していたのですが、cuDNN7.4CUDA10.1に対応するバージョンが存在しなかった(※)ため、2.0.0で行いました。

※追記:別件の質問にて、英語ドキュメントでは以前構築した構成がテスト済みバージョンに入っていることをご教授いただきました。日本語ドキュメントが更新されていないのかもしれないです。
windowsのバージョン対応表(english)

再構築方法

変更したのは、

  • MSVC2019→1017
  • CUDA10.1→10.0
  • cuDNN7.6→7.4
  • Python3.7→3.6
  • Tensorflow2.1.0→2.0.0

MSVC2019→1017

2019は消さずに2017を追加する形で変更しました。

CUDA10.1→10.0

10.1のアンストと10.0のインストを行いました。詳しくは別件で質問したCUDAダウングレードの質問をご覧ください。

cuDNN7.6→7.4

cuDNNをダウンロード・展開し、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0の各ディレクトリの該当ファイルを上書きしました。システム環境変数についても設定済みです。こちらのサイトを参考にしました。
pathの確認結果は次の画像の通りです。
pathの確認
(パスが該当サイトと少し違ったので、「試したこと」で検証しました。)

Python3.7→3.6, Tensorflow2.1.0→2.0.0

Anacondaプロンプトからバージョン指定でインストールしました。conda listにてバージョンは確認済み。

試したこと

cuDNNのパスについて、**参照サイトだと下1行のみだったのに対し、私の場合だとanaconda3のパスも出ていました。**そのため、anacondaのcudnn64_7.dllにも同様にダウンロードしたファイルを上書きしてみました。しかし、再起動しても結果は変わりませんでした。

今回は再構築ということで、少し通常の構築とは状況が異なります。
どなたか何卒よろしくお願いします。

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

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

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

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

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

Sparrow42

2020/12/09 08:53

たびたび回答ありがとうございます! 考えていただいたのに申し訳ないですが、今解決しました! 解決法は自己解決に書きますが、かなり単純な話でした…。 (昨日の質問について、ベストアンサーをつける前に自己解決にしてしまい申し訳ありませんでした。また機会がありましたら是非お願いします!)
guest

回答1

0

自己解決

再起動したところ、直りました…。
タスクマネージャーのGPUのグラフ自体がなくなっていることから、GPU自体が故障しているのでは?と考え、故障の線で調べてみました。
その中で、デバイスマネージャーのNVIDIA GeForce GTX 1050の警告マークに気づきました。そして、プロパティに「再起動しないと稼働しません」というような文言が書いてあり、再起動したところGPUの動作が確認できました。下の画像はデバイスマネージャーの該当箇所です。
デバイスマネージャー

一時はもう動かないかと本当に思いましたが、原因は何であれ直って良かったです。
jbpb0様、度々助言いただきありがとうございました!とても助かりました!

投稿2020/12/09 09:14

Sparrow42

総合スコア36

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問