TensorFlowにFlaskベースのAPIでアクセスするベース
- FlaskというWEBフレームワークを利用しています
- swagger.ymlは connexionベースでやろうとしていた時の名残で飾りです。
- 基本的にはdocker-composeで起動する想定になっています
- とりあえず適当に
tensorflow.Session().run()
だけしてみています
├── Dockerfile ...tensorflow+flaskでAPIを動かすイメージの定義
├── README.md
├── docker-compose.yml ...とりあえずローカルで動かすためのcompose定義
├── dockerignore
├── nginx ...リクエストを受けるNginx
│ ├── Dockerfile
│ └── nginx.conf
└── src
├── app.py ...起動ファイル。(今はベタにここに全部書いてあります)
├── guniconf.py
└── swagger.yaml
$ docker-compose up
で起動し、 http://localhost:8080/healthcheck でとりあえず起動確認。
(Win/Macはdocker-machineのIP 192.168.99.100)
Ctrl+C
で止まった風に見えますが、
$ docker-compose down
で、止めてください。(docker-composeのバージョンによるのかも)
See:
Googleから公式に配布されているDockerイメージgcr.io/tensorflow/tensorflowはPython2.7ベースなのでそれに乗っかる。
./src
-> /opt/tensor-api
のマウントをdocker-compose.ymlに定義してあります。
ローカルで動かすときにいちいちdocker-compose build
するの面倒かなーと思って。
$ base64 -i input.jpg -o ./sampledata
$ curl -X POST -H "Content-Type: text/plain" -d @sampledata localhost:8080/api/face