Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Voxxed Days Belgrade 2017: Deploying Image Recognition with TensorFlow and Kubernetes
Casey West
October 19, 2017
Technology
0
72
Voxxed Days Belgrade 2017: Deploying Image Recognition with TensorFlow and Kubernetes
Casey West
October 19, 2017
Tweet
Share
More Decks by Casey West
See All by Casey West
caseywest
0
120
caseywest
12
2.6k
caseywest
0
340
caseywest
3
2.6k
caseywest
0
230
caseywest
1
240
caseywest
0
180
caseywest
1
490
caseywest
3
530
Other Decks in Technology
See All in Technology
pinboro
0
2k
clustervr
0
190
shirayanagiryuji
0
1.6k
kappa4
4
2k
kurochan
0
550
iqbocchi
0
520
kawaguti
0
110
ytaka23
0
430
yuyaabo
0
250
ocise
0
100
kurotanshi
0
170
110y
3
690
Featured
See All Featured
rmw
11
740
jensimmons
207
10k
malarkey
393
60k
malarkey
192
8.5k
addyosmani
494
110k
sugarenia
233
830k
carmenhchung
26
1.3k
colly
186
14k
hannesfritz
27
930
andyhume
62
3.3k
pauljervisheath
196
15k
phodgson
87
3.9k
Transcript
Enhance! Deploying Image Recognition with TensorFlow and Kubernetes Casey West
! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 1
I am… —Dad, software architect, technical lead, change agent, programmer,
beverage enthusiast, rock climber, cyclist, acro yoga person… —An Architecture Advocate at Google. I am not… —A data scientist. —An expert in machine learning. ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 2
however… ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes
3
I know enough to be dangerous. ! @caseywest @googlecloud @VoxxedBelgrade
#" #VBD17 #machinelearning #tensorflow #kubernetes 4
In 40 minutes you will also know enough to be
dangerous. ! ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 5
Let's get dangerous. ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning
#tensorflow #kubernetes 6
Project Plan —Phase 0: Understand ML Basics —Phase 1: Create
TensorFlow Serving model —Phase 2: Create TensorFlow Serving client app —Phase 3: Deploy on Kubernetes —Phase 4: Play! ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 7
Understand ML Basics ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning
#tensorflow #kubernetes 8
Understand ML Basics ¯\_(ϑ)_/¯ ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17
#machinelearning #tensorflow #kubernetes 9
Training a Model 1. Data 2. Time 3. Procedure !
@caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 10
Training a Model 1. Data Historical or available data. !
@caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 11
Training a Model 2. Time Iterations you have time to
make. ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 12
Training a Model 3. Procedure Discover data preparation procedures, an
algorithm to use, and how to configure it. ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 13
Training a Model: Steps 1. Get a data set. 2.
Split it into training and testing data. 3. Train the algorithm. 4. Test the algorithm. 5. Ship it! ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 14
Training a Model: Know More in Five Minutes https://www.youtube.com/watch?v=2FmcHiLCwTU —
Siraj Raval ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 15
Image Recognition: Inception v3 https://github.com/tensorflow/models/tree/master/research/inception ! @caseywest @googlecloud @VoxxedBelgrade #"
#VBD17 #machinelearning #tensorflow #kubernetes 16
Serving the model with TensorFlow Serving —Continuous training pipeline —gRPC
interface —Production ready https://www.tensorflow.org/serving/ ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 17
Pre-trained models exist! ! Let's containerize them before they get
away! ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 18
Create a Docker Image: TensorFlow Serving Inception v3 Docker Machine
docker-machine create \ --driver google \ --google-project goog-caseywest \ --google-zone us-central1-a \ --google-machine-type n1-standard-4 \ docker-machine eval $(docker-machine env docker-machine) ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 19
Create a Docker Image: TensorFlow Serving Inception v3 Run developer
container git clone git@github.com:tensorflow/serving.git cd serving docker build --pull \ -t $USER/tensorflow-serving-devel \ -f tensorflow_serving/tools/docker/Dockerfile.devel . docker run --name=inception_container -it \ $USER/tensorflow-serving-devel ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 20
Create a Docker Image: TensorFlow Serving Inception v3 Build in
the devel the container git clone --recurse-submodules \ https://github.com/tensorflow/serving cd serving/tensorflow ./configure # interactive :-( cd .. bazel build -c opt tensorflow_serving/... ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 21
Create a Docker Image: TensorFlow Serving Inception v3 Export inception
in the devel the container curl -LO http://cwe.st/tf-inception-v3 tar xzf inception-v3-2016-03-01.tar.gz bazel-bin/tensorflow_serving/example/inception_saved_model \ --checkpoint_dir=inception-v3 \ --output_dir=inception-export ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 22
Create a Docker Image: TensorFlow Serving Inception v3 Commit and
deploy container docker commit inception_container \ $USER/inception_serving docker tag $USER/inception_serving \ gcr.io/goog-caseywest/inception gcloud docker -- push \ gcr.io/goog-caseywest/inception ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 23
The Machines Have Already Learned Using ML isn't doing ML.
! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 24
Deploy Inception Service on Kubernetes Create a cluster gcloud container
clusters create \ image-recognition-cluster \ --num-nodes 5 ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 25
Let's do it live… ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17
#machinelearning #tensorflow #kubernetes 26
We did it! ! ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17
#machinelearning #tensorflow #kubernetes 27
Takeaways —Training models is hard. —Serving models is kind of
easy. —gRPC and protobuf have steep learning curves. —therefore, client libraries are challenging. ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 28
Want the code? —DM me @caseywest —Email me caseywest@google.com —Try
a similar tutorial —https://tensorflow.github.io/serving/ serving_inception ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 29
Want to try more ML? —TensorFlow —https://www.tensorflow.org/ —MXNet —http://mxnet.io/ —Google
Cloud Playground —https://cloud.google.com/vision/ ! @caseywest @googlecloud @VoxxedBelgrade #" #VBD17 #machinelearning #tensorflow #kubernetes 30
Let's be friends @caseywest ! ! @caseywest @googlecloud @VoxxedBelgrade #"
#VBD17 #machinelearning #tensorflow #kubernetes 31