Tensorflowのインストール方法、バージョン1.x・2.xの違いについて

Python

Tensorflowのインストール方法

最新のtensorflowをインストールしたい場合、
 pip install tensorflow
をコマンドプロントやpowershellで実行するか、現在(2022.7)では2.9.1が最新なので
 pip install tensorflow==2.9.1
を実行すれば良い。自身のPythonに合ったバージョンをインストールしたければ、こちらの「release history」から対応したバージョンを確認して
 pip install tensorflow==バージョン番号
とする。

ここで気を付けたいのがtensorflowのバージョン。

tensorflow1.x系が対応しているPythonのバージョンは3.4, 3.5, 3.6, 3.7までで、最新のPython(2022.7現在では3.10)を入れているPCでは1.x系のバージョンはインストールできず、上のコードを実行してもエラーが発生する。また最新のtensorflow2.9.1ではPython3.7以降しか対応していない。tensorflowをインストールするときは自身のPythonのバージョンに合ったものをインストールする必要がある。

ちなみにこちらのサイトからtensorflow2.9.1の対応しているバージョンを確認可能。「release history」をクリックすれば最新のバージョンから過去のものまで全てチェックできる。

さらに、やっかいなのがtensorflowのバージョン1.x系と2.x系では大きく仕様が異なる点だ。

バージョン1.xと2.xの違い

tensorflow2.xからはSessonが廃止されたらしく、
 import tensorflow as tf
 sess = tf.Session()
などとするとエラーが出る。
バージョン1.xでは計算グラフを定義した後にtf.Session.run()でグラフを実行していたが、2.x以降では、式の定義と同時に式が実行される仕様になった。前者を「Define and Run」、後者を「Define by Run」という。

詳しい解説は以下のサイトを参照。
サルでもわかるtensorflow:基本的な変数の扱い方(1.x系での使い方)
pip install tensorflowしたら2.0がやってきました。(2.x系をインストールしたらエラーが出た方の体験談)
TensorFlow2.0ついにリリース!(1.x系と2.x系での大きな違い Define and Run と Define by Runの解説などに詳しい)

上で述べた通り、1.x系はPython3.7までしか対応していないので、最新のPythonでひと昔前のtensorflowのコードを動かそうとしても不可能。コードを書き換えるか、以前のコードを使いたければPythonごと入れ替えなければならない。

この記事を書くことになった経緯

そもそもこの記事を書くことになったのは、とあるディープラーニングのオンライン講座を受講し始めたときだった。AI関連の資格でE資格というのが話題だが、この資格の受験資格を得るためにはなんと日本ディープラーニング協会が指定している認定講座を受講する必要がある。そんなわけで、職場からお金を出してもらえて講座を受講することなったが、tensorflow 周りの環境構築で早速エラーが出てしまった。

講座では提供しているPythonノートブックに環境を合わせるために、ライブラリを入れるのに細かくバージョンが指定されていた。少しくらいバージョンが違っても良いかと思い、既にインストールした最新のPythonで環境構築を進めて行くと、tensorflowをインストールするためのコード「pip install tensorflow==1.14.0」をpowershellで実行する所から次のエラーが発生。

a version that satisfies the requirement tensorflow==1.14.0

調べてみるとこのページで書いた通り、tensorflow1.14.0が私のインストールしたPython3.9では対応していなかったのが原因だった。さらにtensorflow2.xを入れても、講座から提供されたコードでエラーが出て上手くいかず。今後色々な所でエラーが出ると面倒くさそうなので、Python(Anaconda)をオンライン講座のノートブックに合わせて古いバージョンのAnacondaをインストールし直すことになった。

ちなみに過去のAnacondaをインストールするには以下のサイトから対応したものをダウンロードすればよい。
https://repo.anaconda.com/archive/

コメント

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