金子邦彦研究室 -> インストール,設定,利用 -> Windows の種々のソフトウェア(インストール) -> GPU環境でのTensorFlow 2.10.1のインストールと活用(Windows 上)

Python,TensorFlow GPU 版 2.10, Keras, scikit-learn, MatplotLib, Python 用 opencv-python のインストール(Windows 上)

Windows での,TensorFlow 2.10 (GPU 対応可能), Keras, scikit-learn, Python 用 opencv-python, pillow, matplotlib, seaborn のインストール手順を説明する.

目次

  1. 前準備
  2. Python のインストール,pip と setuptools の更新,Python 開発環境のインストール
  3. TensorFlow 2.10 (GPU 対応可能), Keras, scikit-learn, MatplotLib, Python 用 opencv-python のインストール(Windows 上)
  4. TensorFlow 2 のプログラム例

サイト内の関連ページ

このWebページに記載しているプログラムは https://github.com/tensorflow/tensorflow#download-and-setup をもとに作成

関連する外部ページ

GPU

GPUは,グラフィックス・プロセッシング・ユニット(Graphics Processing Unit)の略である.3次元コンピュータグラフィックスや3次元ゲーム,動画編集,仮想通貨のマイニング,科学計算,ディープラーニングなど,並列処理が必要な幅広い分野で活用されている.

TensorFlow GPU 版

Tensorflowは,Google 社によりリリースされた強力な機械学習フレームワークである.Python,C/C++ 言語から利用することができ,CPU,GPU,TPU 上で動作する.TensorFlow の特徴の一つは,「データフローグラフ」という概念である.データフローグラフは,データの流れを定めるもので,グラフ内の節点はオペレーション(演算)であり,エッジは節点間を流れるデータ(テンソル)を表す.ここでいう「オペレーション(演算)」は,TensorFlow が提供する様々な処理の単位である.TensorFlow を使うことで,機械学習のアプリケーションをより簡単に作成することができるようになる.TensorFlow は,音声,画像、テキスト,ビデオなど,様々なタイプのデータを利用できる.TensorFlow は,2015年11月に最初のバージョンがリリースされた.

TensorFlow GPU 版の動作に必要なもの(2023年4月時点)

古いバージョンである2.4.4 あるいはそれ以前のバージョン のTensorFlow を使う場合は, 最新NVIDIA cuDNNを使わないこと. 詳しくは,別ページ »で説明

前準備

Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022),Visual Studio 2022 のインストール(Windows 上)

Windows での ビルドツール for Visual Studio 2022 (Build Tools for Visual Studio 2022) のインストール: 別ページ »で説明している.

