Pythonの機械学習ライブラリ『TensorFlow2』をWindows10にインストールする

Pythonの機械学習ライブラリ『TensorFlow2』の環境構築手順をまとめました。

公式サイトを参考にインストールしていきます。

インストール環境

公式サイトの『ハードウェア要件』と『ソフトウェア要件』に従って構築します。

OSWindows 10 21H1(19043.1826) 64bit
Python3.9.13
ここの『システム要件』に準拠
TensorFlow2.9.1
Visual Studio2019(16.11.18)
ここの『システム要件』に準拠
(再頒布可能パッケージではなくVisual Studio本体をインストールする)
CPU拡張命令セットAVX2
GPUNVIDIA GeForce RTX 2070 SUPER(516.94)
ここに登録されているGPUがCUDAに対応しているらしい
CUDA Toolkit11.2
ここの『システム要件』に準拠
cuDNN SDK8.1.0
ここの『システム要件』に準拠

OSの確認方法

winver
ver
wmic os get osarchitecture

CPU拡張命令セットの確認方法

こちらの記事を参考にしました。

Pythonをインストールする

こちらを参考にしてください。TensorFlowに対応している『3.9.13』をインストールします。

cpuidモジュールをインストールする

pip install cpuid

CPU拡張命令セットを確認する

#sample.py
import cpuid

print("Vendor ID         : %s" % cpuid.cpu_vendor())
print("CPU name          : %s" % cpuid.cpu_name())
print("Microarchitecture : %s%s" % cpuid.cpu_microarchitecture())
print("Vector instructions supported:")
print("SSE       : %s" % cpuid._is_set(1, 3, 25))
print("SSE2      : %s" % cpuid._is_set(1, 3, 26))
print("SSE3      : %s" % cpuid._is_set(1, 2, 0))
print("SSSE3     : %s" % cpuid._is_set(1, 2, 9))
print("SSE4.1    : %s" % cpuid._is_set(1, 2, 19))
print("SSE4.2    : %s" % cpuid._is_set(1, 2, 20))
print("SSE4a     : %s" % cpuid._is_set(0x80000001, 2, 6))
print("AVX       : %s" % cpuid._is_set(1, 2, 28))
print("AVX2      : %s" % cpuid._is_set(7, 1, 5))
print("BMI1      : %s" % cpuid._is_set(7, 1, 3))
print("BMI2      : %s" % cpuid._is_set(7, 1, 8))

上記を実行したところ、当環境では下記のような結果でした。ATX、ATX2には対応しているようです。

Vendor ID         : GenuineIntel
CPU name          : Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
Microarchitecture : kabylake
Vector instructions supported:
SSE       : Yes
SSE2      : Yes
SSE3      : Yes
SSSE3     : Yes
SSE4.1    : Yes
SSE4.2    : Yes
SSE4a     : --
AVX       : Yes
AVX2      : Yes
BMI1      : Yes
BMI2      : Yes

GPUの確認方法

PowerShellで下記コマンドを実行します。
※ここに表記されている[CUDA Version]は対応している最大バージョンなので、下位を使用する分には問題ありません。

nvidia-smi

+---------------------------------------------------------------------+
| NVIDIA-SMI 516.94     Driver Version: 516.94      CUDA Version: 11.7     |
|-----------------------+----------------------+----------------------+

環境構築

Visual Studioをインストールする

こちらを参考にインストールしてください。
当記事では『CUDA Toolkit』のv11.7 Update 1をインストールするので、マニュアルに載っているサポート範囲である『Visual Studio 2019(16.11.18)』をインストールします。

CUDA Toolkitをインストールする

こちらを参考にインストールしてください。

cuDNN SDKをインストールする

こちらを参考にインストールしてください。CUDAと違ってこちらはNVIDIAのアカウントが必要なので、作成していない場合は作ってください。

Pythonをインストールする

前述の[インストール環境]にてインストールしたためここでは省略します。

TensorFlow2をインストールする

pipを最新にしておきます。

pip install -U pip

===============================
Requirement already satisfied: pip in ・・・\lib\site-packages (22.2.2)

TensorFlowをインストールします。

pip install tensorflow

動作確認用のサンプルファイルを実行してみます。

#sample.py
import tensorflow as tf


print(tf.__version__)
print(tf.keras.__version__)

print(tf.random.normal([5, 5]))

上記を実行した結果は以下の通りでした。

2.9.1
2.9.0
2022-08-16 23:36:40.544106: I tensorflow/core/platform/cpu_feature_guard.cc:193] 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-08-16 23:36:40.931313: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1532] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5974 MB memory:  -> device: 0, name: 
NVIDIA GeForce RTX 2070 SUPER, pci bus id: 0000:01:00.0, compute capability: 7.5
tf.Tensor(
[[-0.1316315  -0.8075213   0.7384161   1.4271153  -0.47806683]
 [ 1.081115    0.9398195  -0.58762354  0.07187372 -0.09977087]
 [-0.30093873  0.94260633  0.24936065 -0.29122645  0.2351307 ]
 [-0.32691622 -0.73051524 -1.1861002  -0.2879568  -2.4968648 ]
 [ 0.2075614  -0.45662636  0.17223231 -0.61653954 -0.8364818 ]], shape=(5, 5), dtype=float32)