Flaskというpythonの小規模なフレームワークとtensorflowを利用して
herokuで「hello world」を動かしてみました!
参考url
Flask を触ってみる + Heroku で動かす
http://qiita.com/sqrtxx/items/2ae41d5685e07c16eda5
TensorFlowで Hello Worldを動かしてみた&その解説
http://dev.classmethod.jp/machine-learning/tensorflow-hello-world/
TensorFlowでのMNIST学習結果を、実際に手書きして試す
http://d.hatena.ne.jp/sugyan/20151124/1448292129
やったこと
-
とりあえずローカル環境で動かしてみる
- 開発ディレクトリを作成と移動
- tensorflow をアクティベート
- Flask のインストール
- インストールされてるパッケージを確認
- hello.py を作る
- ローカルで実行する
-
herokuにあげてみる
- Procfile を用意する
- requirements.txt を用意する
- .gitignore を作る
- herokuにデプロイ
- webページを開く
前提(自分の環境)
OS X IE Capitan 10.11.4
- python 2.7.10
- tensorflow 0.6.0
をインストール済み
とりあえずローカル環境で動かしてみる
開発ディレクトリを作成と移動
$ mkdir tensorflow-hello
$ cd tensorflow-hello
tensorflow をアクティベート
$ source ~/tensorflow/bin/activate
Flask のインストール
$ pip install Flask
インストールされてるパッケージを確認
$ pip list
hello.py を作る
# hello.py
import tensorflow as tf
import multiprocessing as mp
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
core_num = mp.cpu_count()
config = tf.ConfigProto(
inter_op_parallelism_threads=core_num,
intra_op_parallelism_threads=core_num )
sess = tf.Session(config=config)
hello = tf.constant('hello, tensorflow!')
return sess.run(hello)
if __name__ == '__main__':
app.run()
ローカルで実行する
$ python hello.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
http://127.0.0.1:5000/
にアクセスしてみると
こんなかんじになった!はろー!
herokuにあげてみる
Procfile を用意する
web: gunicorn hello:app --log-file -
requirements.txt を用意する
requirements.txt を書き出して
$ pip freeze > requirements.txt
そのあと
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
をファイルの最後に追加する
ちなみに自分のrequirements.txtはこんなかんじになった
Flask==0.10.1
gunicorn==19.4.5
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.9
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
.gitignore を作る
*.pyc
*.pyo
tensorflow-hello
herokuにデプロイ
$ git init
$ git add .
$ git commit -am "tensorflow hello"
$ heroku apps:create tensorflow-hello
$ heroku buildpacks:add heroku/python
$ git push heroku master
webページを開く
$ heroku open
herokuの環境でも実行できました!
学習させたりといったことには向いてないと思いますが
判別させたりするのになどには使えるのではないかなと思ってやってみました。
何かご指摘等あれば頂けると嬉しいですmm