![Page 1: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/1.jpg)
![Page 2: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/2.jpg)
PETR ZADRAŽILSoftware Engineer, Google
![Page 3: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/3.jpg)
TensorFlowpro mobilní vývojáře
![Page 4: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/4.jpg)
Rozpoznávání obrázků
TensorFlow
Mobilní praxe
Obsah
![Page 5: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/5.jpg)
Rozpoznávání obrázků
![Page 6: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/6.jpg)
Skok Kupředu
![Page 7: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/7.jpg)
32x32px - 10 kategorií
ukázky obrázků
správně2015 96.53%
2014 93.72%
2013 90.68%
2012 90.50%
2011 80.00%
člověk ~94.00%
CIFAR-10
![Page 8: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/8.jpg)
Inceptionism
![Page 9: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/9.jpg)
Inceptionism
![Page 10: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/10.jpg)
Inceptionism
![Page 11: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/11.jpg)
Inceptionism
![Page 12: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/12.jpg)
Umělecké Styly
![Page 13: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/13.jpg)
výpočetní síla (i mobilní)
množství dat
distribuované algoritmy
větší porozumění
nové typy neuronových sítí
Proč až nyní?
![Page 14: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/14.jpg)
Preprocessing
![Page 15: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/15.jpg)
10 čísel (kategorií)
60 000 trénovacích
10 000 testovacích
28 x 28 pixelů
MNIST
![Page 16: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/16.jpg)
MNIST
![Page 17: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/17.jpg)
y = softmax (Wx + b)
Softmax Regressioni →
j ↓
![Page 18: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/18.jpg)
Ztrátová funkce
y = softmax (Wx + b)
y = [0.5, 0.2, 0.3]
y’ = [1, 0, 0]
i →
j ↓
![Page 19: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/19.jpg)
Výsledek
![Page 20: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/20.jpg)
TensorFlow
![Page 21: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/21.jpg)
distribuovaný machine-learning framework
vedlejší produkt výzkumu v Google
umožňuje:
100 000 000 000+ parametrů
100 000 000 000+ příkladů
100+ výpočetních serverů
TensorFlow
![Page 22: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/22.jpg)
interface: Python, C++, …
portabilní: CPU, GPU, mobilní telefony, …
využití:
rozpoznávání řeči
rozpoznávání obrazu
robotika
vytežování dat
výzkum léků
TensorFlow
![Page 23: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/23.jpg)
vstup
parametr
operace
tensor
Graf - základ výpočtu
W
b
x
MatMul
Add
![Page 24: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/24.jpg)
Graf - základ výpočtu
W
b
x
MatMul
Add
LossLearn
y’
![Page 25: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/25.jpg)
Ukázka Kódu
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/
examples/tutorials/mnist/mnist_softmax.py
![Page 26: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/26.jpg)
Neuronová síť
![Page 27: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/27.jpg)
Neuron
Σ f()W2
W3b
W1
![Page 28: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/28.jpg)
Aktivační funkce
Sigmoid: 1 / (1 - e^(-x))
Gausian: e ^ (-(x^2))
ReLU: max(0, x)
![Page 29: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/29.jpg)
Neuronová Síť
![Page 30: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/30.jpg)
Konvoluční Neuronová Síť
preprocessing - centrovani
![Page 31: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/31.jpg)
Konvoluční Neuronová Síť
![Page 32: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/32.jpg)
Konvoluční Neuronová Síť
![Page 33: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/33.jpg)
Konvoluční Neuronová Síť
![Page 34: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/34.jpg)
Animace
![Page 35: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/35.jpg)
Ukázka Kódu
https://drive.google.com/open?id=0B00r-2PrfhYJX3l6Wnh2VHhSWms
![Page 36: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/36.jpg)
Krizehvsky et al. (2012)
2 GPUs, ReLU, DropOut, ImageNet
![Page 37: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/37.jpg)
Krizehvsky et al. (2012)
![Page 38: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/38.jpg)
Krizehvsky et al. (2012)
![Page 39: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/39.jpg)
Mobilní Praxe
![Page 40: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/40.jpg)
Vývojový proces
![Page 41: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/41.jpg)
KnihovnaJava
Nativní Kód (C)
TensorFlow
![Page 42: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/42.jpg)
Android Kódhttps://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android
tensorflow::Tensor input_tensor(
tensorflow::DT_FLOAT,
tensorflow::TensorShape({1, g_tensorflow_input_size,
g_tensorflow_input_size, 3}));
auto input_tensor_mapped = input_tensor.tensor<float, 4>();
input_tensor_mapped(i, j, k, l) = <float>;
![Page 43: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/43.jpg)
Android Kódhttps://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android
tensorflow::Tensor input_tensor(
tensorflow::DT_FLOAT,
tensorflow::std::vector<std::pair<std::string, tensorflow::Tensor> > input_tensors(
{{"input:0", input_tensor}});
std::vector<tensorflow::Tensor> output_tensors;
std::vector<std::string> output_names({"output:0"});
tensorflow::Status s = session->Run(input_tensors, output_names, {}, &output_tensors);
![Page 44: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/44.jpg)
Android Kódhttps://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android
if (!s.ok()) {
LOG(ERROR) << "Error during inference: " << s;
return "";
}
tensorflow::Tensor* output = &output_tensors[0];({1, g_tensorflow_input_size, g_tensorflow_input_size, 3}));
![Page 45: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/45.jpg)
Google Translate
Živé Ukázky
TensorFlow Demo App
![Page 46: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/46.jpg)
https://www.youtube.com/watch?v=0zKU7jDA2nc&t=1m50s
Google Translate
![Page 47: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/47.jpg)
Triky
preprocessing
detekce tvarů
normalizace
nepřesný překlad (5uper)
![Page 48: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/48.jpg)
Triky
Generovaná Data
![Page 49: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/49.jpg)
Kam Dál
Web TensorFlow: https://www.tensorflow.org/
TebsorFlow Android Example: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android
Materiály k prezentaci: https://drive.google.com/open?
id=0B00r-2PrfhYJQ0oyZkpyaFF5amc
Colah’s Blog: http://colah.github.io/
Karpathy’s Blog: http://karpathy.github.io/
![Page 50: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/50.jpg)
Otázky?
![Page 51: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/51.jpg)
Líná huba - holé neštěstí.
— moje babička
![Page 52: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/52.jpg)
Web TensorFlow: https://www.tensorflow.org/
TensorFlow White Paper: http://download.tensorflow.org/paper/whitepaper2015.pdf
TebsorFlow Android Example: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android
Google Research Blog: http://googleresearch.blogspot.cz/
Colah’s Blog: http://colah.github.io/
Karpathy’s Blog: http://karpathy.github.io/
Rodrigo’s Blog: http://rodrigob.github.io/
XKCD: http://xkcd.com
Neural Artist Style: https://github.com/jcjohnson/neural-style
Zdroje
![Page 53: Petr Zadražil: TensorFlow v mobilních aplikacích](https://reader038.vdocuments.site/reader038/viewer/2022102811/58a52e931a28aba8628b5403/html5/thumbnails/53.jpg)
WWW.MDEVTALK.CZ
mdevtalk