Jupyter on AnacondaでGPUを使う
はじめに
jupyterを使って機械学習する際、GPU使いたいなーと思ったので環境整備してみました。
いくつかの記事を参考にしたのですが、最近(2022/07/08)の記事がなかったので改めてまとめておきます。
環境
- windows10
- CPU ryzen 7 5000番台
- GPU Geforce RTX 3050 ラップトップ版
今回は
tensorflow-gpu==2.6.0
を利用します。
以下のサイトでバージョンを合わせるのが最重要事項です。
適宜自分のtensorflowに合わせて確認しましょう。
tensorflow-gpu==2.6.0にあうcuDNN, CUDAのバージョンを探すと
cuDNN==8.1
CUDA==11.2
なのでこれを使います。
pythonのバージョンは3.6~3.9の指定なので今回は3.9
を使います。
また、今回はAnacondaで仮想環境を新たに作ります。
以下の画像のCreateからpython3.9番台を選んで新しい仮想環境を作ってください。
手順
- CUDA toolkitのダウンロード
- cuDNNのダウンロード
- パスの設定
- Tensorflow-gpuのインストール
- 動作確認
CUDA toolkitのダウンロード
以下からver11.2を落とします。
今回は11.2.0を選びました。
クリックするとこんな画面になるので、
windows, x86_64, 10, exe(local)を選んでダウンロードしましょう。
あとはダウンロードしたexeをクリックして、インストーラに従ってダウンロードしてください。
cuDNNのダウンロード
次に、以下のリンクからcuDNNを落とします。
どこかでアカウント登録が必要になるので、しておいてください。
こんな画面になるので、cudaの11.2に合わせたバージョンを使います。
私はv8.1.1を利用しました。
cuDNN Library for Windowsを選んでダウンロードしましょう。
最後にzipファイルを
C:\tools\cuda\bin
に解答してください。
パスの設定
システム環境変数のPATHに以下のディレクトリを追加します。
私はあまり分からなかったので、ユーザー変数のPathにも一応追加しました。
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\CUPTI\lib64
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include
- C:\tools\cuda\bin
ちなみにSystem32って書いてあるパスが消えるとjupyter起動しなくなるので注意してください。
Tensorflow-gpuのインストール
Anacondaプロンプトを開いて、以下のようにうちます。
pip install tensorflow-gpu==2.6.0
動作確認
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
と書いたファイルを作成し、Anacondaプロンプトで実行してみます。
こんな感じになってたらOKです。
まとめ
今回はJupyterでGPUを使う方法について述べました。
めちゃくちゃ大変だったので、少しでも参考になれば幸いです。
以下に参考リンクを貼っておきます。
Appendix
その他にも色々Errorが出たので、備忘録的に対処法を記載します。
jupyterでkerasを使ったときのエラー
tensorflow.python.framework.errors_impl.AlreadyExistsError: Another metric with the same name already exists
と出たので以下の記事を参考にしました。
pip listをするとkeras==2.9.0だったので、
pip install keras==2.6.*をすると私も動きました。
jupyterがExit code: 1となり起動しない
Tensowflow "Could not load dynamic libary 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
NVIDIAインストーラーを続行できません。You already have a newer version of the NVIDIA Frameview SDK installed
PermissionError:[WinError 5]アクセスが拒否されました
Discussion