LoginSignup
22
18

More than 1 year has passed since last update.

機械学習用の環境を0から構築した(windows11 + VSCode + venv + Tensorflow + GPU)

Last updated at Posted at 2022-08-26

新しいPCを買ったので最新の環境で構築してみました。
3年ほど前にも書いていますが、細かい部分が変わっていたりリンク切れ等があったので改めて書いています。

追記:TF2.12の構築は以下から
Python3.11 + TF2.12 + GPUの環境を構築した(Windows11 + WSL + VSCode)

1. Pythonのインストール

公式より入れたいバージョンをダウンロードし、インストールします。
https://www.python.org/downloads/

今回は3.10と3.7を入れてみました。

バージョン管理はwindowsなら標準ではいってくる py(Pythonランチャー)と venv で行います。
コマンドプロンプトから py --list-paths で入ってるPythonを確認できます。

C:\Users\poco>py --list-paths
Installed Pythons found by py Launcher for Windows
 -3.10-64       C:\Users\poco\AppData\Local\Programs\Python\Python310\python.exe *
 -3.7-64        C:\Users\poco\AppData\Local\Programs\Python\Python37\python.exe

アスタリスクがついてるほうが優先されるバージョンです。

2. Python仮想環境の作成

仮想環境を作成し、バージョン毎の環境を分けます。
仮想環境を置くディレクトリはどこでも大丈夫です。(この記事ではホームディレクトリに作成します)

コマンドプロンプトから作成します。

# venv用のディレクトリを作成(例はホームディレクトリ)
> cd
> mkdir venv
> cd venv

# v3.10 で仮想環境を作成する例
# CPU版とGPU版の環境を作成しています。
> py -3.10 -m venv py310-cpu
> py -3.10 -m venv py310-gpu
> dir /b
py310-cpu
py310-gpu

3. VSCodeのインストール

公式よりダウンロードし、インストールします。
https://code.visualstudio.com/

インストールしたら左のメニューの拡張機能から Python を追加しておきます。

3-1. 作業ディレクトリ

適当なディレクトリを作業ディレクトリとして用意します。
また、hello.py を用意しておきます。
(例: C:/sample_app/ )

hello.py
print("hello world")

次に、VSCode上でこのフォルダを開きます。
ファイル → フォルダーを開く → C:/sample_app/

3-2. VSCodeとvenvの紐づけ

VSCode上で ファイル → ユーザー設定 → 設定 を選択し、検索欄で python.venvPath を入れて ~/venv を設定します。
~/venvは先ほど作成したvenvのフォルダを指定します)

ss3.png

設定したらVSCodeを再起動して、VSCodeから hello.py を開きます。
右下から venv で作成したインタープリターが見えていれば紐づけは成功です。

ss4.png

ただ、このままだと実行権限が足りず、以下のエラーが出てます。

PS C:\Users\poco\Documents> & C:/Users/poco/venv/py310-gpu/Scripts/Activate.ps1
& : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\poco\venv\py310-gpu\Scripts\Activate.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:3
+ & C:/Users/poco/venv/py310-gpu/Scripts/Activate.ps1
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

Power Shell を管理者権限で開き、Set-ExecutionPolicy RemoteSigned を実行します。

PS C:\Windows\system32> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): Y

これで VSCode から 実行 → デバッグなしで実行 で実行ができると思います。

4. GPU環境の構築(Tensorflow)

バージョンですが、2022/8 現在最新の Tensorflow 2.9.1 を対象にします。

一応公式のGPU環境の要件は以下です。
https://www.tensorflow.org/install/gpu?hl=ja

ただ、更新があまりされていないような?今回は確認できた最新バージョンの導入例を書きます。

改めて環境は以下です。
・windows11
・Python 3.10.6
・NVIDIA GeForce RTX 3060

4-1. ドライバの更新

グラボのドライバを最新にしておきます。
https://www.nvidia.co.jp/Download/index.aspx?lang=jp

更新後、要再起動です。

4-2. CUDA のインストール

CUDA をインストールします。
DLページ:https://developer.nvidia.com/cuda-toolkit-archive

ここはバージョンが重要で、Tensorflow と合わないversionを入れると動きません。
一応以下に対応表があります。(が、TF2.6.0 で止まっていますね…)
https://www.tensorflow.org/install/source?hl=ja#tested_build_configurations

一応最新の 11.7.1 (cuda_11.7.1_516.94_windows.exe) を入れてみた所、無事に動きました。

4-3. cuDNN のインストール

cuDNN をダウンロードします。(無料ですが、要登録)
DLページ:https://developer.nvidia.com/rdp/cudnn-download

バージョンはCUDAと揃える必要があります。
今回入れたのは最新の Download cuDNN v8.5.0 (August 8th, 2022), for CUDA 11.x です。

cuDNN は zip ファイルで、解凍した後に CUDA フォルダに入れる必要があります。
CUDAフォルダは以下に作成されていました。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\

解凍した中身をこのフォルダに入れて上書きします。

4-4. Zlib のインストール

cuDNN には Zlib が必要なようで、これをダウンロードします。

以下の公式ドキュメントの ZLIB DLL のリンクを 名前を付けて保存 でダウンロードします。
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#prerequisites-windows

zip ファイルなので解凍して、zlib123dllx64/dll_x64/zlibwapi.dll のdllファイルをCUDAのbin配下にコピーします。
(環境変数が通ってる場所ならどこでも大丈夫です)

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin\zlibwapi.dll

4-5. Tensorflow GPU のインストール

CUDAを入れる前にインストールしても大丈夫です。
VSCode上でやる場合は Ctrl+@ でプロンプトを出し、そこから pip でインストールできます。

(py310-gpu) PS C:\sample_app> pip install tensorflow-gpu

CPU版を入れる場合は以下です。(インタープリターを切り替えています)

(py310-cpu) PS C:\sample_app> pip install tensorflow-cpu

コマンドプロンプトでやる場合は以下です。

> cd ~/venv/py310-gpu/Scripts
> activate
(py310-gpu) > pip install tensorflow-gpu
(py310-gpu) > deactivate
> cd ../../py310-cpu/Scripts
> activate
(py310-cpu) > pip install tensorflow-cpu
(py310-cpu) > deactivate

GPUの確認

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

で確認できます。

(py310-gpu) > python
>>> from tensorflow.python.client import device_lib
>>> device_lib.list_local_devices()



[name: "/device:CPU:0"
device_type: "CPU"



, name: "/device:GPU:0"
device_type: "GPU"


]

GPU が見えていれば認識しています。

おわりに

これでインタープリターを切り替えるだけで CPU と GPU の環境を簡単に切り替える環境ができました。
とりあえず失敗覚悟で最新のバージョンを入れてみましたがうまくいって良かったです。

22
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
18