メモ

最近やってるやつメモ

https://cloud.google.com/ml-engine/docs/flowers-tutorial?hl=ja
のチュートリアル
チュートリアルの画像データはすでにgcsにアップロードされているので特に用意するものはない。
カスタムする前に愚直にやったほうが良さそう。

Docker使って作業環境作っている。
pythonは2で最後まで大丈夫なのでpyenvとか入れずにcentos:latestのdocker imageに入っているデフォのpython使う。

とりあえずpdとvariablesが出来上がったのでtensorflow-lite形式に変換したい。
変換にはtocoが必要なのでtocoをビルドするためにbazelインストール

環境

Docker
centos

centosのセットアップ

docker pull centos:latest
docker images
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              e934aafc2206        7 weeks ago         199MB

今いるディレクトリをsrvにマウントしてdockerへ入る

docker run -v (pwd):/srv -t cents:latest /bin/bash

チュートリアル

コピペでやる

toco (tensorflow lite)のインストール

yum install java-1.8.0-openjdk-devel

.bash_profile
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/
export JAVA_HOME
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
bazel build --jobs 1 tensorflow/contrib/lite/toco:toco

tocoでtflite形式に変換

bazel-bin/tensorflow/contrib/lite/toco/toco --savedmodel_directory=/srv/cloudml-samples-master/flowers/result/ --output_file=/srv/cloudml-samples-master/flowers/result/lite.tflite --input_arrays=input --input_shapes=1,224,224,3

うまくいかない、多分input_arraysとinput_shapesが適当なのがだめ

リンク

TensorFlow Liteを使ってモバイル向けに最適化された機械学習モデルを動かしてみる
http://blog.gclue.com/?p=836

tocoのドキュメント
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/toco/g3doc/cmdline_examples.md#savedmodel

tocoのビルドでjobs-1すればいいという情報の出処
https://github.com/tensorflow/tensorflow/issues/349

bazelのバイナリ、重くてaxelで無理やり落とした
https://github.com/bazelbuild/bazel/releases

multcloud、urlから直にgoogle driveに落とせる
https://www.multcloud.com/jp/

centosにbazel入れる
https://www.hpc-technologies.co.jp/faq-201707-01

centosにbazel入れるやつ、この通りにやった
https://knowledge.sakura.ad.jp/6174/