Build Tools for Visual Studio 2022(ビルドツール 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 2022 のインストール(Windows 上)

インストールの判断

Build Tools for Visual Studio は,開発ツールセットである. Visual Studio は統合開発環境であり,いくつかの種類があり,Build Tools for Visual Studioの機能を含むか連携して使用するものである.インストールは以下の基準で判断してください:

不明な点がある場合は,Visual Studio 全体をインストール を行う方が良い.

Git のインストール(Windows 上)

Git はバージョン管理システムである.

Git の公式ページ: https://git-scm.com/ からダウンロードしてインストール:

  1. Git のページを開く

    https://git-scm.com/

  2.  ダウンロードしたいので「Downloads」をクリック

  3. Windows 版が欲しいので 「Windows」をクリック.

  4. 64ビット版のインストーラを選ぶ

  5. ダウンロードした .exe ファイルを実行

    このとき,ライセンス条項の確認を行う.設定は既定(デフォルト)のままでも問題はない.

サイト内の関連ページ

Windows での Git のインストール: 別ページ »で説明している.

関連する外部ページ

NVIDIA ドライバ,NVIDIA CUDA ツールキット, NVIDIA cuDNN のインストール(Windows 上)

NVIDIA ドライバ

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 CUDA ツールキット は,NVIDIA社が提供する GPU 用のツールキットである.GPU を用いた演算のプログラム作成や動作のための各種機能を備えている.ディープラーニングでも利用されている.

サイト内の関連ページ

Windows での NVIDIA ドライバNVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN v8.9.7 のインストールと動作確認: 別ページ »で説明

関連する外部ページ

NVIDIA cuDNN

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 のインストールと動作確認: 別ページ »で説明

関連する外部ページ

Python のインストール,pip と setuptools の更新,Python 開発環境のインストール

① インストールする Python のバージョンの確認

2022年12月時点では, Python 3.10 を使う.

Python 3.10 の根拠:

古いバージョンTensorFlow,PyTorch を使う予定の場合.

次により, Python, TensorFlow, PyTorch のバージョンの組み合わせを確認し,それにあったバージョンの Python をインストールする必要がある.

② Python のインストール

Python のインストールでの注意点

インストール手順の詳細(別ページ)

Windows での Python のインストール: 別ページ »で説明している.

Python の公式ページ

https://www.python.org/

③ pip と setuptools の更新

  1. Windows で,コマンドプロンプト管理者として実行

    Windowspip を実行するときは,コマンドプロンプト管理者として開き,それを使って pip を実行することにする.

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. 次のコマンドを実行する.
    python -m pip install -U pip setuptools
    

    [image]

【pip の利用】

Windows では,pip は,次のコマンドで起動できる.

pip または python -m pip または py -3.10 -m pip のようにバージョン指定.

Windows では,管理者として実行.

④ Python 開発環境として,Python コンソール(Jupyter Qt Console), Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder のインストール

  1. Windows で,コマンドプロンプト管理者として実行

    Windowspip を実行するときは,コマンドプロンプト管理者として開き,それを使って pip を実行することにする.

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. 次のコマンドを実行する.

    次のコマンドを実行することにより,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
    

    [image]

他の Python の開発環境

TensorFlow 2.10 (GPU 対応可能), Keras, scikit-learn, MatplotLib, Python 用 opencv-python のインストール(Windows 上)

インストール手順

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. 使用する Python のバージョンの確認
    python --version
    

    [image]
  3. pip と setuptools の更新

    ※ 「 python -m pip install ...」は,Python パッケージをインストールするためのコマンド.

    python -m pip install -U pip setuptools
    

    [image]
  4. パッケージのアンインストール操作

    ※ トラブルの可能性を減らすために,次の操作でアンインストールを行っておく.

    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
    

    [image]
  5. TensorFlow 2.10 , Keras, scikit-learn, Python 用 opencv-python, pillow, matplotlib, seaborn のインストール

    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
    

    [image]
    (以下省略)
  6. Windowsシステム環境変数 TF_FORCE_GPU_ALLOW_GROWTH に,true を設定

    Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

    次のコマンドを実行

    powershell -command "[System.Environment]::SetEnvironmentVariable(\"TF_FORCE_GPU_ALLOW_GROWTH\", \"true\", \"Machine\")"
    

    [image]

動作確認

TensorFlow がインストールできたかを確認したい.

  1. Windows では,コマンドプロンプトを実行.
  2. TensorFlow のバージョン確認

    バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.

    python -c "import tensorflow as tf; print( tf.__version__ )"
    

    [image]

    次のようなメッセージが出た場合には,メッセージに従い, NVIDIA ドライバNVIDIA CUDA ツールキットNVIDIA cuDNN のインストールを行う. 但し,GPU がない場合には,このメッセージを無視する.

    [image]
  3. TensorFlow パッケージの情報の表示

    pip show tensorflow
    

    [image]
  4. (GPU を使うとき) TensorFlow からGPU が認識できているかの確認

    TensorFlow が GPU を認識できているかの確認は,端末で,次を実行して行う.

    python -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
    

    実行結果の中に,次のように「device_type: "GPU"」があれば,GPUが認識できている.エラーメッセージが出ていないことを確認しておくこと.

    [image]

    ここで,GPU があるのに,TensorFlow から認識されていないかもしれない. TensorFlow GPU 版が指定するバージョンの NVIDIA CUDA ツールキットNVIDIA cuDNN がインストールされていないことが原因かも知れない.

    TensorFlow 2.5 の GPU 版での,cuDNN のバージョンは 8.2TensorFlow 2.4 の GPU 版での,cuDNN のバージョンは 8.0.5TensorFlow 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 のインストールと動作確認: 別ページ »で説明

TensorFlow 2 のプログラム例

  1. Windows で,コマンドプロンプトを実行
  2. エディタを起動
    cd %USERPROFILE%
    notepad matmul.py
    

    [image]
  3. エディタで,次のプログラムを保存

    このプログラムは,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('---')
    

    [image]
  4. Python プログラムの実行

    Python プログラムの実行

    Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.

    Python のまとめ: 別ページ »にまとめ

    プログラムを matmul.pyのようなファイル名で保存したので, 「python matmul.py」のようなコマンドで行う.

    python matmul.py
    

    [image]
  5. 結果の確認

    [image]