Win10で深層学習の環境を整える
Simple Wiki Based Contents Management System
Memo >> Ubuntu on MSI GS66 Stealth >> Win10で深層学習の環境を整える

Windows10で深層学習の環境を整える

深層学習に使うニューラルネットの開発には、Linuxで行うことが多いのですが、Linuxに慣れていない初学者でTensorflowやPyTorchなどを使いたいケースもあります。
そこで、Windows10でも内蔵GPUを利用したTensroflowの開発環境を整備していきます。

Pythonのインストール

まず最初に、TensorflowをWindows10で動作させるには、Pythonの実行環境が必要になります。Pythonのインストールは、オフィシャルサイトからインストーラをダウンロードしてインストールする方法もありますが、Anacondaという開発プラットフォームを使うと言う方法もあります。
深層学習や科学技術計算では、Anacondaを使うことが多いようですが、深層学習を何に使うかによって、どちらの方法を選ぶことになると思います。
ここでは、Linuxと同じようにオフシャルサイトのPythonとPipコマンドでインストールしていきます。(Anacondaを利用した場合の手順については、インターネット上に色々ドキュメントが上がっていますので、検索してみてください)

Python3.10のセットアップ

現在の公式サイトのPythonは、3.10.4のようですので、ダウンロードサイトからインストーラをダウンロードします。現在のインストーラは、python-3.10.4-amd64.exeになっていましたので、これをダブルクリックしてインストールを行います。
インストール時に、「ユーザのみか全員か」や「パスなどの環境変数の設定」を行うかどうかを選択し、インストールを行います。私の場合には、余計な環境変数を設定したくないし、ユーザのみの設定だとインストールされた場所が少し深くなるので、インストール場所は、「C:\Python310」にし、環境変数の設定などをしないようにしています。
インストール後に、Pythonを実行しようとするとPATHやPYTHONPATHを設定しなければいけないのですが、そこはバッチファイルを書いて対応しています。
このページに添付している PyEnv.batを C:\Python310 にコピーしています。実行する場合には、コマンドプロンプトから C:\Python310\PyEnv.bat を実行すれば、それ以降はPythonインタプリタプリを実行することができるようになります。

CUDAライブラリのインストール

Pythonのインストールが終われば、CUDAライブラリをインストールします。CUDAライブラリは、Nvidiaのオフィシャルサイトからインストーラをダウンロードすることができます。
今回ダウンロードしたインストーラは、 cuda_11.6.2_511.65_windows.exe でしたので、ダウンロード後、インストーラを起動してインストールを行います。

cuDNNライブラリのインストール

CUDAライブラリのインストールが終わったら、cuDNNライブラリのインストールを行います。cuDNNライブラリは、ここからダウンロードすることができますが、cuDNNライブラリはユーザ登録とログインが必要ですので、アクセス前に登録とログインの確認をする必要があります。
cuda version.11に対するcuDNNライブラリは cudnn_8.3.3.40_windows.exe でした。このファイルをダウンロードし、インストールを行います。
インストール後は、PATHなどの環境変数の設定が必要なのですが、PyEnv.batの方に追加しておけば問題ないので、追記しておきます。(添付のPyEnv.batには追記済)

zlibwapi.dllのインストール

cuDNNを使うには、zlibwapi.dllも必要です。zlibwapi.dllは、このサイトhttps://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-zlib-windowsからダウンロードすることができます。
ダウンロード後、zlibwapi.dllをcuDNNのdllがある場所にコピーすればOKです。

Tensorflowのインストール

PythonとCUDAライブラリのインストールが終われば、Tensorflowをインストールします。Tensorflowのインストールは、pipコマンドで実行できますので、コマンドプロンプトを起動して下記のように実行します。
 C:\Users\user>\Python310\PyEnv.bat
 
 C:\Users\Isao Hara>python
 Python 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)] on win32
 Type "help", "copyright", "credits" or "license" for more information.
 >>> from tensorflow.python.client import device_lib
 >>> device_lib.list_local_devices()
 2022-04-04 11:06:51.871933: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized 
 with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical 
 operations:  AVX AVX2
 To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
 2022-04-04 11:06:53.811968: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1525] Created device /device:GPU:0 with 
 1894 MB memory:  -> device: 0, name: NVIDIA GeForce GTX 1060 3GB, pci bus id: 0000:01:00.0, compute capability: 6.1
 [name: "/device:CPU:0"
 device_type: "CPU"
 memory_limit: 268435456
 locality {
 }
 incarnation: 6412981829524880869
 xla_global_id: -1
 , name: "/device:GPU:0"
 device_type: "GPU"
 memory_limit: 1986317518
 locality {
   bus_id: 1
   links {
   }
 }
 incarnation: 10177963838381183910
 physical_device_desc: "device: 0, name: NVIDIA GeForce GTX 1060 3GB, pci bus id: 0000:01:00.0, compute capability: 6.1"
 xla_global_id: 416903419
 ]
 >>> 
このように、GPUが正しく認識できていれば、インストール完了です。
これは必要ではありませんが、グラフ表示機能のためにmatplotlibをインストールすることをお勧めします。
$ pip install matplotlib
以上で完了です。

資料