Windows での,TensorFlow 2.10 (GPU 対応可能), Keras, scikit-learn, Python 用 opencv-python, pillow, matplotlib, seaborn のインストール手順を説明する.
【目次】
【サイト内の関連ページ】
このWebページに記載しているプログラムは https://github.com/tensorflow/tensorflow#download-and-setup をもとに作成
【関連する外部ページ】
GPUは,グラフィックス・プロセッシング・ユニット(Graphics Processing Unit)の略である.3次元コンピュータグラフィックスや3次元ゲーム,動画編集,仮想通貨のマイニング,科学計算,ディープラーニングなど,並列処理が必要な幅広い分野で活用されている.
Tensorflowは,Google 社によりリリースされた強力な機械学習フレームワークである.Python,C/C++ 言語から利用することができ,CPU,GPU,TPU 上で動作する.TensorFlow の特徴の一つは,「データフローグラフ」という概念である.データフローグラフは,データの流れを定めるもので,グラフ内の節点はオペレーション(演算)であり,エッジは節点間を流れるデータ(テンソル)を表す.ここでいう「オペレーション(演算)」は,TensorFlow が提供する様々な処理の単位である.TensorFlow を使うことで,機械学習のアプリケーションをより簡単に作成することができるようになる.TensorFlow は,音声,画像、テキスト,ビデオなど,様々なタイプのデータを利用できる.TensorFlow は,2015年11月に最初のバージョンがリリースされた.
TensorFlow GPU 版の動作に必要なもの(2023年4月時点)
Windows で,NVIDIA グラフィックス・ボードの種類を調べたいときは, hwinfo (URL: https://www.hwinfo.com) を使って調べることができる.
TensorFlow の動作に,cudart64_110.dll, cusolver64_11.dll, cudnn64_8.dll が必要であるため,NVIDIA CUDA ツールキット 11 をインストールする.
注意点の1:NVIDIA CUDA ツールキット 11は,NVIDIA cuDNN が対応しているものを選ぶこと. 新しいNVIDIA CUDA ツールキット 11では,NVIDIA cuDNN が対応していない場合がある.詳細は,NVIDIA cuDNN のページ https://developer.nvidia.com/cudnn で確認できる.
注意点の2:NVIDIA CUDA ツールキット は,バージョン12 でなくバージョン11 の最新版を使うこと.バージョン 12 は,2023年 4月に Tensorflow 2.10.1 で試したが動作しなかった.
最新の NVIDIA cuDNNに対応するNVIDIA CUDA ツールキットのバージョンは,
古いバージョンである2.4.4 あるいはそれ以前のバージョン のTensorFlow を使う場合は, 最新の NVIDIA cuDNNを使わないこと. 詳しくは,別ページ »で説明
Windows での ビルドツール for Visual Studio 2022 (Build Tools for Visual Studio 2022) のインストール: 別ページ »で説明している.
Build Tools for Visual Studio 2022は,Windowsで動作するMicrosoftの開発ツールセットである.主にC++プログラミングに使用される.このツールセットには,コンパイラ,リンカ,ランタイムライブラリ,その他のビルド関連ツールが含まれる.
【winget を用いたインストールコマンド】
次のコマンドは,Build Tools for Visual Studio 2022と VC2015 再配布可能パッケージをインストールするものである.
winget install --scope machine Microsoft.VisualStudio.2022.BuildTools winget install --scope machine Microsoft.VCRedist.2015+.x64
【Build Tools for Visual Studio とVisual Studio の主な違い】
【関連する外部ページ】
Build Tools for Visual Studio 2022(ビルドツール for Visual Studio 2022)の公式ダウンロードページ: https://visualstudio.microsoft.com/ja/visual-cpp-build-tools/
【関連項目】 Build Tools for Visual Studio 2022 のインストール(Windows 上)
【インストールの判断】
Build Tools for Visual Studio は,開発ツールセットである. Visual Studio は統合開発環境であり,いくつかの種類があり,Build Tools for Visual Studioの機能を含むか連携して使用するものである.インストールは以下の基準で判断してください:
Visual Studio 2022 をインストールする際に,「C++ によるデスクトップ開発」を選択することで, Build Tools for Visual Studio 2022 の機能も一緒にインストールされる.
不明な点がある場合は,Visual Studio 全体をインストール を行う方が良い.
Git はバージョン管理システムである.
Git の公式ページ: https://git-scm.com/ からダウンロードしてインストール:
このとき,ライセンス条項の確認を行う.設定は既定(デフォルト)のままでも問題はない.
【サイト内の関連ページ】
Windows での Git のインストール: 別ページ »で説明している.
【関連する外部ページ】
NVIDIA ドライバは,NVIDIA 社製の GPU を動作させるのに必要なドライバである.次の NVIDIA の公式サイトからダウンロードできる.ダウンロードのときは,使用しているオペレーティングシステムとGPUに適したものを選ぶこと.
【サイト内の関連ページ】
Windows での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN v8.9.7 のインストールと動作確認: 別ページ »で説明している.
【関連する外部ページ】
NVIDIA ドライバのダウンロードの公式ページ: https://www.nvidia.co.jp/Download/index.aspx?lang=jp
NVIDIA CUDA ツールキット は,NVIDIA社が提供する GPU 用のツールキットである.GPU を用いた演算のプログラム作成や動作のための各種機能を備えている.ディープラーニングでも利用されている.
【サイト内の関連ページ】
Windows での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN v8.9.7 のインストールと動作確認: 別ページ »で説明
【関連する外部ページ】
NVIDIA cuDNN は, NVIDIA CUDA ツールキット上で動作するディープラーニング・ライブラリである. 畳み込みニューラルネットワークや リカレントニューラルネットワークなど,さまざまなディープラーニングで利用されている.
Windows で,NVIDIA cuDNN の利用時に 「Could not locate zlibwapi.dll. Please make sure it is in your library path!」と表示されるときは, ZLIB DLL をインストールすること.
【サイト内の関連ページ】
Windows での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN v8.9.7 のインストールと動作確認: 別ページ »で説明
【関連する外部ページ】
2022年12月時点では, Python 3.10 を使う.
Python 3.10 の根拠:
古いバージョンの TensorFlow,PyTorch を使う予定の場合.
次により, Python, TensorFlow, PyTorch のバージョンの組み合わせを確認し,それにあったバージョンの Python をインストールする必要がある.
【Python のインストールでの注意点】
Windowsでは,Python をユーザ領域(既定の設定)またはシステム領域にインストールできる. しかし,ユーザー名に日本語が含まれている場合,Python をユーザ領域にインストールすると問題が発生する可能性がある.システム領域にインストールすることで,ファイルパスに日本語が含まれることを避けることができ,問題を防ぐことができる.
TensorFlow 2.10.1 は次のPythonのバージョンと互換性がある: Python 3.10, Python 3.9, Python 3.8, Python 3.7
この互換性情報は,https://pypi.org/project/tensorflow/2.10/#files で確認できる. 注意点として, TensorFlow 2.10.1 は, Python 3.6以前のバージョン,Python 3.11以降のバージョンではサポートされていない(2024/7時点). 最新の互換性情報は変更される可能性があるため,https://pypi.org/project/tensorflow/2.10/#files などの公式ドキュメントで再確認すること.
【インストール手順の詳細(別ページ) 】
Windows での Python のインストール: 別ページ »で説明している.
【Python の公式ページ】
【pip の利用】
次のコマンドを実行することにより,pipとsetuptoolsを更新する,Jupyter Notebook,PyQt5、Spyderなどの主要なPython環境がインストールされる.
python -m pip install -U pip setuptools requests notebook==6.5.7 jupyterlab jupyter jupyter-console jupytext PyQt5 nteract_on_jupyter spyder
【他の Python の開発環境】
コマンドプロンプトを管理者として実行: 別ページ »で説明
python --version
※ 「 python -m pip install ...」は,Python パッケージをインストールするためのコマンド.
python -m pip install -U pip setuptools
※ トラブルの可能性を減らすために,次の操作でアンインストールを行っておく.
python -m pip uninstall -y protobuf tensorflow tensorflow-cpu tensorflow-gpu tensorflow-intel tensorflow-text tensorflow-estimator tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer
python -m pip install -U protobuf tensorflow==2.10.1 tf_slim tensorflow_datasets==4.8.3 tensorflow-hub tf-keras keras keras_cv keras-tuner keras-visualizer numpy pillow pydot matplotlib seaborn pandas scipy scikit-learn scikit-learn-intelex opencv-python opencv-contrib-python python -m pip install git+https://github.com/tensorflow/docs python -m pip install git+https://github.com/tensorflow/examples.git python -m pip install git+https://www.github.com/keras-team/keras-contrib.git
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行
powershell -command "[System.Environment]::SetEnvironmentVariable(\"TF_FORCE_GPU_ALLOW_GROWTH\", \"true\", \"Machine\")"
TensorFlow がインストールできたかを確認したい.
バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.
python -c "import tensorflow as tf; print( tf.__version__ )"
次のようなメッセージが出た場合には,メッセージに従い, NVIDIA ドライバ,NVIDIA CUDA ツールキット, NVIDIA cuDNN のインストールを行う. 但し,GPU がない場合には,このメッセージを無視する.
pip show tensorflow
TensorFlow が GPU を認識できているかの確認は,端末で,次を実行して行う.
python -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
実行結果の中に,次のように「device_type: "GPU"」があれば,GPUが認識できている.エラーメッセージが出ていないことを確認しておくこと.
ここで,GPU があるのに,TensorFlow から認識されていないかもしれない. TensorFlow GPU 版が指定するバージョンの NVIDIA CUDA ツールキット,NVIDIA cuDNN がインストールされていないことが原因かも知れない.
TensorFlow 2.5 の GPU 版での,cuDNN のバージョンは 8.2,TensorFlow 2.4 の GPU 版での,cuDNN のバージョンは 8.0.5,TensorFlow 2.3, 2.2, 2.1 の GPU 版での,cuDNN のバージョンは 7.6.そして,TensorFlow 1.13 以上 TensorFlow 2.0 までの GPU 版での,cuDNN のバージョンは7.4 が良いようである.
Windows での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN v8.9.7 のインストールと動作確認: 別ページ »で説明
cd %USERPROFILE% notepad matmul.py
このプログラムは,TensorFlowを使用してCPUとGPUでの行列積の計算時間を比較する. [5000, 10000, 15000, 20000] の異なる4通りのサイズの行列を2つ生成し,その行列積を求める.そのとき, 計算時間を測定して結果を表示する.
import os import tensorflow as tf import time def measure_time(func): start_time = time.perf_counter() result = func() end_time = time.perf_counter() calculation_time = end_time - start_time return calculation_time def run_matmul(device_type, matrix_size): print(f'実行開始 - Matrix Size: {matrix_size}') print('device_type の設定:', device_type) if device_type == 'CPU': with tf.device('/CPU:0'): X = tf.random.uniform((matrix_size, matrix_size), minval=0, maxval=1) Y = tf.random.uniform((matrix_size, matrix_size), minval=0, maxval=1) calculation_time = measure_time(lambda: tf.matmul(X, Y)) else: with tf.device('/GPU:0'): X = tf.random.uniform((matrix_size, matrix_size), minval=0, maxval=1) Y = tf.random.uniform((matrix_size, matrix_size), minval=0, maxval=1) calculation_time = measure_time(lambda: tf.matmul(X, Y)) physical_devices = tf.config.list_physical_devices() gpu_devices = tf.config.list_physical_devices('GPU') print(f"Running on {device_type}") print(f"Available devices: {physical_devices}") print(f"Calculation time: {calculation_time:.6f} seconds") print() # GPUの利用可能性を確認 print("GPU available:", tf.config.list_physical_devices('GPU')) # デバイス名を取得 device_name = tf.config.list_logical_devices('GPU') print("Device name:", device_name) matrix_sizes = [5000, 10000, 15000, 20000] for size in matrix_sizes: print(f'Matrix Size: {size}') run_matmul('GPU', size) run_matmul('CPU', size) print('---')
Python プログラムの実行
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
Python のまとめ: 別ページ »にまとめ
プログラムを matmul.pyのようなファイル名で保存したので, 「python matmul.py」のようなコマンドで行う.
python matmul.py