TensorFlow 1.14.0(GPU版)をWindows 10にインストールする

TensorFlow 1.14.0(GPU版)をWindows 10にインストールする 機械学習

2021年1月時点では、TensorFlow 2.3.0が公開されています。
しかし、TensorFlow 2系で動くサンプルコードはまだまだ少ないです。

実際、サンプルコードやライブラリは、TensorFlow 1.14.0を利用しているケースが多いです。
そのため、githubで見つけたコードが動かないのは日常茶飯事となっています。

また、そのコードがCPU版のTensorFlow 1.14.0で動くなら、まだマシです。
中には、GPU版のTensorFlow 1.14.0専用ということもあります。

そうなると、TensorFlow 1.14.0(GPU版)をインストールする必要が出てきます。
このような状況の人には、参考となる記事内容となっています。

ただし、TensorFlow 1.14.0(GPU版)のインストールは失敗する可能性が高いです。
新しく購入したPCであればあるほど、その可能性は高まります。

本記事の内容

  • TensorFlow 1.14.0(GPU版)のインストールに失敗する理由
  • TensorFlow 1.14.0(GPU版)のシステム要件
  • TensorFlow 1.14.0(GPU版)のインストール
  • TensorFlow 1.14.0(GPU版)の動作確認

それでは、上記に沿って解説していきます。

TensorFlow 1.14.0(GPU版)のインストールに失敗する理由

新しいPCであるほど、TensorFlow 1.14.0(GPU版)のインストールに失敗します。
その理由は、TensorFlow 1.14.0(GPU版)が古いからです。

こう書くだけだと、元も子もありません。
もう少し説明すると、GPUはハード(デバイス)であり、環境に大きく依存します。

その環境依存の大きいGPUを利用するためには、利用する側もその依存関係に縛られます。
利用する側とは、TensorFlow 1.14.0(GPU版)のことです。
つまり、TensorFlowはGPUの事情に振り回されると言えます。

この関係性において、GPU側がバージョンアップしたら、どうなるでしょうか?
ハード依存が大きいので、互換性を保つのは難しいでしょう。

そうなると、TensorFlowは動かない可能性が高いです。
じゃあ、TensorFlow側もバージョンアップしますよね。

グダグダ書きましたが、簡単に言うと次の一言です。
「TensorFlowのGPU版は、システム要件が厳しい!!」

では、次ではTensorFlow 1.14.0(GPU版)のシステム要件を確認していきます。

TensorFlow 1.14.0(GPU版)のシステム要件

TensorFlow 1.14.0(GPU版)のシステム要件のポイントは、以下。

  • Python
  • CUDA
  • cuDNN
  • Microsoft Visual C++(コンパイラ)

それぞれを説明していきます。
ここを理解することが、最も重要です。

Python

公式にサポートしているPythonのバージョンは、以下。

  • Python 3.5
  • Python 3.6
  • Python 3.7

かなり狭いです。
2021年1月時点におけるPythonの最新バージョンは、3.9.1です。
その一つ前の3.8でもアウトです。

Pythonのバージョンは、以下のコマンドで確認します。

>python -V
Python 3.7.9

CUDA

CUDAは、NVIDIA製GPU向けの統合開発環境のことです。
CUDAには、NVIDIA製GPUを利用するためのAPIが用意されています。

つまり、GPUを利用するにはCUDAを利用する必要があるということです。
そして、サポートされているバージョンは一つだけ。

CUDA 10.0 のみです。
CUDA 10.0のインストールは以下の記事で解説しています。

このCUDAが、TensorFlowのGPU版で最も注意すべきポイントです。

cuDNN

これは、それほど気にする必要はありません。
バージョン 7.4でTensorFlowのほぼすべてのバージョンに対応できます。

例外は、TensorFlow 1.12.0(GPU版)だけです。
でも、このバージョンはもう無視しましょう。

なお、cuDNNのインストール自体は簡単です。
単純にフォルダ・ファイルを指定の場所に設置するだけになります。

Microsoft Visual C++(コンパイラ)

公式では、Visual Studio 2017と指定されています。
正確には、そこに含まれるMicrosoft Visual C++のバージョンが重要です。

つまり、Visual C++ 15.0 and 15.7が指定されていることになります。
ただ、最新バージョンであるVisual Studio 2019はVisual Studio 2017,2015と互換性があります。

そのため、Visual Studio 2019をインストールすればOKです。
Visual Studio 2019のインストールは、以下の記事で解説しています。

TensorFlow 1.14.0(GPU版)のインストール

システム要件さえ整えば、もうこっちのモノです。
あとは、pipで簡単にインストールできます。

その前に、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        20.3.3
setuptools 51.1.2

次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip

では、TensorFlow 1.14.0(GPU版)のインストールです。
TensorFlow 1.14.0(GPU版)のインストールは、以下のコマンドで行います。

pip install tensorflow-gpu==1.14.0

インストールには、しばらくかかります。
インストールが完了したら、パッケージの確認をしましょう。

>pip list
Package              Version
-------------------- -------
absl-py              0.11.0
astor                0.8.1
cached-property      1.5.2
gast                 0.4.0
google-pasta         0.2.0
grpcio               1.34.1
h5py                 3.1.0
importlib-metadata   3.4.0
Keras-Applications   1.0.8
Keras-Preprocessing  1.1.2
Markdown             3.3.3
numpy                1.19.5
pip                  20.3.3
protobuf             3.14.0
setuptools           51.1.2
six                  1.15.0
tensorboard          1.14.0
tensorflow-estimator 1.14.0
tensorflow-gpu       1.14.0
termcolor            1.1.0
typing-extensions    3.7.4.3
Werkzeug             1.0.1
wheel                0.36.2
wrapt                1.12.1
zipp                 3.4.0

結構な数の依存ライブラリがあるのですね。
これだけ依存ライブラリが多いと、容易に導入するのは困難かもしれません。

最後にTensorFlow 1.14.0(GPU版)の動作確認を行います。

TensorFlow 1.14.0(GPU版)の動作確認

インストールしたTensorFlowのバージョンを確認します。

import tensorflow as tf

print(tf.__version__)

上記のコードを実行した結果は・・・
以下の警告が出ます。
それもたくさん。

FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])

どうやら、これはNumpyのバージョンがTensorFlow 1.14.0では適さないとのことです。
この警告を非表示にする対応もあるようです。
でも、根本的に解決したいのでNumpyを入れ替えます。

pip install numpy==1.16.5

上記を実行すると、バージョン1.19.5がアンインストールされます。
それと入れ替えで、バージョン1.16.5をインストールするということになります。

では、再度TensorFlowのバージョンを確認しましょう。

1.14.0

警告が消えました。
では、次にGPUの認識状況を確認します。

from tensorflow.python.client import device_lib;

print(device_lib.list_local_devices())

上記のコードを実行する、ズラズラと表示されます。
その中に以下のような「GPU」という記述があれば、GPUは認識されています。

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 10481203413496209636
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 7059508429
locality {
  bus_id: 1
  links {
  }
}

「device_type: “GPU”」とありますね。
ここまで確認できれば、TensorFlow 1.14.0(GPU版)の動作確認が完了です。

タイトルとURLをコピーしました