書評 – TensorFlowで始める株式投資のためのディープラーニング

手習いでPython(Windows10-Anaconda3-Jupyter Notebook) を応用できる分野として数年前からブームとなっているAIによる株価分析に興味を持っており、TensorFlowを始めたい初学者にも再現性のある本書。

TensorFlowで始める株式投資のためのディープラーニング| Amazon.co.jp

実際に全銘柄データをダウンロード、Pythonでマージするところから第1章を始めて、第2章で古典的な線形回帰分析、第3章はディープラーニングの概念、理論の説明、第4章で実際にTensorFlowで分析した結果を線形回帰分析した結果と比べて評価するまでを学習者とデータ加工、表、グラフへの出力をしてゆきます。プログラムコードはURLからもダウンロードできるのでタイプが苦手な人にもGoogle力とデバッグ知識があれば再現可能な内容となっています。AIをはじめ、ディープラーニング、機械学習の概念をつかむのに画像解析だけじゃないところが画期的といえましょう。Python で株式投資の奥深い概念をどこまで応用できるか興味のある人には最適な入門書だと思います。

TensorFlow2.1.0 環境構築(Windows10)

突然ですがAnaconda にディープラーニングのライブラリーTensorFlow 環境を構築したいと思い、Google先生に訊いたところ

初心者がGPU搭載Windows10にPython + Anaconda + TensorFlow + Kerasの環境を構築してみた[2018/4/28]

上記Tips が見つかったので試したことをメモします。

エディション Windows10 Pro
バージョン 1903
マザーボード Asrock Z370 Pro4
CPU    Intel Core i7 8700K
メモリ   16.0GB
GPU    Nvidia Quadro P2000

まずは下記手順にてAnaconda Promptを管理者として実行してAnacondaをアップデート。(参考:Windows環境でのAnacondaのアップデート

Anaconda本体をアップデートする
> conda update -n base conda

Anacondaすべてのパッケージをアップデートする
> conda update --all

AnacondaのPythonをアップデートする
> conda update python

Pythonのバージョン確認
> python --version
Python 3.7.6

Microsoft Visual Studio 2019 Community 無料ダウンロード
https://visualstudio.microsoft.com/ja/downloads/

からC++ のパッケージをインストール

続いてNvidia CUDA toolkit10.1 をダウンロード、インストール
https://developer.nvidia.com/cuda-toolkit-archive

バージョンは最新の10.2 だとdllエラーがでたので、ひとつ下のグレードでよかったみたいです。

https://developer.nvidia.com/rdp/cudnn-download から cuDNN v7.6.5 [November 5th, 2019] for CUDA 10.1をダウンロード、解凍して

bin,include, lib 各フォルダを C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 に上書きコピー。

Anaconda Navigator の[Environments]から仮想環境を[Create]、tensorflow と入力して [Create]


[Not Installed] からanaconda 関連のパッケージを検索して、[Apply] すると仮想環境にanaconda のインストールが完了します。

Anaconda Prompt (tensorflow) をスタートメニューから管理者として起動してtensorflow-gpu, keras をインストール。

追記)Anaconda Navigator のEnvironments からGUIでtensorflow関連のパッケージをインストールもできますけどバージョン違いでエラーがでるのですべて信頼はできません。

> pip install tensorflow-gpu
> pip install -U tensorflow keras

最初、pip install keras したのですが、AtrributeError が出たので一旦、pip uninstall keras して再度、pip install -U オプションすると上手く行きました。(まぐれ当たりでしょうか?)スタートメニューからJupyter Notebook (tensorflow)を起動してバージョン確認。

pip list | find "tensor"
tensorboard 2.1.0 tensorflow 2.1.0 tensorflow-estimator 2.1.0 tensorflow-gpu 2.1.0 tensorflow-gpu-estimator 2.1.0
import keras print(keras.__version__)
Using TensorFlow backend. 2.3.1

めでたくUsing TensorFlow backend. が表示されました。

TensorFlow 2.x のバージョンからTensorFlow 1.x のコードを実行したいときは

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

とするとハッピーになれるようでした。(下記サンプルコード転記)

import tensorflow.compat.v1 as tf
import numpy as np

tf.disable_v2_behavior()
# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but TensorFlow will
# figure that out for us.)
W = tf.Variable(tf.random.uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b

# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

# Before starting, initialize the variables.  We will 'run' this first.
init = tf.global_variables_initializer()

# Launch the graph.
sess = tf.Session()
sess.run(init)

# Fit the line.
for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(W), sess.run(b))

# Learns best fit is W: [0.1], b: [0.3]