見出し画像

Pythonで機械学習を検証する環境を構築しました Keras + TensorFlow編


Pythonで機械学習を検証する環境を構築することにしました

回帰による日経平均株価の予測で問題に遭遇し、途方に暮れています。

なぜか、作成したAIモデルに当日の日経平均株価の情報を入力すると、本来であれば翌営業日の日経平均株価の情報を期待しているのに、前営業日の日経平均株価の情報が出力されるという状況なのです。

詳細は、下記の記事を参照ください。

使用しているNeural Network Consoleを疑っているわけではないのですが、問題を解決する良いアイデアが浮かびません。

そこで、別の機械学習を検証する環境を構築し、同じAIモデルと説明変数および目的変数で、同じ問題に遭遇するか否かを確認することにしました。

インターネットにてPythonで使用可能な機械学習のライブラリを調べたところ、非常に多くの種類が存在することを知りました。

私が扱うのは、機械学習の中でもニューラルネットワークです。

それに適しており、特にメジャーなものとして、Keras + TensorFlowの組み合わせを試してみることにしました。

Kerasを選んだ理由は、ニューラルネットワークを記述する文法が直感的で分かりやすかったからです。

また、TensorFlowは、Kerasを動かすのに必要とのことです。

Python環境へのKeras + TensorFlowのインストール方法

Python環境へのKeras + TensorFlowのインストール方法は、以下の通りです。

先ず始めに、TensorFlowをインストールします。

> conda install -c conda-forge tensorflow=2.10.0

私は、Python環境を構築するためにAnacondaを使用しているため、condaコマンドを使用しています。

Anacondaを使用していない環境では、pipコマンドを使用します。

正常にTensorFlowのインストールが終了しました。

続いて、Kerasをインストールします。

> conda install -c conda-forge keras

上記のコマンドを実行したところ、以下のログが表示されました。

Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 22.9.0
  latest version: 24.5.0

Please update conda by running

    $ conda update -n base -c conda-forge conda


# All requested packages already installed.

Retrieving notices: ...working... done

どうやらcondaのバージョンが古いという意味のWARNINGのようです。

「All requested packages already installed.」が、Kerasのことを指しているのか良く分かりません。

TensorFlowのインストール時は、自動でインストールログが全て消去された後に「done」のみが表示されました。

もしかしたら、TensorFlowのインストール時も、Kerasと同じくcondaのバージョンに対するWARNINGが表示されていたのかもしれません。

Pythonのライブラリパッケージをインストールした場合、ログが勝手に消去されてしまいます。

この仕様は何とかならないものでしょうか。

分かりにくくてしょうがありません。

さて、Kerasのインストール状況については、下記のコマンドを使用して確認することができました。

> conda list keras
(中略)
# Name                    Version                   Build  Channel
keras                     2.10.0             pyhd8ed1ab_0    conda-forge

condaのバージョンに対するWARNINGを無視すれば、Keras + TensorFlowのインストールは完了したはずです。

ライブラリパッケージ間の依存関係を確認

念のため、Keras + TensorFlowをインストールした後に、ライブラリパッケージ間の依存関係を確認してみました。

> pip check
nnabla 1.38.0 requires boto3, which is not installed.
tensorflow 2.10.0 requires keras-preprocessing, which is not installed.
tensorflow 2.10.0 requires libclang, which is not installed.
tensorflow 2.10.0 requires tensorflow-io-gcs-filesystem, which is not installed.
tensorflow 2.10.0 has requirement protobuf<3.20,>=3.9.2, but you have protobuf 3.20.1.

幾つか問題があるようです。

  • 依存関係に関する問題

    • インストールが必要なライブラリパッケージ

      • boto3

      • keras-preprocessing

      • libclang

      • tensorflow-io-gcs-filesystem

    • バージョンの調整が必要なライブラリパッケージ

      • protobuf(現状3.20.1 → 3.9.2以上、3.20未満とすべき)

先ずは、必要なライブラリをインストールします。

> conda install -c conda-forge パッケージ名

condaコマンドでインストールができないものはpipコマンドを使用しました。

続いて、protobufのバージョン問題についてです。

この問題についてインターネットで調べたところ、無視しても良いとのコメントを見つけました。

このため、とりあえずスルーします。

Keras + TensorFlowの動作確認

下記のコマンドを実行し、TensorFlowの動作確認を行いました。

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

期待通り、TensorFlowのライブラリパッケージがインポートされ、バージョンが表示されました。

続いて、Kerasの動作確認を行いました。

> python -c "import keras; print( keras.__version__ )"
2.10.0

こちらも期待通りでした。

protobufのバージョンに関しては、何か問題があるまでスルーとします。

以上で、Keras + TensorFlowのインストールは終了です。

この記事が気に入ったらサポートをしてみませんか?