トップページインストール,使い方Windows の種々のソフトウェア(インストール,使い方)TensorFlow 2.10 (GPU 対応可能)と Python のインストール,動作確認(Windows 上)

TensorFlow 2.10 (GPU 対応可能)と Python のインストール,動作確認(Windows 上)

Windows で,次のことを行う.

  1. 前準備
  2. NVIDIA ドライバ,NVIDIA CUDA ツールキット, NVIDIA cuDNN のインストール
  3. Python のインストール,pip と setuptools の更新,Python 開発環境のインストール
  4. TensorFlow 2 のインストール
  5. TensorFlow 2 のプログラム例
  6. TensorFlow, Keras, VGG 16, InceptionV3, Imagenet による画像分類を試してみる

TensorFlow は,機械学習のプラットフォームである.

GPU は,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある. NVIDIA CUDA ツールキット は,NVIDIA社が提供している GPU 用のプラットフォームである. NVIDIA 社のグラフィックス・カードが持つ GPU の機能を使うとき,NVIDIA CUDA ツールキット を利用することができる.

サイト内の関連ページ

参考 Web ページ

前準備

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

Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)もしくはVisual Studio 2022 を,前もってインストールしておく.NVIDIA CUDA の nvcc を機能させるため.

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

GPU は,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある. NVIDIA CUDA ツールキット は,NVIDIA社が提供している GPU 用のプラットフォームである. NVIDIA 社のグラフィックス・カードが持つ GPU の機能を使うとき,NVIDIA CUDA ツールキット を利用することができる.

以下,インストールの注意点をまとめている. インストールと動作確認の詳細別ページで説明している.

① TensorFlow, PyTorch が必要とするNVIDIA CUDA ツールキットとNVIDIA cuDNN のバージョンの確認

② NVIDIA ドライバ,NVIDIA CUDA ツールキット,NVIDIA cuDNN のインストール

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

古いバージョンの NVIDIA CUDA ツールキットNVIDIA cuDNN のインストールも,だいたい,同じ手順になる.

以下,インストールの注意点をまとめている.

③ NVIDIA ドライバ,NVIDIA CUDA ツールキット,NVIDIA cuDNN のインストールでの注意点まとめ

NVIDIA ドライバのインストールでの注意点まとめ(Windows 上)
NVIDIA CUDA ツールキットのインストールでの注意点まとめ(Windows 上)
NVIDIA cuDNN のインストールのインストールでの注意点まとめ(Windows 上)

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

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

TensorFlow,PyTorch のバージョンは何でもよい場合(TensorFlow,PyTorch の特定のバージョンを必要としない場合,あるいは,TensorFlow,PyTorch を必要としない場合)

TensorFlow,PyTorch のバージョンは何でも良い場合は, Python のバージョンはわりと自由に選ぶことができる. 2022年10月時点では, Python 3.10 を使う.

Python 3.10 の根拠:

使用したい TensorFlow, PyTorch が決まっている場合(あるいは,古いバージョンの Python を使いたい場合)

使用したい TensorFlow, PyTorch が決まっている場合(あるいは,古いバージョンの Python を使いたい場合)では, 次により, Python, TensorFlow, PyTorch のバージョンの組み合わせを確認する.

② Python のインストール

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

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

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

Python の公式ページ

http://www.python.org/

③ pip と setuptools の更新

Windows での 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 のインストール

Windows での Python 開発環境のインストール

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

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

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

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

    python -m pip install -U pip setuptools jupyterlab jupyter jupyter-console jupytext PyQt5 nteract_on_jupyter spyder
    

    [image]

TensorFlow 2 のインストール

設定の要点

システム環境変数 TF_FORCE_GPU_ALLOW_GROWTH の設定: true

