初めに
全部で4本の記事に分けて書いています!
- 第1回 株価予測_可視化編
- 第2回 株価予測_LSTM ver.1
- 第3回 株価予測_LSTM ver.2
- 第4回 株価予測_アプリ化編
今回は株価予測のアプリ化を行なっていきます。Flaskの特徴は、1つのファイルでアプリケーションを作成できることです。これはmicroframeworkと呼ばれています。それに加えて、大きなアプリケーションを作るための拡張機能も備えている優れものです。
このシリーズで行っている株価のチャート分析は意思決定のためのテクニカル指標に過ぎません。なので、予測に絶対は無いことと、株やFXで損する・得することの判断は自己責任でお願いします。ちなみに私は過去にFX(レバレッジ20倍)でテクニカル指標を過信し過ぎて。。。。なので皆さんも実際に取引する時はファンダメンタルズ分析もしっかり取り入れつつ、楽しく取引しましょう!!
今回の章立て
- 今回のファイル構成
- ngrok
- 最後に
- 参考文献
今回のファイル構成
flask(ファイル)
┣ main.py
┣ predict.py
┣ static
┃ ┣ images ━ xxx.png
┃ ┣ predict_file ━ xxx.png
┃ ┗ train_files ━ xxx.pth
┃ ┗ xxx.pkl
┗ templates
┣ get.html # 株価入力
┗ post.html # 株価予測結果
main.py
でwebアプリを起動します。
predict.py
は前回の株価予測を少し変えた内容が入っているファイルです。
static
にはWebページに表示するための画像ファイルや予測のためのpklファイルが入っています。
templates
にはwebページに記載するためのhtmlファイルが入っています。
今回もcolab上でモジュールのインポートします。
!pip3 install torch==1.6.0+cu101
!pip3 install torchvision==0.7.0+cu101
!pip3 install numpy==1.18.5
!pip3 install matplotlib==3.2.2
!pip3 install scikit-learn==0.23.1
!pip3 install seaborn==0.11.0
!pip3 install flask==1.1.2
!pip install flask-ngrok
次にflask.zipとしたFlaskをWeb上で起動するためのフォルダへ移動し、ファイルを確認します。
from google.colab import files
uploaded = files.upload()
!unzip flask.zip
%cd flask
!ls
次にngrokをインストールします。
!pip install pyngrok
!ngrok authtoken xxxxx #Your Authtoken
最後にmain.py
を起動します。
!python3 main.py
実行すると以下のようなものがRunningとして表示されるので、~~~~ngrok.ioをクリックしてwebアプリを起動します。
Running on http://xxx.x.x.x:xxxx/ (Press CTRL+C to quit)
Running on http://xxxx-xx-xxx-xx-xxx.ngrok.io
Traffic stats available on http://xxx.x.x.x:xxxx
ngrokについて
まず、webアプリをGoogle colab上で立ち上げるためには、tokenの取得とコードの追記が必要です。まずtokenの取得をしましょう。
ngrokにアクセスします。
Sign upします。
メールが届いているので、承認します。
Your Authtokenからトークン確認します。
以下のコマンドで実行します。
!pip install pyngrok
!ngrok authtoken xxxxx #Your Authtoken
最後に
Flaskに関しては入門書をやってみた感じですが、先駆者の皆様のサイトをみながら、書籍を参考にさせていただきながら、一応完成はしました!
参考文献
Flask Tutorial
ゼロからFlaskがよくわかる本: Pythonで作るWebアプリケーション開発入門
動かしながら学ぶ PyTorchプログラミング入門
ngrok:詳しくは以下を参照
GoogleColabでFlaskアプリを実行する方法(ngrok token必要になった模様)
Quickly share ML WebApps from Google Colab using ngrok for Free
ローカルで実行したい場合はこちら➡︎【Macユーザー向け】ngrokでローカル環境のサイトを外部へ公開