Windows で,次のことを行う.
TensorFlow は,機械学習のプラットフォームである.
GPU は,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある.
【サイト内の関連ページ】
参考 Web ページ
Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)もしくはVisual Studio 2022 を,前もってインストールしておく.NVIDIA CUDA の nvcc を機能させるため.
GPU は,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある. NVIDIA CUDA ツールキット は,NVIDIA社が提供している GPU 用のプラットフォームである.
【インストール手順の詳細(別ページ) 】
Windows での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.7.1,NVIDIA cuDNN v8.5 のインストールと動作確認: 別ページで説明している.
NVIDIA CUDA ツールキット11.7.1, NVIDIA cuDNN 8.5 (2022/09時点) を使う.
その根拠:
必ずしも,最新の NVIDIA CUDA ツールキット を使えるとは限らないので確認が必要.
2022年9月時点では TensorFlow の最新版は 2.10 であるが,過去の TensorFlow のバージョンを使うこともありえる.
TensorFlow 2.4.4 以下や,過去の PyTorch のバージョンを使う場合, 過去の TensorFlow のバージョンが必要になるということもある.
そのことについての詳しい説明は: 別ページで説明している.
Windows のスタートメニューで「設定」,「アプリ」と操作して,「NVIDIA ・・・」を削除
hwinfo (URL: https://www.hwinfo.com) を使って調べることができる.
但し, NVIDIA CUDA ツールキットの古いバージョンを使うという場合は,NVIDIA CUDA ツールキットのインストールのときに NVIDIA ドライバをインストールするのでなく,次のページから最新のNVIDIA ドライバをダウンロードして,インストールする.
【NVIDIA ドライバのダウンロードページ】
【要点】
NVIDIA CUDA ツールキットの nvcc の動作に必要.
他のウインドウを開いている場合,NVIDIA CUDA ツールキットのインストールが失敗する場合がある.
但し,最新版ではない NVIDIA CUDA ツールキットを使うときには, NVIDIA CUDA ツールキットのインストーラに同封のNVIDIA ドライバは古いので,問題があるので, 前準備として,NVIDIA ドライバのインストールを行うこと.
次のページから,最新版のNVIDIA ドライバをダウンロードできる.
Windows のユーザ名が日本語のとき,nvcc がうまく動作しないエラーを回避するため.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP call powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html
NVIDIA CUDA ツールキットのアーカイブのページ: https://developer.nvidia.com/cuda-toolkit-archive
そのことについて,より詳しい説明は: 別ページで説明している.
【インストール手順の詳細(別ページ) 】
Windows での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.7.1,NVIDIA cuDNN v8.5 のインストールと動作確認: 別ページで説明している.
【インストール手順の概要 】
NVIDIA CUDA ツールキット 11.7.1 のダウンロードとインストール
NVIDIA CUDA ツールキットのページ: https://developer.nvidia.com/cuda-toolkit-archive
Windows のユーザ名が日本語のとき,nvcc がうまく動作しないエラーを回避するため.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP call powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
【要点】
必ず,使用する NVIDIA CUDA ツールキットのバージョンにあう NVIDIA cuDNN のバージョンを使うこと.
NVIDIA cuDNN の zip ファイルをダウンロードしたら,Windows ならば,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7 (「11.7」のところはバージョン番号)のようなパスの通っているディレクトリ に展開(解凍).
あるいは,zip ファイルを展開したら,展開先の下の bin にパスを通す.
.exe ファイルの実行により「C:\Program Files\NVIDIA\CUDNN\v8.3 」にインストールされるので,C:\Program Files\NVIDIA\CUDNN\v8.3\bin に パスを通す.
https://www.winimage.com/zLibDll で zlib123dllx64.zip
【インストール手順 】
Windows では,コマンドプロン プトを管理者として実行し, 次のコマンドを実行する.
「v11.7」のところは,実際にインストールされているバージョンを確認し,読み替えてください.
cd "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin" curl -O http://www.winimage.com/zLibDll/zlib123dllx64.zip call powershell -command "Expand-Archive zlib123dllx64.zip" copy zlib123dllx64\dll_x64\zlibwapi.dll .
Windows で 「Could not locate zlibwapi.dll. Please make sure it is in your library path!」と表示されるときの対処:
ここの説明を参考に ZLIB DLL をインストールする.
cuDNN のダウンロードのため.
「Join now」をクリック.その後,画面の指示に従う. 利用者本人が,電子メールアドレス,表示名,パスワード,生年月日を登録.利用条件等に合意.
ここでは「NVIDIA cuDNN v8.5.0 for CUDA 11.x」を選んでいる.
このとき,画面の「for CUDA ...」のところを確認し,使用するNVIDIA CUDA のバージョンに合うものを選ぶこと.
次の操作により,cudnn64_8.dll にパスが通っていることを確認する.
Windowsのコマンドプロンプトを開き,次のコマンドを実行する.エラーメッセージが出ないことを確認.
where cudnn64_8.dll
システム環境変数 CUDNN_PATH の設定のため, 管理者として実行した コマンドプロンプトで,次のコマンドを実行する.
call powershell -command "[System.Environment]::SetEnvironmentVariable(\"CUDNN_PATH\", \"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\", \"Machine\")"
TensorFlow,PyTorch のバージョンは何でも良い場合(あるいは,TensorFlow,PyTorch を使う予定がない場合)は, Python 3.10 を使う.
Python 3.10 の根拠:
TensorFlow が対応している Python のバージョン:
PyTorch の Stable および LTS のバージョンと,それらが対応している Python のバージョン:
https://pytorch.org/ の表示や, https://download.pytorch.org/whl/lts/1.8/torch_lts.html, https://download.pytorch.org/whl/cu116/torch_stable.html で確認できる.
使用したい TensorFlow, PyTorch が決まっている場合(あるいは,古いバージョンの Python を使いたい場合)では, 次により, Python, TensorFlow, PyTorch のバージョンの組み合わせを確認する.
TensorFlow のタグのページ: https://github.com/tensorflow/tensorflow/tags で確認.
詳しくは: 別ページにまとめている.
その根拠:
https://pypi.org/project/tensorflow/#filesで確認することができる.
2022/9 時点では次の通りである.
【Python のインストールでの注意点】
Windows で,ユーザ名が日本語のとき,あとでトラブルが発生するかもしれない. トラブルの回避のため, Python をシステム管理者の領域にインストール(パソコンの全ユーザの共有領域)する.
TensorFlow を使う予定がある場合は,https://pypi.org/project/tensorflow-gpu/#filesで,必要な Python のバージョンを確認しておく. 2022/9 時点では,TensorFlow バージョン 2.10 が動くのは,Python 3.10 または Python 3.9 または Python 3.8 または Python 3.7 (https://pypi.org/project/tensorflow/2.10/#files)
【インストール手順の詳細(別ページ) 】
Windows での Python のインストール: 別ページで説明している.
【Python の公式ページ】
【Python の利用】
Python は,次のコマンドで起動できる.
Windows での pip と setuptools の更新
【pip の利用】
Windows では,pip は,次のコマンドで起動できる:
pip または python -m pip または py -3.10 -m pip のようにバージョン指定.
Windows では,管理者として実行.
Windows での Python 開発環境のインストール
python -m pip install -U pip setuptools jupyterlab jupyter jupyter-console jupytext PyQt5 nteract_on_jupyter spyder
設定の要点
システム環境変数 TF_FORCE_GPU_ALLOW_GROWTH の設定: true
コマンドプロンプトを管理者として実行: 別ページで説明している.
python --version
※ 「 python -m pip install ...」は,Python パッケージをインストールするためのコマンド.
python -m pip install -U pip setuptools
トラブルの可能性を減らすために,関係のパッケージのアンインストールを行っておく.
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
pip を用いてインストール
python -m pip install -U tensorflow tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer 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
管理者として実行した コマンドプロンプトで,次のコマンドを実行する.
call 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.7.1,NVIDIA cuDNN v8.5 のインストールと動作確認: 別ページで説明している.
Windows で Python プログラムを動かす.
Python プログラムの実行
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()
結果として 「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()
結果として 「[[ 12.]]」のように表示されるので確認する.
import tensorflow as tf matrix1 = tf.constant([[3., 3.]]) matrix2 = tf.constant([[2.],[2.]]) print( tf.matmul(matrix1, matrix2) ) exit()
python -m pip install -U h5py pillow
10.png のようなファイル名で保存しておく
cd <画像を置いたディレクトリ> python
次のプログラムをコピー&ペースト
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)
python の終了は「exit()」
次のプログラムをコピー&ペースト
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]))
python の終了は「exit()」