インストール手順

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

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

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

    [image]
  3. pip と setuptools の更新

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

    python -m pip install -U pip setuptools
    

    [image]
  4. TensorFlow, Keras 関係のパッケージのアンインストール操作

    トラブルの可能性を減らすために,関係のパッケージのアンインストールを行っておく.

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

    python -m pip uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow-text tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer
    

    [image]
  5. TensorFlow 2.10 (2.10 は,2022/10 時点の TensorFlow の最新版) ,Keras, 関連ソフトウェアのインストール

    pip を用いてインストール

    python -m pip install -U tensorflow tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer
    REM python -m pip install -U tf-models-official
    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 を設定

    コマンドプロンプトを管理者として開き, 次のコマンドを実行する.

    call 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.6 のインストールと動作確認: 別ページで説明している.

TensorFlow 2 のプログラム例

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

    Windows で Python プログラムを動かす.

    【Python の利用】

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

    • Windows では: python または py -3.10 のようにバージョン指定)
    • Ubuntu では: python3

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

    Python のまとめ: 別ページにまとめている.

    結果として 「b'Hello, TensorFlow!'」のように表示されるので確認する.

    import tensorflow as tf
    hello = tf.constant('Hello, TensorFlow!')
    print(hello)
    exit()
    

    [image]
  2. 今度は,次の Python プログラムを実行してみる.

    結果として 「42」のように表示されるので確認する.

    「tf.add(a, b)」と「a + b 」は,同じ結果になる

    import tensorflow as tf
    a = tf.constant(10)
    b = tf.constant(32)
    print( tf.add(a, b) )
    print( a + b )
    exit()
    

    [image]
  3. 今度は,次の Python プログラムを実行してみる.

    結果として 「[[ 12.]]」のように表示されるので確認する.

    import tensorflow as tf
    matrix1 = tf.constant([[3., 3.]])
    matrix2 = tf.constant([[2.],[2.]])
    print( tf.matmul(matrix1, matrix2) )
    exit()
    

    [image]

TensorFlow, Keras, VGG 16, InceptionV3, Imagenet による画像分類を試してみる

  1. 前準備として h5py, pillow のインストール

    python -m pip install -U h5py pillow
    
  2. 画像の準備

    10.png のようなファイル名で保存しておく

    [image]
  3. Python プログラムの実行
    cd <画像を置いたディレクトリ>
    python  
    

    [image]
  4. VGG 16, Imagenet による学習済みの重みデータによる画像分類を試してみる

    次のプログラムをコピー&ペースト

    Kerasのサイトで公開されているものを少し書き換えて使用。

    「'10.png'」のところは,実際に使用する画像ファイル名に書き換えること.

    import h5py
    from tensorflow.keras.preprocessing import image
    from tensorflow.keras.applications.vgg16 import VGG16
    from tensorflow.keras.applications.vgg16 import preprocess_input
    import numpy as np
    
    m = VGG16(weights='imagenet', include_top=False)
    
    img_path = '10.png'
    img = image.load_img(img_path, target_size=(299, 299))
    x = image.img_to_array(img)
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)
    
    features = m.predict(x)
    print(features) 
    

    [image]

    python の終了は「exit()」

  5. InceptionV3, Imagenet による学習済みの重みデータによる画像分類を試してみる

    次のプログラムをコピー&ペースト

    Kerasのサイトで公開されているものを少し書き換えて使用。

    「'10.png'」のところは,実際に使用する画像ファイル名に書き換えること.

    import h5py
    from tensorflow.keras.preprocessing import image
    from tensorflow.keras.applications.inception_v3 import preprocess_input, decode_predictions, InceptionV3
    import numpy as np
    
    m = InceptionV3(weights='imagenet')
    
    img_path = '10.png'
    img = image.load_img(img_path, target_size=(299, 299))
    x = image.img_to_array(img)
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)
    
    preds = m.predict(x)
    
    print('Predicted:')
    for p in decode_predictions(preds, top=5)[0]:
        print("Score {}, Label {}".format(p[2], p[1]))
    

    [image]

    python の終了は「exit()」