Windows 11+Anaconda+Keras+TensorFlow+CUDA
メインマシン更新しました。RTX3060入りゲーミングノート。でDNNでAlphaZeroとかを追ってみます。
環境構築
これまでの環境はCygwinやMinGWが5個以上入っていて片付かないわDocker+WSL2を動かしてみたが非力だわでストレスがたまっていたので、今回はミニマリストを目指します。Chocolateyでインストールできる奴はChocolateyで。バイナリパッケージがあるならそれ優先で。システム環境変数は嫌がりすぎると.batファイルからしか起動できない環境が増えるので臨機応変に。
- Chocolateyインストール。Chocolatey GUIインストール。
- ChocolateyからGit for Windowsインストール(MSYS2環境を兼ねて)。その他GitHub DesktopやNotepad++など。
- ChocolateyからMiniconda (Python 3.9)インストール。
minicondaで仮想環境を作るとその中からconda install
等がSSLError等になる
ググると似たようなエラーが出ている人はいるが少し違う(base環境ですらエラーになるのでOpenSSLのバイナリを手作業で導入するしかないらしい?)
自分はbase環境からだとconda install
等できるのでcondaの範囲内で何とかならんかと調べていたら、仮想環境でconda list
するとopensslパッケージが見当たらないことに気づきました。base環境からconda -n env_name openssl
で解決しました。
opensslのバージョン指定とかが必要になる場合もありそうです。以下の公式Issueを参照のこと。
TensorFlow環境構築
囲碁界最強のアルゴリズムAlphaGoを使ってみよう | CodeCampus
↑を動かせる環境を、ピュアWindowsで構築できるか?
- 最近のTensorFlowにはKerasも含まれている(少し差異があるらしいがそもそもTensorFlow1系と2系の差だってあるのだし)
- NVIDIAのドライバーはStudio版の最新版で
- 例に限らずpython最新版を持ち出す意味はないはず→python3.6の仮想環境を作ってみたがcondaパッケージが少ないので3.7で作り直し
- [環境構築] TensorFlow+KerasをGPUで動かす[venv] - 開発めもとか
- ↑に従いバージョンを決定しCUDA ToolkitとcuDNNをインストール
conda install tensorflow=2.9.1=gpu_py37****
←2つありあてずっぽうで選んだ- するとcudatoolkitとcudnnまで少し違うバージョンで入ってきた…
tf.config.list_physical_devices('GPU')
等で疎通確認
ノートブックが動き出すところまで
conda install jupyter
conda install matplotlib
- ノートブック実行でCUDA_ERROR_OUT_OF_MEMORYになったのでdGPUを使わないようにする→CUDAからも見えなくなってしまったがとりあえず進める
conda install pydot
- currently only supports the NHWC tensor format on the CPU.→CPUではなくcuDNNを使わせる必要がある
- CUBLAS_STATUS_NOT_INITIALIZED
- メモリー割り当ての問題らしい、allow_growth=Trueが必要、TensorFlow2系では↓の書き方
- 【TF2】Tensorflow2.x でGPU設定をする (旧 allow_growth の呼び替え) | マキシ’sディーパラ
nvidia-smi
でほかのプロセスがメモリーを握ってないか確認、それでもエラーが出るならPC再起動