4.04 score from hupso.pl for:
petewarden.com



HTML Content


Title pete warden's blog

Length: 24, Words: 4
Description ever tried. ever failed. no matter. try again. fail again. fail better.

Length: 71, Words: 12
Keywords pusty
Robots
Charset UTF-8
Og Meta - Title exist
Og Meta - Description exist
Og Meta - Site name exist
Tytuł powinien zawierać pomiędzy 10 a 70 znaków (ze spacjami), a mniej niż 12 słów w długości.
Meta opis powinien zawierać pomiędzy 50 a 160 znaków (łącznie ze spacjami), a mniej niż 24 słów w długości.
Kodowanie znaków powinny być określone , UTF-8 jest chyba najlepszy zestaw znaków, aby przejść z powodu UTF-8 jest bardziej międzynarodowy kodowaniem.
Otwarte obiekty wykresu powinny być obecne w stronie internetowej (więcej informacji na temat protokołu OpenGraph: http://ogp.me/)

SEO Content

Words/Characters 8111
Text/HTML 40.36 %
Headings H1 14
H2 10
H3 1
H4 0
H5 0
H6 0
H1
pete warden's blog
why deep learning needs assembler hackers
rewriting tensorflow graphs with the gtt
ai and unreliable electronics (*batteries not included)
tensorflow for mobile poets
what are gpus, anyway?
bossy girls, parser mcparseface, and why deep learning is not just another fad
how to quantize neural networks with tensorflow
post navigation
follow @petewarden on twitter
recent posts
recent comments
archives
footer menu
H2
ever tried. ever failed. no matter. try again. fail again. fail better.
why does quantization work?
why quantize?
why not train in lower precision directly?
how can you quantize your models?
how does the quantization process work?
what representation is used for quantized tensors?
how do we determine ranges?
how is the rounding done?
what’s next?
H3
pete warden's blog
H4
H5
H6
strong
imagenet_comp_graph_label_strings.txt
tensorflow_inception_graph.pb
b
i
em imagenet_comp_graph_label_strings.txt
tensorflow_inception_graph.pb
Bolds strong 2
b 0
i 0
em 2
Zawartość strony internetowej powinno zawierać więcej niż 250 słów, z stopa tekst / kod jest wyższy niż 20%.
Pozycji używać znaczników (h1, h2, h3, ...), aby określić temat sekcji lub ustępów na stronie, ale zwykle, użyj mniej niż 6 dla każdego tagu pozycje zachować swoją stronę zwięzły.
Styl używać silnych i kursywy znaczniki podkreślić swoje słowa kluczowe swojej stronie, ale nie nadużywać (mniej niż 16 silnych tagi i 16 znaczników kursywy)

Statystyki strony

twitter:title pusty
twitter:description pusty
google+ itemprop=name pusty
Pliki zewnętrzne 30
Pliki CSS 9
Pliki javascript 21
Plik należy zmniejszyć całkowite odwołanie plików (CSS + JavaScript) do 7-8 maksymalnie.

Linki wewnętrzne i zewnętrzne

Linki 237
Linki wewnętrzne 4
Linki zewnętrzne 233
Linki bez atrybutu Title 212
Linki z atrybutem NOFOLLOW 0
Linki - Użyj atrybutu tytuł dla każdego łącza. Nofollow link jest link, który nie pozwala wyszukiwarkom boty zrealizują są odnośniki no follow. Należy zwracać uwagę na ich użytkowania

Linki wewnętrzne

skip to content #content
my tweets
#page
cancel #

Linki zewnętrzne

pete warden's blog https://petewarden.com/
home https://petewarden.com/
about https://petewarden.com/about/
https://petewarden.com/2017/01/03/why-deep-learning-needs-assembler-hackers/
why deep learning needs assembler hackers https://petewarden.com/2017/01/03/why-deep-learning-needs-assembler-hackers/
january 3, 2017 https://petewarden.com/2017/01/03/why-deep-learning-needs-assembler-hackers/
pete warden https://petewarden.com/author/petewarden/
uncategorized https://petewarden.com/category/uncategorized/
2 comments https://petewarden.com/2017/01/03/why-deep-learning-needs-assembler-hackers/#comments
- https://petewarden.files.wordpress.com/2017/01/screen-shot-2017-01-03-at-9-58-12-am.pnghttps://www.flickr.com/photos/daniel-lopez/4154216384/in/photolist-7k6rnq-clozjk-phdkyc-dpkenm-9vjjao-8n81vr-qjs5jq-6dmptn-peemle-nncbjr-nj8x4t-eeiaym-a5n2cd-eestbe-ocquoo-dkob7a-efxkan-cfqkl7-buomx4-ouc8lu-7tfbsx-cmkwx7-guj9nc-ih1u42-6xtvw6-so4b5x-83qbtc-b1wuje-p33vnv-6qh2vs-h2dund-efduys-pzyduh-6vxeby-rp9tgk-dmd2z1-e96kup-bkhv7a-gr3k8q-aadinw-ddk4t5-dm7sjv-hkanqz-mftrhh-oi9xxt-rpqsgd-rve8en-ogcwnq-q6kqyb-datyzd
photo by daniel lopez https://www.flickr.com/photos/daniel-lopez/4154216384/in/photolist-7k6rnq-clozjk-phdkyc-dpkenm-9vjjao-8n81vr-qjs5jq-6dmptn-peemle-nncbjr-nj8x4t-eeiaym-a5n2cd-eestbe-ocquoo-dkob7a-efxkan-cfqkl7-buomx4-ouc8lu-7tfbsx-cmkwx7-guj9nc-ih1u42-6xtvw6-so4b5x-83qbtc-b1wuje-p33vnv-6qh2vs-h2dund-efduys-pzyduh-6vxeby-rp9tgk-dmd2z1-e96kup-bkhv7a-gr3k8q-aadinw-ddk4t5-dm7sjv-hkanqz-mftrhh-oi9xxt-rpqsgd-rve8en-ogcwnq-q6kqyb-datyzd
the gemm matrix multiply function https://petewarden.com/2015/10/25/an-engineers-guide-to-gemm/
powers deep learning https://petewarden.com/2015/04/20/why-gemm-is-at-the-heart-of-deep-learning/
gotoblas https://en.wikipedia.org/wiki/gotoblas
openblas http://www.openblas.net/
eigen http://eigen.tuxfamily.org/index.php?title=main_page
gemmlowp https://github.com/google/gemmlowp
scott gray https://twitter.com/scottgray76
the winograd algorithm https://www.nervanasys.com/winograd-2/
https://petewarden.com/2016/12/30/rewriting-tensorflow-graphs-with-the-gtt/
rewriting tensorflow graphs with the gtt https://petewarden.com/2016/12/30/rewriting-tensorflow-graphs-with-the-gtt/
december 30, 2016 https://petewarden.com/2016/12/30/rewriting-tensorflow-graphs-with-the-gtt/
pete warden https://petewarden.com/author/petewarden/
uncategorized https://petewarden.com/category/uncategorized/
1 comment https://petewarden.com/2016/12/30/rewriting-tensorflow-graphs-with-the-gtt/#comments
- https://www.flickr.com/photos/sdstrowes/8248580877/in/photolist-dyu8hf-4lznr6-4mx9v5-7afs9z-3mcfgh-dtpiy7-ahr9hi-dtieem-c3qadw-2exrv-pv1e43-cwewjf-7neaqj-9pf85a-svebgv-azft21-puvdfk-qs5f2s-pnunw-fhfzmu-oygpqd-aostnc-bbjpvi-fcznim-8fcw89-8jgii9-hsaz4o-3krudh-dzanga-sgoaye-mm6hct-7dgfe7-krrnmc-564rfg-4nhcwe-jvxcqb-bopxrg-8mps3u-68crnm-bo3thm-dbvfkk-eaagwp-kwn32f-7ahkgy-asbnwn-7vlz96-4kvpot-pnunm-9rjv6c-crkoaq
photo by stephen d. strowes https://www.flickr.com/photos/sdstrowes/8248580877/in/photolist-dyu8hf-4lznr6-4mx9v5-7afs9z-3mcfgh-dtpiy7-ahr9hi-dtieem-c3qadw-2exrv-pv1e43-cwewjf-7neaqj-9pf85a-svebgv-azft21-puvdfk-qs5f2s-pnunw-fhfzmu-oygpqd-aostnc-bbjpvi-fcznim-8fcw89-8jgii9-hsaz4o-3krudh-dzanga-sgoaye-mm6hct-7dgfe7-krrnmc-564rfg-4nhcwe-jvxcqb-bopxrg-8mps3u-68crnm-bo3thm-dbvfkk-eaagwp-kwn32f-7ahkgy-asbnwn-7vlz96-4kvpot-pnunm-9rjv6c-crkoaq
trimming parts of the graph that aren’t needed for just running inference https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/graph_transforms/readme.md#strip_unused_nodes
folding batch normalization nodes into precalculated weights https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/graph_transforms/readme.md#fold_batch_norms
turning constant sub expressions into single nodes https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/graph_transforms/readme.md#fold_constants
rewriting calculations in eight bit https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/graph_transforms/readme.md#eight-bit-calculations
graph transform tool https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/graph_transforms/readme.md
matching operators https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/graph_transforms/readme.md#pattern-syntax
@petewarden https://github.com/petewarden
https://petewarden.com/2016/12/29/ai-and-unreliable-electronics-batteries-not-included/
ai and unreliable electronics (*batteries not included) https://petewarden.com/2016/12/29/ai-and-unreliable-electronics-batteries-not-included/
december 29, 2016 https://petewarden.com/2016/12/29/ai-and-unreliable-electronics-batteries-not-included/
pete warden https://petewarden.com/author/petewarden/
uncategorized https://petewarden.com/category/uncategorized/
leave a comment https://petewarden.com/2016/12/29/ai-and-unreliable-electronics-batteries-not-included/#respond
- https://www.flickr.com/photos/torley/8485063847/in/photolist-dvnasg-ddjzzj-qszml1-cfqc3s-dtxpth-ddebmt-ddebd8-ddebxz-crv4f9-pqdqjw-cptmqj-cqmwm1-jfvahc-bn4srz-pvpu1r-abyuup-bawnw8-nxnuzm-ejzqmv-akwaws-cdycf7-n9wwdv-bwt41f-9e3wwo-bmex5u-re1ftm-mhpzzk-da8emt-6hzisw-mhpabt-i9ycqj-86cjwp-byxmy8-9d3ut1-cnttn7-7hbhct-9qfuyj-cldp1u-8zqepc-avnxwq-nghuik-bbuzrk-a3gx1q-a3gwz3-cznanl-m8zseu-qskufm-gv5m7b-or1fuf-pmsfn8
picture by torley https://www.flickr.com/photos/torley/8485063847/in/photolist-dvnasg-ddjzzj-qszml1-cfqc3s-dtxpth-ddebmt-ddebd8-ddebxz-crv4f9-pqdqjw-cptmqj-cqmwm1-jfvahc-bn4srz-pvpu1r-abyuup-bawnw8-nxnuzm-ejzqmv-akwaws-cdycf7-n9wwdv-bwt41f-9e3wwo-bmex5u-re1ftm-mhpzzk-da8emt-6hzisw-mhpabt-i9ycqj-86cjwp-byxmy8-9d3ut1-cnttn7-7hbhct-9qfuyj-cldp1u-8zqepc-avnxwq-nghuik-bbuzrk-a3gx1q-a3gwz3-cznanl-m8zseu-qskufm-gv5m7b-or1fuf-pmsfn8
arm research summit https://developer.arm.com/research/summit
james myers http://www.arm.ecs.soton.ac.uk/people/james%20myers
smart sensors https://petewarden.com/2015/10/03/semantic-sensors/
unlikely to change soon https://www.technologyreview.com/s/534866/why-we-dont-have-battery-breakthroughs/
ble sending data just a foot draws more than 10 milliwatts https://petewarden.com/2015/10/08/smartphone-energy-consumption/
rowhammer https://googleprojectzero.blogspot.com/2015/03/exploiting-dram-rowhammer-bug-to-gain.html
onur mutlu https://people.inf.ethz.ch/omutlu/
using deep learning and microphones to predict problems with machinery http://spectrum.ieee.org/automaton/robotics/artificial-intelligence/deep-learning-ai-listens-to-machines-for-signs-of-trouble
https://petewarden.com/2016/09/27/tensorflow-for-mobile-poets/
tensorflow for mobile poets https://petewarden.com/2016/09/27/tensorflow-for-mobile-poets/
september 27, 2016 https://petewarden.com/2016/09/27/tensorflow-for-mobile-poets/
pete warden https://petewarden.com/author/petewarden/
uncategorized https://petewarden.com/category/uncategorized/
19 comments https://petewarden.com/2016/09/27/tensorflow-for-mobile-poets/#comments
tensorflow for poets https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/index.html#0
tensorflow for poets https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/index.html
https://www.youtube.com/watch?v=_bkzppniydo https://www.youtube.com/watch?v=_bkzppniydohttps://www.youtube.com/watch?v=_bkzppniydo
tensorflow/contrib/makefile/tf_op_files.txt https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/makefile/tf_op_files.txt
brew http://brew.sh/index.html
https://github.com/tensorflow/tensorflow https://github.com/tensorflow/tensorflow
https://petewarden.com/2016/05/17/what-are-gpus-anyway/
what are gpus, anyway? https://petewarden.com/2016/05/17/what-are-gpus-anyway/
may 17, 2016 https://petewarden.com/2016/05/17/what-are-gpus-anyway/
pete warden https://petewarden.com/author/petewarden/
uncategorized https://petewarden.com/category/uncategorized/
4 comments https://petewarden.com/2016/05/17/what-are-gpus-anyway/#comments
photo by mark, vicki, ellaura, and mason https://www.flickr.com/photos/brown_family_album/4607229186/in/photolist-828fhy-5b1wvj-8ytney-828fxo-b99uck-56yzsr-4fvvgx-p8cms-bgrwkm-4jtpmc-9aios-9qszhw-8257fi-9aikq-8ytmbb-9aior-8tn9aq-djv982-6evr7n-9aikl-9aiof-2bgnen-lyxs4-6v5p4g-4fvv7m-6uzyxm-4pj8mq-668zgu-4pj68y-4pe1zv-4pe762-4pjbr5-4pj6vy-4pe4ei-4pe2wi-9jvm6b-6uzyy2-4pe1kx-4pe3kh-4pj8kl-4ctqb1-4jyu2c-9aimv-9ainv-9smduw-7e1wsf-5c3rfn-3icv1d-8pb4q-4pj7dq
https://petewarden.com/2016/05/15/bossy-girls-parser-mcparseface-and-why-deep-learning-is-not-just-another-fad/
bossy girls, parser mcparseface, and why deep learning is not just another fad https://petewarden.com/2016/05/15/bossy-girls-parser-mcparseface-and-why-deep-learning-is-not-just-another-fad/
may 15, 2016 https://petewarden.com/2016/05/15/bossy-girls-parser-mcparseface-and-why-deep-learning-is-not-just-another-fad/
pete warden https://petewarden.com/author/petewarden/
uncategorized https://petewarden.com/category/uncategorized/
1 comment https://petewarden.com/2016/05/15/bossy-girls-parser-mcparseface-and-why-deep-learning-is-not-just-another-fad/#comments
fuzzy logic https://en.wikipedia.org/wiki/fuzzy_logic
corba https://en.wikipedia.org/wiki/common_object_request_broker_architecture
semantic web https://en.wikipedia.org/wiki/semantic_web
tensorflow https://tensorflow.org/
tried to build approachable tutorials https://petewarden.com/2016/02/28/tensorflow-for-poets/
release parsey mcparseface http://googleresearch.blogspot.com/2016/05/announcing-syntaxnet-worlds-most.html
a great article on why bossy is so gendered https://linguisticpulse.com/2014/03/28/no-really-bossy-is-gendered/
download parser mcparseface https://github.com/tensorflow/models/tree/master/syntaxnet
https://petewarden.com/2016/05/03/how-to-quantize-neural-networks-with-tensorflow/
how to quantize neural networks with tensorflow https://petewarden.com/2016/05/03/how-to-quantize-neural-networks-with-tensorflow/
may 3, 2016 https://petewarden.com/2016/05/03/how-to-quantize-neural-networks-with-tensorflow/
pete warden https://petewarden.com/author/petewarden/
uncategorized https://petewarden.com/category/uncategorized/
40 comments https://petewarden.com/2016/05/03/how-to-quantize-neural-networks-with-tensorflow/#comments
picture by jaebum joo https://www.flickr.com/photos/joojaebum/6843753972/in/photolist-bql2c9-dikrxp-9xlk8f-q5ew5m-abiseb-83fisy-qjtxkh-azbzo6-nh9iw6-daan4j-n8djjr-7oeswf-a8qjke-nn6vvc-flvxn8-cpebho-7oeskr-nvp3rd-tjlqs-7wofe-9j5gca-5kwjsg-8g5tpn-axvzta-9pjx85-qoiuty-5mutc2-9vdsf3-cqw4j9-3sxuph-81smc7-mwhpnt-svzdh-oyyrew-4brwyz-cypfus-q4tbsd-3sxunv-jkpvx2-4hykhk-b7zypg-9fa37c-n7vvmb-bjtykn-qydsou-81zglm-bdexsc-e1sqa8-csvhr-dnkxhf
tensorflow’s https://www.tensorflow.org/
embedded vision summit http://www.embedded-vision.com/summit
i’ve talked so much about why eight-bit is important here https://petewarden.com/2015/05/23/why-are-eight-bits-enough-for-deep-neural-networks/
song han’s code books http://arxiv.org/pdf/1510.00149.pdf
you can see the final formula in the code https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/quantization/kernels/quantization_utils.h#l32
gemmlowp https://github.com/google/gemmlowp
the kernels that implement quantized ops https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/quantization/kernels
« older posts https://petewarden.com/page/2/
rss - posts https://petewarden.com/feed/
why deep learning needs assembler hackers https://petewarden.com/2017/01/03/why-deep-learning-needs-assembler-hackers/
rewriting tensorflow graphs with the gtt https://petewarden.com/2016/12/30/rewriting-tensorflow-graphs-with-the-gtt/
ai and unreliable electronics (*batteries not included) https://petewarden.com/2016/12/29/ai-and-unreliable-electronics-batteries-not-included/
tensorflow for mobile poets https://petewarden.com/2016/09/27/tensorflow-for-mobile-poets/
what are gpus, anyway? https://petewarden.com/2016/05/17/what-are-gpus-anyway/
- https://www.facebook.com/app_scoped_user_id/1292938960787074/
swarathesh addanki https://www.facebook.com/app_scoped_user_id/1292938960787074/
tensorflow for mobile poe… https://petewarden.com/2016/09/27/tensorflow-for-mobile-poets/comment-page-1/#comment-101736
how i ended up using s3 as my… https://petewarden.com/2010/10/01/how-i-ended-up-using-s3-as-my-database/comment-page-1/#comment-101691
- https://www.facebook.com/app_scoped_user_id/10101465691723878/
t. brian jones https://www.facebook.com/app_scoped_user_id/10101465691723878/
how i ended up using s3 as my… https://petewarden.com/2010/10/01/how-i-ended-up-using-s3-as-my-database/comment-page-1/#comment-101690
how i ended up using s3 as my… https://petewarden.com/2010/10/01/how-i-ended-up-using-s3-as-my-database/comment-page-1/#comment-101686
- https://www.facebook.com/app_scoped_user_id/10101465691723878/
t. brian jones https://www.facebook.com/app_scoped_user_id/10101465691723878/
how i ended up using s3 as my… https://petewarden.com/2010/10/01/how-i-ended-up-using-s3-as-my-database/comment-page-1/#comment-101684
january 2017 https://petewarden.com/2017/01/
december 2016 https://petewarden.com/2016/12/
september 2016 https://petewarden.com/2016/09/
may 2016 https://petewarden.com/2016/05/
april 2016 https://petewarden.com/2016/04/
march 2016 https://petewarden.com/2016/03/
february 2016 https://petewarden.com/2016/02/
november 2015 https://petewarden.com/2015/11/
october 2015 https://petewarden.com/2015/10/
september 2015 https://petewarden.com/2015/09/
august 2015 https://petewarden.com/2015/08/
may 2015 https://petewarden.com/2015/05/
april 2015 https://petewarden.com/2015/04/
march 2015 https://petewarden.com/2015/03/
january 2015 https://petewarden.com/2015/01/
december 2014 https://petewarden.com/2014/12/
november 2014 https://petewarden.com/2014/11/
october 2014 https://petewarden.com/2014/10/
september 2014 https://petewarden.com/2014/09/
august 2014 https://petewarden.com/2014/08/
july 2014 https://petewarden.com/2014/07/
june 2014 https://petewarden.com/2014/06/
may 2014 https://petewarden.com/2014/05/
april 2014 https://petewarden.com/2014/04/
march 2014 https://petewarden.com/2014/03/
february 2014 https://petewarden.com/2014/02/
january 2014 https://petewarden.com/2014/01/
december 2013 https://petewarden.com/2013/12/
november 2013 https://petewarden.com/2013/11/
october 2013 https://petewarden.com/2013/10/
september 2013 https://petewarden.com/2013/09/
august 2013 https://petewarden.com/2013/08/
july 2013 https://petewarden.com/2013/07/
june 2013 https://petewarden.com/2013/06/
may 2013 https://petewarden.com/2013/05/
april 2013 https://petewarden.com/2013/04/
march 2013 https://petewarden.com/2013/03/
february 2013 https://petewarden.com/2013/02/
january 2013 https://petewarden.com/2013/01/
november 2012 https://petewarden.com/2012/11/
october 2012 https://petewarden.com/2012/10/
august 2012 https://petewarden.com/2012/08/
july 2012 https://petewarden.com/2012/07/
june 2012 https://petewarden.com/2012/06/
may 2012 https://petewarden.com/2012/05/
april 2012 https://petewarden.com/2012/04/
march 2012 https://petewarden.com/2012/03/
february 2012 https://petewarden.com/2012/02/
january 2012 https://petewarden.com/2012/01/
december 2011 https://petewarden.com/2011/12/
november 2011 https://petewarden.com/2011/11/
october 2011 https://petewarden.com/2011/10/
september 2011 https://petewarden.com/2011/09/
august 2011 https://petewarden.com/2011/08/
july 2011 https://petewarden.com/2011/07/
june 2011 https://petewarden.com/2011/06/
may 2011 https://petewarden.com/2011/05/
april 2011 https://petewarden.com/2011/04/
march 2011 https://petewarden.com/2011/03/
february 2011 https://petewarden.com/2011/02/
january 2011 https://petewarden.com/2011/01/
december 2010 https://petewarden.com/2010/12/
november 2010 https://petewarden.com/2010/11/
october 2010 https://petewarden.com/2010/10/
september 2010 https://petewarden.com/2010/09/
august 2010 https://petewarden.com/2010/08/
july 2010 https://petewarden.com/2010/07/
june 2010 https://petewarden.com/2010/06/
may 2010 https://petewarden.com/2010/05/
april 2010 https://petewarden.com/2010/04/
march 2010 https://petewarden.com/2010/03/
february 2010 https://petewarden.com/2010/02/
january 2010 https://petewarden.com/2010/01/
december 2009 https://petewarden.com/2009/12/
november 2009 https://petewarden.com/2009/11/
october 2009 https://petewarden.com/2009/10/
september 2009 https://petewarden.com/2009/09/
august 2009 https://petewarden.com/2009/08/
july 2009 https://petewarden.com/2009/07/
june 2009 https://petewarden.com/2009/06/
may 2009 https://petewarden.com/2009/05/
april 2009 https://petewarden.com/2009/04/
march 2009 https://petewarden.com/2009/03/
february 2009 https://petewarden.com/2009/02/
january 2009 https://petewarden.com/2009/01/
december 2008 https://petewarden.com/2008/12/
november 2008 https://petewarden.com/2008/11/
october 2008 https://petewarden.com/2008/10/
september 2008 https://petewarden.com/2008/09/
august 2008 https://petewarden.com/2008/08/
july 2008 https://petewarden.com/2008/07/
june 2008 https://petewarden.com/2008/06/
may 2008 https://petewarden.com/2008/05/
april 2008 https://petewarden.com/2008/04/
march 2008 https://petewarden.com/2008/03/
february 2008 https://petewarden.com/2008/02/
january 2008 https://petewarden.com/2008/01/
december 2007 https://petewarden.com/2007/12/
november 2007 https://petewarden.com/2007/11/
october 2007 https://petewarden.com/2007/10/
september 2007 https://petewarden.com/2007/09/
august 2007 https://petewarden.com/2007/08/
july 2007 https://petewarden.com/2007/07/
june 2007 https://petewarden.com/2007/06/
may 2007 https://petewarden.com/2007/05/
april 2007 https://petewarden.com/2007/04/
march 2007 https://petewarden.com/2007/03/
december 2006 https://petewarden.com/2006/12/
november 2006 https://petewarden.com/2006/11/
october 2006 https://petewarden.com/2006/10/
september 2006 https://petewarden.com/2006/09/
august 2006 https://petewarden.com/2006/08/
pete warden's blog https://petewarden.com/
home https://petewarden.com/
about https://petewarden.com/about/
blog at wordpress.com. https://wordpress.com/?ref=footer_blog
pete warden's blog https://petewarden.com/
blog at wordpress.com. https://wordpress.com/?ref=footer_blog

Zdjęcia

Zdjęcia 18
Zdjęcia bez atrybutu ALT 7
Zdjęcia bez atrybutu TITLE 18
Korzystanie Obraz ALT i TITLE atrybutu dla każdego obrazu.

Zdjęcia bez atrybutu TITLE

https://petewarden.files.wordpress.com/2017/01/screen-shot-2017-01-03-at-9-58-12-am.png?w=550
https://petewarden.files.wordpress.com/2016/12/networks.png?w=550
https://petewarden.files.wordpress.com/2016/12/screen-shot-2016-12-28-at-6-28-16-pm.png?w=550
https://petewarden.files.wordpress.com/2016/09/screen-shot-2016-09-27-at-8-56-06-am.png?w=550
https://petewarden.files.wordpress.com/2016/09/screen-shot-2016-09-26-at-12-39-14-pm.png?w=550
https://petewarden.files.wordpress.com/2016/05/screen-shot-2016-05-16-at-5-54-04-pm.png?w=550
https://petewarden.files.wordpress.com/2016/05/asawb.png?w=550
https://petewarden.files.wordpress.com/2016/05/screen-shot-2016-05-02-at-9-59-55-pm.png?w=550
https://petewarden.files.wordpress.com/2016/05/quantization0.png?w=550
https://petewarden.files.wordpress.com/2016/05/quantization1.png?w=550
https://petewarden.files.wordpress.com/2016/05/quantization2.png?w=550
https://i1.wp.com/graph.facebook.com/v2.2/1292938960787074/picture?q=type%3dlarge%26_md5%3df263612aff4aac59503ec97143a4c91c&resize=48%2c48
https://0.gravatar.com/avatar/f0c5a8aef6def7a1151a6a451b412a6b?s=48&d=identicon&r=g
https://i0.wp.com/graph.facebook.com/v2.2/10101465691723878/picture?q=type%3dlarge&resize=48%2c48
https://0.gravatar.com/avatar/02d3312c9c0dec1526942ed16e26481f?s=48&d=identicon&r=g
https://i0.wp.com/graph.facebook.com/v2.2/10101465691723878/picture?q=type%3dlarge%26_md5%3d32d30eeb0819ac246ac3177ac8582fd7&resize=48%2c48
https://sb.scorecardresearch.com/p?c1=2&c2=7518284&c3=&c4=&c5=&c6=&c15=&cv=2.0&cj=1
https://pixel.wp.com/b.gif?v=noscript

Zdjęcia bez atrybutu ALT

https://i1.wp.com/graph.facebook.com/v2.2/1292938960787074/picture?q=type%3dlarge%26_md5%3df263612aff4aac59503ec97143a4c91c&resize=48%2c48
https://0.gravatar.com/avatar/f0c5a8aef6def7a1151a6a451b412a6b?s=48&d=identicon&r=g
https://i0.wp.com/graph.facebook.com/v2.2/10101465691723878/picture?q=type%3dlarge&resize=48%2c48
https://0.gravatar.com/avatar/02d3312c9c0dec1526942ed16e26481f?s=48&d=identicon&r=g
https://i0.wp.com/graph.facebook.com/v2.2/10101465691723878/picture?q=type%3dlarge%26_md5%3d32d30eeb0819ac246ac3177ac8582fd7&resize=48%2c48
https://sb.scorecardresearch.com/p?c1=2&c2=7518284&c3=&c4=&c5=&c6=&c15=&cv=2.0&cj=1
https://pixel.wp.com/b.gif?v=noscript

Ranking:


Alexa Traffic
Daily Global Rank Trend
Daily Reach (Percent)









Majestic SEO











Text on page:

search pete warden's blog ever tried. ever failed. no matter. try again. fail again. fail better. menu skip to content homeabout why deep learning needs assembler hackers january 3, 2017 by pete warden in uncategorized 2 comments photo by daniel lopez take a look at this function: for (j = 0; j < n; j++) { for (i = 0; i < m; i++) { float total(0); for (l = 0; l < k; l++) { const size_t a_index = ((i * a_i_stride) + (l * a_l_stride)); const float a_value = a[a_index]; const size_t b_index = ((j * b_j_stride) + (l * b_l_stride)); const float b_value = b[b_index]; total += (a_value * b_value); } const size_t c_index = ((i * c_i_stride) + (j * c_j_stride)); c[c_index] = total; } } for something so simple, it turns out it’s amazingly hard for compilers to speed up without a lot of human intervention. this is the heart of the gemm matrix multiply function, which powers deep learning, and every fast implementation i know has come from old-school assembler jockeys hand-tweaking instructions! when i first started looking at the engineering side of neural networks, i assumed that i’d be following the path i’d taken on the rest of my career and getting most of my performance wins from improving the algorithms, writing clean code, and generally getting out of the way so the compiler could do its job of optimizing it. instead i spend a large amount of my time worrying about instruction dependencies and all the other hardware details that we were supposed to be able to escape in the 21st century. why is this? matrix multiplies are a hard case for modern compilers to handle. the inputs used for neural networks mean that one function call may require millions of operations to complete, which magnifies the latency impact of any small changes to the code. the access patterns are entirely predictable for a long period, but not purely linear, which doesn’t fit well with cache line algorithms as written in the naive way above. there are lots of choices about how to accumulate intermediate results and reuse memory reads, which will have different outcomes depending on the sizes of the matrices involved. all this means that an endangered species, hand-coding assembler experts, write all of the best implementations. gotoblas (which evolved into openblas) showed how much speed could be gained on intel cpus. eigen has had a lot of work put into it to run well on both x86 and arm with float, and gemmlowp is optimized for eight-bit on arm. even if you’re running on a gpu, scott gray (formerly at nervana, now at openai) has shown how much faster hand-coded solutions can be. this is important because it means that there’s a lot of work involved in getting good performance from new platforms, and there’s often a big gap between existing highly-optimized solutions and those ported from other architectures. this is visible for example with gemmlowp on x86, where the hand optimization is still a work in progress and so the speed still lags behind float alternatives right now. it’s also exciting, because the real-world performance of even most optimized libraries lags behind the theoretical limits of the hardware, so there are still opportunities to squeeze more speed out of them with some clever hacking. there are also exciting developments in fundamentally different approaches to the problem like the winograd algorithm. the good news is that if you’re an old-school assembler hacker there’s still an important place for you in the brave new world of deep learning, so i hope we can pull you in! rewriting tensorflow graphs with the gtt december 30, 2016 by pete warden in uncategorized 1 comment photo by stephen d. strowes one of the most interesting things about neural networks for me is that they’re programs you can do meaningful computation on. the most obvious example of that is automatic differentiation, but even after you’ve trained a model there are lots of other interesting transformations you can apply. these can be as simple as trimming parts of the graph that aren’t needed for just running inference, all the way to folding batch normalization nodes into precalculated weights, turning constant sub expressions into single nodes, or rewriting calculations in eight bit. many of these operations have been available as piecemeal python scripts inside the tensorflow codebase, but i’ve spent some time rewriting them into what i hope is a much cleaner and easier to extend c++ graph transform tool. as well as a set of predefined operations based on what we commonly need ourselves, i’ve tried to create a simple set of matching operators and other utilities to encourage contributors to create and share their own rewriting passes. i think there’s a lot of potential for computing on compute graphs, so i’m excited to hear what you can come up with! do cc me (@petewarden) on github too with any issues you encounter. ai and unreliable electronics (*batteries not included) december 29, 2016 by pete warden in uncategorized leave a comment picture by torley a few months ago i returned to my home town of cambridge to attend the first arm research summit. what was special about this conference was that it focused on introducing external researchers to each other, rather than pushing arm’s own agenda. they had invited a broad range of people they worked with, from academic researchers to driver engineers, and all we had in common was that we spent a lot of time working on the arm platform. this turned out fantastically for me at least, because it meant i had the chance to learn from experts in fields i knew nothing about. as such, it left my mind spinning a little, and so this post is a bit unusual! i’m trying to clarify gut feelings about the future with some actual evidence, so please bear with me as i work through my reasoning. one of my favorite talks was on energy harvesting by james myers. this table leapt out at me (apologies to james if i copied any of his figures incorrectly): energy harvesting rules of thumb: human vibration – 4µw/cm2 industrial vibration – 100µw/cm2 human temperature difference – 25µw/cm2 industrial temperature difference – 1 to 10 mw/cm2 indoor light – 10µw/cm2 outdoor light – 10mw/cm2 gsm rf – 0.1µw/cm2 wifi rf – 0.001µw/cm2 what this means in plain english is that you can expect to harvest four micro-watts (millionths of a watt or µw) for every square centimeter of a device relying on human vibration. a solar panel in sunlight could gather ten milliwatts (thousandths of a watt or mw) for every square centimeter. if you think about an old incandescent bulb, that burns forty watts, and even a modern cell phone probably uses a watt or so when it’s being actively used, so the power you can get from energy harvesting is clearly not enough for most applications. my previous post on smartphone energy consumption shows that even running an accelerometer takes over one twenty milliwatts, so clearly it’s hard to build devices that rely on these levels of power. why does that matter? i’m convinced that smart sensors are going to be massively important in the future, and that vision can’t work if they require batteries. i believe that we’ll be throwing tiny cheap devices up in the air like confetti to scatter around all the environments we care about, and they’ll result in a world we can intelligently interact with in unprecedented ways. imagine knowing exactly where pests are in a crop field so that a robot can manually remove them rather than indiscriminately spraying pesticides, or having stickers on every piece of machinery in a factory that listen to the sounds and report when something needs maintenance. these sort of applications will only work if the devices can last for years unattended. we can already build tiny chips that do these sort of things, but we can’t build batteries that can power them for anywhere near that long, and that’s unlikely to change soon. can the cloud come to our rescue? i’m a software guy, but everything i see in the hardware world shows that transmitting signals continuously takes a lot of energy. even with a protocol like ble sending data just a foot draws more than 10 milliwatts. there seems to be an enduring relationship between power usage and the distance you’re sending the data, with register access cheaper than sram, which is far cheaper than dram, which beats radio transmission. that’s why i believe our only hope for long-lived smart sensors is driving down the energy used by local compute to the point at which harvesting gives enough power to run useful applications. the good news is that existing hardware like dsps can perform a multiply-add for just low double-digit picojoules, and can access local sram to avoid the costs of dram. if you do the back of the envelope calculations, a small image network like inception v1 takes about 1.5 billion multiply-adds, so 20 picojoules * 1.5 billion gives a rough energy cost of 30 millijoules per prediction (or 30 milliwatts at 1 prediction per second). this is already an order of magnitude less energy than the equivalent work done on a general-purpose cpu, so it’s a good proof that it’s possible to dramatically reduce computational costs, even though it’s still too high for energy harvesting to work. that’s where another recurrent theme of the arm research conference started to seem very relevant. i didn’t realize how much of a problem keeping results reliable is as the components continue to shrink. increasingly large parts of the design are devoted to avoiding problems like rowhammer, where accesses to adjacent dram rows can flip bits, as onur mutlu explained. it’s not just memory that faces problems like these, cpus also need to be over-engineered to avoid errors introduced by current leakage and weirder quantum-level effects. i was actually very excited when i learned this, because one of the great properties of neural networks is that they’re very resilient in the face of random noise. if we’re going to be leaving an increasing amount of performance on the table to preserve absolute reliability for traditional computing applications, that opens the door for specialized hardware without those guarantees that will be able to offer increasingly better energy consumption. again, i’m a software engineer so i don’t know exactly what kinds of designs are possible, but i’m hoping that by relaxing constraints on the hardware the chip creators will be able to come up with order-of-magnitude improvements, based on what i heard at the conference. if we can drive computational energy costs down into the femtojoules per multiply-add, then the world of ambient sensors will explode. as i was writing, i ran across a new startup that’s using deep learning and microphones to predict problems with machinery, but just imagine when those, along with seismic, fire, and all sorts of other sensors are scattered everywhere, too simple to record data but smart enough to alert people when special conditions occur. i can’t wait to see how this process unfolds, but i’m betting unreliable electronics will be a key factor in making it possible. tensorflow for mobile poets september 27, 2016 by pete warden in uncategorized 19 comments in tensorflow for poets, i showed how you could train a neural network to recognize objects using your own custom images. the next step is getting that model into users’ hands, so in this tutorial i’ll show you what you need to do to run it in your own ios application. i’m assuming you’ve already completed tensorflow for poets, and so you should have docker installed and a tf_files folder in your home directory that contains a retrained_graph.pb file containing your model. if you don’t, you’ll need to work through that example to build your own network. you’ll find the screencast to accompany this tutorial above, or at https://www.youtube.com/watch?v=_bkzppniydo, which should help clarify the steps i’ll be walking you through. as a first step, open the docker quickstart terminal and start a new docker container using the latest docker image. this tutorial relies on some newer features of tensorflow, so the v0.8 image used for the original tf for poets won’t work. docker run -it -p 8888:8888 -v $home/tf_files:/tf_files \ tensorflow/tensorflow:nightly-devel you should find yourself in a new shell where the prompt begins with root@ and ends with a ‘#’, indicating you’re running inside the docker image. to make sure things are setup correctly, run this `ls -lah /tf_files/` and make sure that the retrained_graph.pb file appears. next, we’re going to make sure that the model is producing sane results at the start. here i’m using the default flower images to test, but if you have trained on custom categories substitute the image file with one of your own. the compilation process may take a few minutes too, so make sure that you have updated the virtualbox settings to take advantage of your machine’s memory and processors if things are running too slowly. cd /tensorflow/ bazel build tensorflow/examples/label_image:label_image bazel-bin/tensorflow/examples/label_image/label_image \ --output_layer=final_result \ --labels=/tf_files/retrained_labels.txt \ --image=/tf_files/flower_photos/daisy/5547758_eea9edfd54_n.jpg \ --graph=/tf_files/retrained_graph.pb this should hopefully produce a sensible top label for your example, in the case of flowers with daisy at the top. we’ll be using this command to make sure we’re still getting sensible results as we do further processing on the model file to prepare it for use in a mobile app. mobile devices have limited amounts of memory, and apps need to be downloaded, so by default the ios version of tensorflow only includes support for operations that are common in inference and don’t have large external dependencies. you can see the list of supported ops in the tensorflow/contrib/makefile/tf_op_files.txt file. one of the operations that isn’t supported is decodejpeg, because the current implementation relies on libjpeg which is painful to support on ios and would increase the binary footprint. while we could write a new implementation that uses ios’s native image libraries, for most mobile applications we don’t need to decode jpegs because we’re dealing directly with camera image buffers. unfortunately the inception model we based our retraining on includes a decodejpeg operation. we normally bypass this by directly feeding the mul node that occurs after the decode, but on platforms that don’t support the operation you’ll see an error when the graph is loaded, even if the op is never called. to avoid this, the optimize_for_inference script removes all nodes that aren’t needed for a given set of input and output nodes. the script also does a few other optimizations that help speed, such as merging explicit batch normalization ops into the convolutional weights to reduce the number of calculations. here’s how you run it: bazel build tensorflow/python/tools:optimize_for_inference bazel-bin/tensorflow/python/tools/optimize_for_inference \ --input=/tf_files/retrained_graph.pb \ --output=/tf_files/optimized_graph.pb \ --input_names=mul \ --output_names=final_result this creates a new file at /tf_files/optimized_graph.pb. to check that it hasn’t altered the output of the network, run label_image again on the updated model: bazel-bin/tensorflow/examples/label_image/label_image \ --output_layer=final_result \ --labels=/tf_files/retrained_labels.txt \ --image=/tf_files/flower_photos/daisy/5547758_eea9edfd54_n.jpg \ --graph=/tf_files/optimized_graph.pb you should see very similar results to the first time you ran label_image, since the underlying mathematical results should be preserved through the changes made to streamline it. the retrained model is still 87mb in size at this point, and that guarantees a large download size for any app that includes it. there are lots of ways to reduce download sizes, and i’ll cover those in more detail in other documentation, but there’s one very simple approach that’s a big help without adding much complexity. because apple distributes apps in .ipa packages, all of the assets are compressed using zip. usually models don’t compress well because the weights are all slightly different floating point values. you can achieve much better compression just by rounding all the weights within a particular constant to 256 levels though, while still leaving them in floating-point format. this gives a lot more repetition for the compression algorithm to take advantage of, but doesn’t require any new operators and only reduces the precision by a small amount (typically less than a 1% drop in precision). here’s how you call the quantize_graph script to apply these changes: bazel build tensorflow/tools/quantization:quantize_graph bazel-bin/tensorflow/tools/quantization/quantize_graph \ --input=/tf_files/optimized_graph.pb \ --output=/tf_files/rounded_graph.pb \ --output_node_names=final_result \ --mode=weights_rounded if you look on disk, the raw size of the rounded_graph.pb file is the same at 87mb, but if you right-click on it in the finder and choose “compress”, you should see it results in a file that’s only about 24mb or so. that reflects what size increase you’d actually see in a compressed .ipa on ios, or an .apk on android. to verify that the model is still working, run label_image again: bazel-bin/tensorflow/examples/label_image/label_image \ --output_layer=final_result \ --labels=/tf_files/retrained_labels.txt \ --image=/tf_files/flower_photos/daisy/5547758_eea9edfd54_n.jpg \ --graph=/tf_files/rounded_graph.pb this time, i would expect that the results may have slightly more noticeable changes thanks to the effects of the quantization, but the overall size and order of the labels should still be the same. the final processing step we need to run is memory mapping. because the buffers holding the model weight values are 87mb in size, the memory needed to load these into the app can put a lot of pressure on ram in ios even before the model is run. this can lead to stability problems as the os can unpredictably kill apps that use too much memory. fortunately these buffers are read-only, so it’s possible to map them into memory in a way that the os can easily discard them behind the scenes when there’s memory pressure, avoiding the possibility of those crashes. to support this, we need to rearrange the model so that the weights are held in sections that can be easily loaded separately from the main graphdef, though they’re all still in one file. here is the command to do that: bazel build tensorflow/contrib/util:convert_graphdef_memmapped_format bazel-bin/tensorflow/contrib/util/convert_graphdef_memmapped_format \ --in_graph=/tf_files/rounded_graph.pb \ --out_graph=/tf_files/mmapped_graph.pb one thing to watch out for is that the file on disk is no longer a plain graphdef protobuf, so if you try loading it into a program like label_image that expects one, you’ll see errors. you need to load the model file slightly differently, which we’ll show in the ios example below. so far we’ve been running all these scripts in docker, since for demonstration purposes it’s a lot easier to run scripts there, because installing the python dependencies is a lot more straightforward on ubuntu than os x. now we’re going to switch to a native terminal so that we can compile an ios app that uses the model you’ve trained. you’ll need xcode 7.3 or later with the command line tools installed to build the app, which you can download from apple. you’ll also need brew, and automake to run the build script. to install it using brew, run this command: brew install automake once you have those, open up a new terminal window, download the tensorflow source (using `git clone https://github.com/tensorflow/tensorflow`) to a folder on your machine (replacing `~/projects/tensorflow` below with that location) and run the following commands to build the framework and copy your model files over: cd ~/projects/tensorflow tensorflow/contrib/makefile/build_all_ios.sh cp ~/tf_files/mmapped_graph.pb \ tensorflow/contrib/ios_examples/camera/data/ cp ~/tf_files/retrained_labels.txt \ tensorflow/contrib/ios_examples/camera/data/ open tensorflow/contrib/ios_examples/camera/camera_example.xcodeproj check the terminal to make sure that your compilation succeeded without errors, and then you should find the camera example project opened in xcode. this app shows a live feed of your camera, together with the labels for any objects it has recognized, so it’s a good demo project for testing out a new model. the terminal commands above should have copied the model files you need into the apps data folder, but you still need to let xcode know that it should include them in the app. to remove the default model files, go to the left-hand project navigator pane in xcode, select imagenet_comp_graph_label_strings.txt and tensorflow_inception_graph.pb in the data folder, and delete them, choosing “move to trash” when prompted. next, open a finder window containing the new model files, for example from the terminal like this: open tensorflow/contrib/ios_examples/camera/data drag `mmapped_graph.pb` and `retrained_labels.txt` from that finder window, into the data folder in the project navigator. make sure the “add to targets” is enabled for cameraexample in the dialog’s checkbox. this should let xcode know that it should include the files when you build the app, so if you see later errors about missing files, double-check these steps. we’ve got the files in the app, but we also need to update some other information. we need to update the name of the files to load, but also some other metadata about the size of the input images, the node names, and how to scale the pixel values numerically before feeding them in. to make those changes open cameraexampleviewcontroller.mm in xcode, and look for the model settings near the top of the file. replace them with the following block: // if you have your own model, modify this to the file name, and make sure // you've added the file to your app resources too. static nsstring* model_file_name = @"mmapped_graph"; static nsstring* model_file_type = @"pb"; // this controls whether we'll be loading a plain graphdef proto, or a // file created by the convert_graphdef_memmapped_format utility that wraps a // graphdef and parameter file that can be mapped into memory from file to // reduce overall memory usage. const bool model_uses_memory_mapping = true; // if you have your own model, point this to the labels file. static nsstring* labels_file_name = @"retrained_labels"; static nsstring* labels_file_type = @"txt"; // these dimensions need to match those the model was trained with. const int wanted_input_width = 299; const int wanted_input_height = 299; const int wanted_input_channels = 3; const float input_mean = 128.0f; const float input_std = 128.0f; const std::string input_layer_name = "mul"; const std::string output_layer_name = "final_result"; finally, plug in and select your ios device (this won’t run on the simulator because it needs a camera) and hit command+r to build and run the modified example. if everything has worked, you should see the app start, display the live camera feed, and begin showing labels from your training categories. to test it out, find an example of the kind of objects you’re trying to recognize, point the camera at it and see if it is able to give it the right label. if you don’t have any physical objects handy, try doing an image search on the web, and then point it at your computer display. congratulations, you’ve managed to train your own model and run it on a phone! as next steps, a lot of the same transformations can be used on android or for the raspberry pi, and for all sorts of other models available in tensorflow for everything from natural language processing to speech synthesis. i’m excited to see new apps emerge using the incredible capabilities of deep learning on device, so i can’t wait to see what you come up with! what are gpus, anyway? may 17, 2016 by pete warden in uncategorized 4 comments photo by mark, vicki, ellaura, and mason a good friend of mine just asked me “what are gpus?”. it came up because she’s a great digital artist who’s getting into vr, and the general advice she gets is “buy a pc with a video card that costs more than $350”. what makes that one component cost so much, why do we need them, and what do they do? to help answer that, i thought i’d try to give an overview aimed at non-engineers. graphics processing units were created to draw images, text, and geometry onto the screen. this means they’re designed very differently than the cpus that run applications. cpus need to be good at following very complex recipes of instructions so they can deal with all sorts of user inputs and switch between tasks rapidly. gpus are much more specialized. they only need to do a limited range of things, but each job they’re given can involve touching millions of memory locations in one go. to see the difference between the kind of programs that run on cpus and gpus, think about a cpu reading from a text box. the cpu will sit waiting for you to press a key, and as soon as you do it might need to look in a list to figure out if there’s an autocomplete entry, check the spelling, or move to the next box if you hit return. this is a complex set of instructions with a lot of decisions involved. by contrast, a typical gpu task would be drawing an image on-screen. a picture that’s 1,000 pixels wide and high has a million elements, and drawing it means moving all of those into the screen buffer. that’s a lot more work than just waiting for a key press, but it also involves a lot fewer decisions since you just need to move a large number of pixels from one place to another. the differences in the kinds of tasks that cpus and gpus need to do means that they’re designed in very different ways. cpus are very flexible and able to do a lot of complicated tasks involving decision-making. gpus are less adaptable but can operate on large numbers of elements at once, so they can perform many operations much faster. the way gpus achieve this flexibility is that they break their tasks into much smaller components that can be shared across a large set of many small processors running at once. because the jobs they’re being asked to do are simpler than cpus, it’s easy to automatically split them up like this. as an example you can imagine having hundreds of little processors, each of which is given a tile of an image to draw. by having them work in parallel, the whole picture can be drawn much faster. the key advantage of gpus is this scalability. they can’t do every job, but for the ones they can tackle, you essentially can just pack in more processors on the board to get faster performance. this is why video cards that are capable of handling the high resolutions and framerates you need for vr are more expensive, they have more (and individually faster) processors to handle those larger sizes as you go up in price. this scalability is harder to do on cpus because it’s much trickier to break up the logic needed to run applications into smaller jobs. this is a painfully simplified explanation i know, but i’m hoping to get across what makes gpus fundamentally different from cpus. if you have a task that involves a lot of computation but few decision points, then gpus are set up to parallelize that job automatically. this is clearest in graphics, but also comes up as part of deep learning, where there are similar heavy-lifting requirements across millions of artificial neurons. as moore’s law continues to fade, leaving cpu speeds to languish, these sort of parallel approaches will become more and more attractive. bossy girls, parser mcparseface, and why deep learning is not just another fad may 15, 2016 by pete warden in uncategorized 1 comment when i talk to people outside of google and the subject turns to neural networks i often encounter a lot of skepticism. anybody who’s been alive over the past two decades has seen a lot of technological fads appear in an explosion of hype and fade away without making much of a lasting impact. remember fuzzy logic, corba, or the semantic web? deep learning is different, and i believe this fervently because is that i’ve seen the approach deliver record-beating results in practical applications across an amazing variety of different problems. that’s why tensorflow is so important to me personally, because it’s a great platform to share some very down-to-earth tools that demonstrate convincingly how powerful the technique can be. that’s a big reason i’ve tried to build approachable tutorials for common needs like image recognition, so everyone has a chance to see it working for themselves. it’s also why i was over the moon to see another google research team release parsey mcparseface! this is a state of the art sentence parser that’s built using tensorflow. that might sound a bit esoteric, but parsing is one of the fundamental problems that computers need to tackle to understand written language. with this available, i’m starting to dream up all sorts of interesting applications i wouldn’t have been able to think about before. for instance i’d love to know what verbs and adjectives are most commonly applied to men and women in all sorts of different contexts. to illustrate my point, here’s a paragraph from a great article on why bossy is so gendered: finally, the most flexible approach is one that is much more labor intensive. it involves gathering a random sample of instances of bossy and then simply reading through all of them with our own eyes to determine who is being labelled bossy. this is the approach i took in my recent blog post. because of the amount of time involved, i looked at far fewer examples than any of the approaches i’ve discussed, but i also was able to classify instances that the above approaches would have missed. the graph below illustrates what i found, namely that bossy was applied to women and girls three times more frequently than it was to men and boys. … you might think to yourself, “but there’s only 101 examples! that’s so few!” this kind of attribution of an adjective to a subject is something an accurate parser can do automatically. rather than laboriously going through just a hundred examples, it’s easy to set up the parser mcparseface and run through millions of sentences. the parser isn’t perfect, but at 94% accuracy on one metric, it’s pretty close to humans who get 96%. even better, having the computer do the heavy lifting means that it’s possible to explore many other relationships in the data, to uncover all sorts of unknown statistical relationships in the language we use. there’s bound to be other words that are skewed in similar or opposite ways to ‘bossy’, and i’d love to know what they are! that’s just one example though. the reason i’m so excited about deep learning is that i can’t even imagine all the applications that have now become possible. download parser mcparseface yourself and give it a try on a problem you care about, i’d love to see what you come up with! how to quantize neural networks with tensorflow may 3, 2016 by pete warden in uncategorized 40 comments picture by jaebum joo i’m pleased to say that we’ve been able to release a first version of tensorflow’s quantized eight bit support. i was pushing hard to get it in before the embedded vision summit, because it’s especially important for low-power and mobile devices, so it’s exciting to get it out there. all this documentation will be appearing on the main tensorflow site also, but since i’ve talked so much about why eight-bit is important here, i wanted to give an overview of what we’ve released in this post too. when modern neural networks were being developed, the biggest challenge was getting them to work at all! that meant that accuracy and speed during training were the top priorities. using floating point arithmetic was the easiest way to preserve accuracy, and gpus were well-equipped to accelerate those calculations, so it’s natural that not much attention was paid to other numerical formats. these days, we actually have a lot of models being being deployed in commercial applications. the computation demands of training grow with the number of researchers, but the cycles needed for inference expand in proportion to users. that means pure inference efficiency has become a burning issue for a lot of teams. that is where quantization comes in. it’s an umbrella term that covers a lot of different techniques to store numbers and perform calculations on them in more compact formats than 32-bit floating point. i am going to focus on eight-bit fixed point, for reasons i’ll go into more detail on later. why does quantization work? training neural networks is done by applying many tiny nudges to the weights, and these small increments typically need floating point precision to work (though there are research efforts to use quantized representations here too). taking a pre-trained model and running inference is very different. one of the magical qualities of deep networks is that they tend to cope very well with high levels of noise in their inputs. if you think about recognizing an object in a photo you’ve just taken, the network has to ignore all the ccd noise, lighting changes, and other non-essential differences between it and the training examples it’s seen before, and focus on the important similarities instead. this ability means that they seem to treat low-precision calculations as just another source of noise, and still produce accurate results even with numerical formats that hold less information. why quantize? neural network models can take up a lot of space on disk, with the original alexnet being over 200 mb in float format for example. almost all of that size is taken up with the weights for the neural connections, since there are often many millions of these in a single model. because they’re all slightly different floating point numbers, simple compression formats like zip don’t compress them well. they are arranged in large layers though, and within each layer the weights tend to be normally distributed within a certain range, for example -3.0 to 6.0. the simplest motivation for quantization is to shrink file sizes by storing the min and max for each layer, and then compressing each float value to an eight-bit integer representing the closest real number in a linear set of 256 within the range. for example with the -3.0 to 6.0 range, a 0 byte would represent -3.0, a 255 would stand for 6.0, and 128 would represent about 1.5. i’ll go into the exact calculations later, since there’s some subtleties, but this means you can get the benefit of a file on disk that’s shrunk by 75%, and then convert back to float after loading so that your existing floating-point code can work without any changes. another reason to quantize is to reduce the computational resources you need to do the inference calculations, by running them entirely with eight-bit inputs and outputs. this is a lot more difficult since it requires changes everywhere you do calculations, but offers a lot of potential rewards. fetching eight-bit values only requires 25% of the memory bandwidth of floats, so you’ll make much better use of caches and avoid bottlenecking on ram access. you can also typically use simd operations that do many more operations per clock cycle. in some case you’ll have a dsp chip available that can accelerate eight-bit calculations too, which can offer a lot of advantages. moving calculations over to eight bit will help you run your models faster, and use less power (which is especially important on mobile devices). it also opens the door to a lot of embedded systems that can’t run floating point code efficiently, so it can enable a lot of applications in the iot world. why not train in lower precision directly? there have been some experiments training at lower bit depths, but the results seem to indicate that you need higher than eight bit to handle the back propagation and gradients. that makes implementing the training more complicated, and so starting with inference made sense. we also already have a lot of float models already that we use and know well, so being able to convert them directly is very convenient. how can you quantize your models? tensorflow has production-grade support for eight-bit calculations built it. it also has a process for converting many models trained in floating-point over to equivalent graphs using quantized calculations for inference. for example, here’s how you can translate the latest googlenet model into a version that uses eight-bit computations: curl http://download.tensorflow.org/models/image/imagenet/inception-2015-12-05.tgz -o /tmp/inceptionv3.tgz tar xzf /tmp/inceptionv3.tgz -c /tmp/ bazel build tensorflow/contrib/quantization/tools:quantize_graph bazel-bin/tensorflow/contrib/quantization/tools/quantize_graph \ --input=/tmp/classify_image_graph_def.pb \ --output_node_names="softmax" --output=/tmp/quantized_graph.pb \ --mode=eightbit this will produce a new model that runs the same operations as the original, but with eight bit calculations internally, and all weights quantized as well. if you look at the file size, you’ll see it’s about a quarter of the original (23mb versus 91mb). you can still run this model using exactly the same inputs and outputs though, and you should get equivalent results. here’s an example: bazel build tensorflow/examples/label_image:label_image bazel-bin/tensorflow/examples/label_image/label_image \ --input_graph=/tmp/quantized_graph.pb \ --input_width=299 \ --input_height=299 \ --mean_value=128 \ --std_value=128 \ --input_layer_name="mul:0" \ --output_layer_name="softmax:0" you’ll see that this runs the newly-quantized graph, and outputs a very similar answer to the original. you can run the same process on your own models saved out as graphdefs, with the input and output names adapted to those your network requires. i recommend that you run them through the freeze_graph script first, to convert checkpoints into constants stored in the file. how does the quantization process work? we’ve implemented quantization by writing equivalent eight-bit versions of operations that are commonly used during inference. these include convolution, matrix multiplication, activation functions, pooling operations and concatenation. the conversion script first replaces all the individual ops it knows about with quantized equivalents. these are small sub-graphs that have conversion functions before and after to move the data between float and eight-bit. below is an example of what they look like. first here’s the original relu operation, with float inputs and outputs: then, this is the equivalent converted subgraph, still with float inputs and outputs, but with internal conversions so the calculations are done in eight bit. the min and max operations actually look at the values in the input float tensor, and then feeds them into the dequantize operation that converts the tensor into eight-bits. there’s more details on how the quantized representation works later on. once the individual operations have been converted, the next stage is to remove unnecessary conversions to and from float. if there are consecutive sequences of operations that all have float equivalents, then there will be a lot of adjacent dequantize/quantize ops. this stage spots that pattern, recognizes that they cancel each other out, and removes them, like this: applied on a large scale to models where all of the operations have quantized equivalents, this gives a graph where all of the tensor calculations are done in eight bit, without having to convert to float. what representation is used for quantized tensors? we approach converting floating-point arrays of numbers into eight-bit representations as a compression problem. we know that the weights and activation tensors in trained neural network models tend to have values that are distributed across comparatively small ranges (for example you might have -15 to +15 for weights, -500 to 1000 for activations on an image model, though the exact numbers will vary). we also know from experiment that neural nets tend to be very robust in the face of noise, and so the noise-like error produced by quantizing down to a small set of values will not hurt the precision of the overall results very much. we also want to pick a representation that’s easy to perform calculations on, especially the large matrix multiplications that form the bulk of the work that’s needed to run a model. these led us to pick a representation that has two floats to store the overall minimum and maximum values that are represented by the lowest and highest quantized value. each entry in the quantized array represents a float value in that range, distributed linearly between the minimum and maximum. for example, if we have minimum = -10.0, and maximum = 30.0f, and an eight-bit array, here’s what the quantized values represent: quantized | float ----------+----- 0 | -10.0 255 | 30.0 128 | 10.0 the advantages of this format are that it can represent arbitrary magnitudes of ranges, they don’t have to be symmetrical, it can represent signed and unsigned values, and the linear spread makes doing multiplications straightforward. there are alternatives like song han’s code books that can use lower bit depths by non-linearly distributing the float values across the representation, but these tend to be more expensive to calculate on. the advantage of having a strong and clear definition of the quantized format is that it’s always possible to convert back and forth from float for operations that aren’t quantization-ready, or to inspect the tensors for debugging purposes. one implementation detail in tensorflow that we’re hoping to improve in the future is that the minimum and maximum float values need to be passed as separate tensors to the one holding the quantized values, so graphs can get a bit dense! how do we determine ranges? the nice thing about the minimum and maximum ranges is that they can often be pre-calculated. weight parameters are constants known at load time, so their ranges can also be stored as constants. we often know the ranges for inputs (for examples images are usually rgb values in the range 0.0 to 255.0), and many activation functions have known ranges too. this can avoid having to analyze the outputs of an operation to determine the range, which we need to do for math ops like convolution or matrix multiplication which produce 32-bit accumulated results from 8-bit inputs. if you’re doing any kind of arithmetic on 8-bit inputs, you’ll naturally start to accumulate results that have more than 8 bits of precision. if you add two 8 bit values, the result needs 9 bits. if you multiply two 8 bit numbers, you get 16 bits in the output. if you total up a series of 8-bit multiplications, like we do for matrix multiplication, the results grow beyond 16 bits, with the accumulator typically needing at least 20 to 25 bits, depending on how long the dot products involved are. this can be an issue for our quantization approach, since we need to take an output that’s much wider than 8 bits and shrink it down to feed into the next operation. one way to do it for matrix multiplies would be to calculate the largest and smallest possible output values, assuming all of the input values were at extremes. this is safe, since we know mathematically that no results can fall outside this range, but in practice most weights and activation values are much more evenly distributed. this means that the actual range of values we see is much smaller than the theoretical one, so if we used the larger bounds we’d be wasting a lot of our 8 bits on numbers that never appeared. instead, we use the quantizedownandshrinkrange operator to take a 32-bit accumulated tensor, analyze it to understand the actual ranges used, and rescale so that the 8-bit output tensor uses that range effectively. there are strategies that involve observing the actual minimums and maximums encountered with large sets of training data, and hard-coding those to avoid analyzing the buffer for ranges every time, but we don’t currently include that optimization. how is the rounding done? one of the hardest and most subtle problems we hit during quantization was the accumulation of biases. as i mentioned above, neural networks are very resilient to noise, but unless you’re very careful with rounding it’s easy to introduce biases in a single direction that build up during computation and wreck the final accuracy. you can see the final formula in the code, but the important part was that we needed to subtract the rounded version of the minimum from the rounded version of the float input value, rather than subtracting float minimum from the input and then rounding. what’s next? we’ve found that we can get extremely good performance on mobile and embedded devices by using eight-bit arithmetic rather than floating-point. you can see the framework we use to optimize matrix multiplications at gemmlowp. we still need to apply all the lessons we’ve learned to the tensorflow ops to get maximum performance on mobile, but we’re actively working on that. right now, this quantized implementation is a reasonably fast and accurate reference implementation that we’re hoping will enable wider support for our eight-bit models on a wider variety of devices. if you’re interested, i highly recommend digging through the quantization code in tensorflow, especially looking at the kernels that implement quantized ops. these all include reference implementations that we’re hoping will help portability to new hardware devices. we also hope that this demonstration will encourage the community to explore what’s possible with low-precision neural networks. thanks to everyone who helped put the quantization support together, it’s been great getting this out there! post navigation « older posts follow @petewarden on twittermy tweetsrss - posts recent posts why deep learning needs assembler hackers rewriting tensorflow graphs with the gtt ai and unreliable electronics (*batteries not included) tensorflow for mobile poets what are gpus, anyway? recent comments swarathesh addanki on tensorflow for mobile poe… matt on how i ended up using s3 as my… t. brian jones on how i ended up using s3 as my… matt on how i ended up using s3 as my… t. brian jones on how i ended up using s3 as my… archives january 2017 december 2016 september 2016 may 2016 april 2016 march 2016 february 2016 november 2015 october 2015 september 2015 august 2015 may 2015 april 2015 march 2015 january 2015 december 2014 november 2014 october 2014 september 2014 august 2014 july 2014 june 2014 may 2014 april 2014 march 2014 february 2014 january 2014 december 2013 november 2013 october 2013 september 2013 august 2013 july 2013 june 2013 may 2013 april 2013 march 2013 february 2013 january 2013 november 2012 october 2012 august 2012 july 2012 june 2012 may 2012 april 2012 march 2012 february 2012 january 2012 december 2011 november 2011 october 2011 september 2011 august 2011 july 2011 june 2011 may 2011 april 2011 march 2011 february 2011 january 2011 december 2010 november 2010 october 2010 september 2010 august 2010 july 2010 june 2010 may 2010 april 2010 march 2010 february 2010 january 2010 december 2009 november 2009 october 2009 september 2009 august 2009 july 2009 june 2009 may 2009 april 2009 march 2009 february 2009 january 2009 december 2008 november 2008 october 2008 september 2008 august 2008 july 2008 june 2008 may 2008 april 2008 march 2008 february 2008 january 2008 december 2007 november 2007 october 2007 september 2007 august 2007 july 2007 june 2007 may 2007 april 2007 march 2007 december 2006 november 2006 october 2006 september 2006 august 2006 pete warden's blog footer menu homeabout blog at wordpress.com. ↑ pete warden's blog blog at wordpress.com. post to cancel


Here you find all texts from your page as Google (googlebot) and others search engines seen it.

Words density analysis:

Numbers of all words: 7755

One word

Two words phrases

Three words phrases

the - 6.73% (522)
and - 2.3% (178)
that - 2.13% (165)
for - 1.75% (136)
you - 1.66% (129)
all - 1.26% (98)
ten - 1.11% (86)
are - 0.98% (76)
low - 0.98% (76)
out - 0.95% (74)
put - 0.94% (73)
can - 0.94% (73)
his - 0.93% (72)
this - 0.92% (71)
int - 0.88% (68)
with - 0.83% (64)
app - 0.81% (63)
ble - 0.79% (61)
tensor - 0.76% (59)
file - 0.76% (59)
graph - 0.74% (57)
per - 0.68% (53)
here - 0.66% (51)
use - 0.66% (51)
tensorflow - 0.64% (50)
but - 0.64% (50)
bit - 0.61% (47)
model - 0.61% (47)
work - 0.59% (46)
need - 0.58% (45)
men - 0.55% (43)
one - 0.55% (43)
our - 0.54% (42)
eight - 0.53% (41)
200 - 0.52% (40)
image - 0.52% (40)
run - 0.5% (39)
float - 0.49% (38)
example - 0.48% (37)
label - 0.45% (35)
ran - 0.45% (35)
form - 0.44% (34)
lot - 0.43% (33)
have - 0.41% (32)
quantize - 0.41% (32)
train - 0.4% (31)
very - 0.4% (31)
how - 0.4% (31)
files - 0.4% (31)
input - 0.4% (31)
own - 0.37% (29)
see - 0.37% (29)
value - 0.37% (29)
they - 0.36% (28)
there - 0.36% (28)
it’s - 0.35% (27)
your - 0.35% (27)
them - 0.35% (27)
able - 0.35% (27)
min - 0.34% (26)
art - 0.34% (26)
into - 0.34% (26)
mul - 0.34% (26)
what - 0.34% (26)
result - 0.32% (25)
more - 0.32% (25)
about - 0.31% (24)
get - 0.31% (24)
than - 0.31% (24)
output - 0.31% (24)
any - 0.31% (24)
from - 0.31% (24)
range - 0.3% (23)
two - 0.3% (23)
other - 0.28% (22)
tf_files - 0.28% (22)
now - 0.28% (22)
much - 0.28% (22)
operation - 0.28% (22)
too - 0.27% (21)
these - 0.27% (21)
also - 0.26% (20)
point - 0.26% (20)
quantized - 0.26% (20)
code - 0.26% (20)
like - 0.25% (19)
const - 0.25% (19)
values - 0.25% (19)
because - 0.25% (19)
network - 0.25% (19)
new - 0.25% (19)
build - 0.23% (18)
here’s - 0.23% (18)
make - 0.23% (18)
using - 0.23% (18)
ever - 0.23% (18)
trained - 0.23% (18)
was - 0.23% (18)
will - 0.22% (17)
that’s - 0.22% (17)
results - 0.22% (17)
over - 0.22% (17)
not - 0.22% (17)
calculations - 0.22% (17)
mean - 0.22% (17)
know - 0.22% (17)
which - 0.22% (17)
press - 0.22% (17)
load - 0.21% (16)
size - 0.21% (16)
still - 0.21% (16)
operations - 0.21% (16)
may - 0.21% (16)
eight-bit - 0.21% (16)
label_image - 0.21% (16)
ram - 0.21% (16)
on. - 0.21% (16)
quantization - 0.19% (15)
name - 0.19% (15)
why - 0.19% (15)
format - 0.19% (15)
just - 0.19% (15)
weight - 0.19% (15)
neural - 0.19% (15)
should - 0.19% (15)
labels - 0.19% (15)
way - 0.19% (15)
represent - 0.19% (15)
examples - 0.19% (15)
came - 0.18% (14)
different - 0.18% (14)
bazel - 0.18% (14)
memory - 0.18% (14)
set - 0.18% (14)
cpu - 0.18% (14)
call - 0.18% (14)
thing - 0.18% (14)
hard - 0.18% (14)
process - 0.18% (14)
old - 0.18% (14)
gpu - 0.18% (14)
i’m - 0.18% (14)
has - 0.18% (14)
ios - 0.18% (14)
large - 0.18% (14)
take - 0.17% (13)
camera - 0.17% (13)
models - 0.17% (13)
data - 0.17% (13)
some - 0.17% (13)
learn - 0.17% (13)
those - 0.17% (13)
down - 0.17% (13)
even - 0.17% (13)
every - 0.17% (13)
weights - 0.17% (13)
convert - 0.17% (13)
tar - 0.15% (12)
where - 0.15% (12)
2011 - 0.15% (12)
pete - 0.15% (12)
warden - 0.15% (12)
gpus - 0.15% (12)
come - 0.15% (12)
2008 - 0.15% (12)
small - 0.15% (12)
applications - 0.15% (12)
when - 0.15% (12)
inference - 0.15% (12)
term - 0.15% (12)
2016 - 0.15% (12)
device - 0.15% (12)
2014 - 0.15% (12)
2009 - 0.15% (12)
only - 0.15% (12)
works - 0.15% (12)
2013 - 0.15% (12)
2010 - 0.15% (12)
its - 0.15% (12)
perform - 0.14% (11)
floating - 0.14% (11)
final - 0.14% (11)
problem - 0.14% (11)
approach - 0.14% (11)
december - 0.14% (11)
deep - 0.14% (11)
on, - 0.14% (11)
retrained - 0.14% (11)
number - 0.14% (11)
map - 0.14% (11)
energy - 0.14% (11)
implement - 0.14% (11)
give - 0.14% (11)
means - 0.14% (11)
september - 0.14% (11)
max - 0.14% (11)
most - 0.14% (11)
optimize - 0.14% (11)
networks - 0.14% (11)
there’s - 0.14% (11)
open - 0.14% (11)
you’ll - 0.14% (11)
hand - 0.14% (11)
time - 0.14% (11)
then - 0.14% (11)
inputs - 0.13% (10)
april - 0.13% (10)
/tensorflow/ - 0.13% (10)
sub - 0.13% (10)
involve - 0.13% (10)
october - 0.13% (10)
sure - 0.13% (10)
cpus - 0.13% (10)
used - 0.13% (10)
2007 - 0.13% (10)
mobile - 0.13% (10)
start - 0.13% (10)
don’t - 0.13% (10)
august - 0.13% (10)
march - 0.13% (10)
november - 0.13% (10)
version - 0.13% (10)
try - 0.13% (10)
support - 0.13% (10)
2012 - 0.13% (10)
january - 0.13% (10)
learning - 0.13% (10)
layer - 0.13% (10)
look - 0.13% (10)
compress - 0.13% (10)
include - 0.13% (10)
rough - 0.13% (10)
2015 - 0.12% (9)
well - 0.12% (9)
we’re - 0.12% (9)
show - 0.12% (9)
move - 0.12% (9)
would - 0.12% (9)
important - 0.12% (9)
devices - 0.12% (9)
search - 0.12% (9)
since - 0.12% (9)
training - 0.12% (9)
through - 0.12% (9)
watt - 0.12% (9)
running - 0.12% (9)
bits - 0.12% (9)
power - 0.12% (9)
ranges - 0.12% (9)
post - 0.12% (9)
many - 0.12% (9)
though - 0.12% (9)
script - 0.12% (9)
change - 0.12% (9)
possible - 0.12% (9)
sort - 0.12% (9)
minimum - 0.1% (8)
first - 0.1% (8)
lower - 0.1% (8)
matrix - 0.1% (8)
implementation - 0.1% (8)
next - 0.1% (8)
february - 0.1% (8)
light - 0.1% (8)
getting - 0.1% (8)
actual - 0.1% (8)
writing - 0.1% (8)
fast - 0.1% (8)
special - 0.1% (8)
precision - 0.1% (8)
- 0.1% (8)
each - 0.1% (8)
being - 0.1% (8)
mapped - 0.1% (8)
it. - 0.1% (8)
been - 0.1% (8)
computation - 0.1% (8)
june - 0.1% (8)
simple - 0.1% (8)
july - 0.1% (8)
you’re - 0.1% (8)
high - 0.1% (8)
node - 0.1% (8)
they’re - 0.1% (8)
comment - 0.1% (8)
tend - 0.1% (8)
add - 0.1% (8)
line - 0.1% (8)
tools - 0.1% (8)
changes - 0.1% (8)
graphdef - 0.1% (8)
good - 0.1% (8)
avoid - 0.1% (8)
equivalent - 0.1% (8)
maximum - 0.09% (7)
step - 0.09% (7)
command - 0.09% (7)
ops - 0.09% (7)
near - 0.09% (7)
less - 0.09% (7)
representation - 0.09% (7)
find - 0.09% (7)
problems - 0.09% (7)
noise - 0.09% (7)
led - 0.09% (7)
can’t - 0.09% (7)
across - 0.09% (7)
download - 0.09% (7)
help - 0.09% (7)
face - 0.09% (7)
docker - 0.09% (7)
xcode - 0.09% (7)
performance - 0.09% (7)
require - 0.09% (7)
uncategorized - 0.09% (7)
we’ve - 0.09% (7)
hardware - 0.09% (7)
needed - 0.09% (7)
without - 0.09% (7)
let - 0.09% (7)
0.0 - 0.09% (7)
photo - 0.09% (7)
few - 0.09% (7)
multiplication - 0.09% (7)
research - 0.09% (7)
million - 0.09% (7)
raw - 0.09% (7)
numbers - 0.09% (7)
optimized - 0.09% (7)
between - 0.09% (7)
rounded - 0.09% (7)
speed - 0.09% (7)
having - 0.09% (7)
who - 0.08% (6)
cost - 0.08% (6)
kind - 0.08% (6)
original - 0.08% (6)
names - 0.08% (6)
error - 0.08% (6)
128 - 0.08% (6)
outputs - 0.08% (6)
i’ve - 0.08% (6)
project - 0.08% (6)
ability - 0.08% (6)
feed - 0.08% (6)
long - 0.08% (6)
world - 0.08% (6)
faster - 0.08% (6)
older - 0.08% (6)
arm - 0.08% (6)
advantage - 0.08% (6)
graphs - 0.08% (6)
draw - 0.08% (6)
reduce - 0.08% (6)
another - 0.08% (6)
reason - 0.08% (6)
inception - 0.08% (6)
terminal - 0.08% (6)
check - 0.08% (6)
blog - 0.08% (6)
job - 0.08% (6)
uses - 0.08% (6)
same - 0.08% (6)
needs - 0.08% (6)
before - 0.08% (6)
common - 0.08% (6)
sorts - 0.08% (6)
harvest - 0.08% (6)
rest - 0.08% (6)
parser - 0.08% (6)
task - 0.08% (6)
i’d - 0.08% (6)
think - 0.08% (6)
/tmp/ - 0.08% (6)
were - 0.08% (6)
bossy - 0.08% (6)
does - 0.08% (6)
going - 0.08% (6)
function - 0.08% (6)
code, - 0.06% (5)
multiply - 0.06% (5)
often - 0.06% (5)
range, - 0.06% (5)
poets - 0.06% (5)
i’ll - 0.06% (5)
folder - 0.06% (5)
involved - 0.06% (5)
done - 0.06% (5)
side - 0.06% (5)
key - 0.06% (5)
produce - 0.06% (5)
images - 0.06% (5)
activation - 0.06% (5)
ended - 0.06% (5)
better - 0.06% (5)
2006 - 0.06% (5)
exact - 0.06% (5)
hoping - 0.06% (5)
typical - 0.06% (5)
millions - 0.06% (5)
access - 0.06% (5)
predict - 0.06% (5)
could - 0.06% (5)
amount - 0.06% (5)
great - 0.06% (5)
linear - 0.06% (5)
part - 0.06% (5)
flower - 0.06% (5)
engineer - 0.06% (5)
follow - 0.06% (5)
processors - 0.06% (5)
human - 0.06% (5)
test - 0.06% (5)
create - 0.06% (5)
already - 0.06% (5)
home - 0.06% (5)
assembler - 0.06% (5)
ways - 0.06% (5)
things - 0.06% (5)
during - 0.06% (5)
you’ve - 0.06% (5)
above - 0.06% (5)
comments - 0.06% (5)
live - 0.06% (5)
buffer - 0.06% (5)
constant - 0.06% (5)
remove - 0.06% (5)
want - 0.06% (5)
object - 0.06% (5)
compute - 0.06% (5)
rely - 0.06% (5)
similar - 0.06% (5)
install - 0.06% (5)
later - 0.06% (5)
again - 0.06% (5)
detail - 0.06% (5)
quantize_graph - 0.06% (5)
rather - 0.06% (5)
apps - 0.06% (5)
harvesting - 0.06% (5)
rewriting - 0.06% (5)
hope - 0.06% (5)
file. - 0.06% (5)
floating-point - 0.06% (5)
difference - 0.06% (5)
screen - 0.05% (4)
store - 0.05% (4)
within - 0.05% (4)
especially - 0.05% (4)
typically - 0.05% (4)
slightly - 0.05% (4)
algorithm - 0.05% (4)
wide - 0.05% (4)
retrained_graph.pb - 0.05% (4)
model. - 0.05% (4)
ones - 0.05% (4)
disk - 0.05% (4)
apply - 0.05% (4)
fad - 0.05% (4)
wanted - 0.05% (4)
formats - 0.05% (4)
rounded_graph.pb - 0.05% (4)
overall - 0.05% (4)
distributed - 0.05% (4)
below - 0.05% (4)
compile - 0.05% (4)
bazel-bin/tensorflow/examples/label_image/label_image - 0.05% (4)
decision - 0.05% (4)
out, - 0.05% (4)
mine - 0.05% (4)
daisy - 0.05% (4)
compression - 0.05% (4)
hit - 0.05% (4)
she - 0.05% (4)
nsstring* - 0.05% (4)
static - 0.05% (4)
in. - 0.05% (4)
top - 0.05% (4)
makes - 0.05% (4)
native - 0.05% (4)
decode - 0.05% (4)
platform - 0.05% (4)
once - 0.05% (4)
demo - 0.05% (4)
mcparseface - 0.05% (4)
source - 0.05% (4)
machine - 0.05% (4)
processing - 0.05% (4)
box - 0.05% (4)
noise, - 0.05% (4)
might - 0.05% (4)
directly - 0.05% (4)
accuracy - 0.05% (4)
appear - 0.05% (4)
shrink - 0.05% (4)
easy - 0.05% (4)
update - 0.05% (4)
tasks - 0.05% (4)
rounding - 0.05% (4)
back - 0.05% (4)
picture - 0.05% (4)
milliwatts - 0.05% (4)
conversion - 0.05% (4)
reliable - 0.05% (4)
table - 0.05% (4)
place - 0.05% (4)
seem - 0.05% (4)
accumulate - 0.05% (4)
sizes - 0.05% (4)
8-bit - 0.05% (4)
plain - 0.05% (4)
had - 0.05% (4)
python - 0.05% (4)
calculations, - 0.05% (4)
available - 0.05% (4)
costs - 0.05% (4)
phone - 0.05% (4)
matt - 0.05% (4)
multiplications - 0.05% (4)
gives - 0.05% (4)
nodes - 0.05% (4)
big - 0.05% (4)
applications. - 0.05% (4)
after - 0.05% (4)
automatic - 0.05% (4)
smart - 0.05% (4)
sensors - 0.05% (4)
batteries - 0.05% (4)
right - 0.05% (4)
approaches - 0.05% (4)
imagine - 0.05% (4)
tensors - 0.05% (4)
design - 0.05% (4)
care - 0.05% (4)
dram - 0.05% (4)
gemm - 0.05% (4)
following - 0.05% (4)
working - 0.05% (4)
recognize - 0.05% (4)
calculate - 0.05% (4)
total - 0.05% (4)
door - 0.05% (4)
excited - 0.05% (4)
wait - 0.05% (4)
values, - 0.05% (4)
instruction - 0.05% (4)
signed - 0.05% (4)
objects - 0.05% (4)
actually - 0.05% (4)
current - 0.05% (4)
their - 0.05% (4)
tutorial - 0.05% (4)
errors - 0.05% (4)
my… - 0.05% (4)
clear - 0.05% (4)
files, - 0.04% (3)
main - 0.04% (3)
loaded - 0.04% (3)
them, - 0.04% (3)
unreliable - 0.04% (3)
electronics - 0.04% (3)
accurate - 0.04% (3)
window - 0.04% (3)
tensorflow/contrib/ios_examples/camera/data - 0.04% (3)
interesting - 0.04% (3)
arithmetic - 0.04% (3)
recent - 0.04% (3)
operator - 0.04% (3)
single - 0.04% (3)
wider - 0.04% (3)
program - 0.04% (3)
share - 0.04% (3)
tried - 0.04% (3)
commonly - 0.04% (3)
convolution - 0.04% (3)
based - 0.04% (3)
transform - 0.04% (3)
here, - 0.04% (3)
brew - 0.04% (3)
aren’t - 0.04% (3)
scripts - 0.04% (3)
loading - 0.04% (3)
bit. - 0.04% (3)
embedded - 0.04% (3)
hear - 0.04% (3)
weights, - 0.04% (3)
with! - 0.04% (3)
requires - 0.04% (3)
app, - 0.04% (3)
handle - 0.04% (3)
scale - 0.04% (3)
compiler - 0.04% (3)
text - 0.04% (3)
lots - 0.04% (3)
sit - 0.04% (3)
seen - 0.04% (3)
posts - 0.04% (3)
encounter - 0.04% (3)
modern - 0.04% (3)
dependencies - 0.04% (3)
google - 0.04% (3)
instead - 0.04% (3)
talk - 0.04% (3)
involves - 0.04% (3)
instructions - 0.04% (3)
taken - 0.04% (3)
learning, - 0.04% (3)
become - 0.04% (3)
parallel - 0.04% (3)
something - 0.04% (3)
comes - 0.04% (3)
smaller - 0.04% (3)
automatically - 0.04% (3)
size_t - 0.04% (3)
fail - 0.04% (3)
warden's - 0.04% (3)
logic - 0.04% (3)
user - 0.04% (3)
complex - 0.04% (3)
pixel - 0.04% (3)
optimization - 0.04% (3)
determine - 0.04% (3)
model, - 0.04% (3)
too. - 0.04% (3)
exciting - 0.04% (3)
convert_graphdef_memmapped_format - 0.04% (3)
applied - 0.04% (3)
love - 0.04% (3)
instance - 0.04% (3)
known - 0.04% (3)
example. - 0.04% (3)
fundamental - 0.04% (3)
ported - 0.04% (3)
component - 0.04% (3)
existing - 0.04% (3)
doing - 0.04% (3)
computer - 0.04% (3)
natural - 0.04% (3)
language - 0.04% (3)
gpus, - 0.04% (3)
be. - 0.04% (3)
solutions - 0.04% (3)
general - 0.04% (3)
gemmlowp - 0.04% (3)
release - 0.04% (3)
card - 0.04% (3)
behind - 0.04% (3)
math - 0.04% (3)
numerical - 0.04% (3)
we’ll - 0.04% (3)
given - 0.04% (3)
--output_layer=final_result - 0.04% (3)
(for - 0.04% (3)
cheap - 0.04% (3)
-3.0 - 0.04% (3)
tiny - 0.04% (3)
versions - 0.04% (3)
believe - 0.04% (3)
--labels=/tf_files/retrained_labels.txt - 0.04% (3)
bits, - 0.04% (3)
includes - 0.04% (3)
takes - 0.04% (3)
shows - 0.04% (3)
real - 0.04% (3)
87mb - 0.04% (3)
enough - 0.04% (3)
optimize_for_inference - 0.04% (3)
exactly - 0.04% (3)
constants - 0.04% (3)
order - 0.04% (3)
multiply-add - 0.04% (3)
list - 0.04% (3)
1.5 - 0.04% (3)
functions - 0.04% (3)
far - 0.04% (3)
individual - 0.04% (3)
data, - 0.04% (3)
relationship - 0.04% (3)
--image=/tf_files/flower_photos/daisy/5547758_eea9edfd54_n.jpg - 0.04% (3)
foot - 0.04% (3)
everything - 0.04% (3)
hold - 0.04% (3)
case - 0.04% (3)
example, - 0.04% (3)
magnitude - 0.04% (3)
computational - 0.04% (3)
work. - 0.04% (3)
default - 0.04% (3)
levels - 0.04% (3)
point, - 0.04% (3)
making - 0.04% (3)
issue - 0.04% (3)
steps - 0.04% (3)
chip - 0.04% (3)
people - 0.04% (3)
offer - 0.04% (3)
10.0 - 0.04% (3)
though, - 0.04% (3)
future - 0.04% (3)
researchers - 0.04% (3)
buffers - 0.04% (3)
stand - 0.04% (3)
255 - 0.04% (3)
finder - 0.04% (3)
array - 0.04% (3)
vibration - 0.04% (3)
time, - 0.04% (3)
this, - 0.04% (3)
expect - 0.04% (3)
32-bit - 0.04% (3)
increasing - 0.04% (3)
focus - 0.04% (3)
enable - 0.04% (3)
yourself - 0.04% (3)
cover - 0.04% (3)
6.0 - 0.04% (3)
preserve - 0.04% (3)
leaving - 0.04% (3)
conference - 0.04% (3)
reference - 0.03% (2)
now, - 0.03% (2)
inference. - 0.03% (2)
converted - 0.03% (2)
everyone - 0.03% (2)
team - 0.03% (2)
dsp - 0.03% (2)
scalability - 0.03% (2)
found - 0.03% (2)
converting - 0.03% (2)
implementations - 0.03% (2)
technique - 0.03% (2)
graph, - 0.03% (2)
jones - 0.03% (2)
recommend - 0.03% (2)
subject - 0.03% (2)
brian - 0.03% (2)
stored - 0.03% (2)
@petewarden - 0.03% (2)
multiplication, - 0.03% (2)
runs - 0.03% (2)
devices. - 0.03% (2)
fade - 0.03% (2)
outside - 0.03% (2)
highly - 0.03% (2)
amazing - 0.03% (2)
automatically. - 0.03% (2)
/tmp/inceptionv3.tgz - 0.03% (2)
variety - 0.03% (2)
sentence - 0.03% (2)
starting - 0.03% (2)
built - 0.03% (2)
entry - 0.03% (2)
hundred - 0.03% (2)
work? - 0.03% (2)
close - 0.03% (2)
heavy - 0.03% (2)
least - 0.03% (2)
bits. - 0.03% (2)
lifting - 0.03% (2)
explore - 0.03% (2)
pick - 0.03% (2)
relationships - 0.03% (2)
bound - 0.03% (2)
floats - 0.03% (2)
point. - 0.03% (2)
linearly - 0.03% (2)
adjective - 0.03% (2)
-10.0 - 0.03% (2)
30.0 - 0.03% (2)
accumulated - 0.03% (2)
documentation - 0.03% (2)
site - 0.03% (2)
advantages - 0.03% (2)
depths - 0.03% (2)
expensive - 0.03% (2)
pure - 0.03% (2)
improve - 0.03% (2)
grow - 0.03% (2)
separate - 0.03% (2)
analyze - 0.03% (2)
experiment - 0.03% (2)
girls - 0.03% (2)
internal - 0.03% (2)
stage - 0.03% (2)
tensorflow. - 0.03% (2)
well. - 0.03% (2)
sound - 0.03% (2)
conversions - 0.03% (2)
zip - 0.03% (2)
numbers, - 0.03% (2)
tensor, - 0.03% (2)
what’s - 0.03% (2)
dequantize - 0.03% (2)
tackle - 0.03% (2)
understand - 0.03% (2)
accelerate - 0.03% (2)
low-precision - 0.03% (2)
subtract - 0.03% (2)
classify - 0.03% (2)
women - 0.03% (2)
biases - 0.03% (2)
illustrate - 0.03% (2)
float. - 0.03% (2)
labor - 0.03% (2)
equivalents, - 0.03% (2)
introduce - 0.03% (2)
ops. - 0.03% (2)
instances - 0.03% (2)
cancel - 0.03% (2)
inputs. - 0.03% (2)
subtle - 0.03% (2)
representations - 0.03% (2)
sets - 0.03% (2)
everywhere - 0.03% (2)
computing - 0.03% (2)
larger - 0.03% (2)
square - 0.03% (2)
crop - 0.03% (2)
ways. - 0.03% (2)
about, - 0.03% (2)
scatter - 0.03% (2)
vision - 0.03% (2)
consumption - 0.03% (2)
clearly - 0.03% (2)
used, - 0.03% (2)
actively - 0.03% (2)
watts, - 0.03% (2)
gather - 0.03% (2)
centimeter - 0.03% (2)
mw/cm2 - 0.03% (2)
piece - 0.03% (2)
temperature - 0.03% (2)
industrial - 0.03% (2)
copied - 0.03% (2)
james - 0.03% (2)
please - 0.03% (2)
clarify - 0.03% (2)
trying - 0.03% (2)
left - 0.03% (2)
experts - 0.03% (2)
chance - 0.03% (2)
meant - 0.03% (2)
turned - 0.03% (2)
field - 0.03% (2)
machinery - 0.03% (2)
pushing - 0.03% (2)
avoiding - 0.03% (2)
factor - 0.03% (2)
record - 0.03% (2)
those, - 0.03% (2)
drive - 0.03% (2)
kinds - 0.03% (2)
guarantees - 0.03% (2)
specialized - 0.03% (2)
opens - 0.03% (2)
random - 0.03% (2)
resilient - 0.03% (2)
learned - 0.03% (2)
adjacent - 0.03% (2)
increasingly - 0.03% (2)
last - 0.03% (2)
continue - 0.03% (2)
components - 0.03% (2)
prediction - 0.03% (2)
picojoules - 0.03% (2)
billion - 0.03% (2)
sram - 0.03% (2)
local - 0.03% (2)
cheaper - 0.03% (2)
usage - 0.03% (2)
sending - 0.03% (2)
software - 0.03% (2)
things, - 0.03% (2)
worked - 0.03% (2)
external - 0.03% (2)
poets, - 0.03% (2)
old-school - 0.03% (2)
algorithms - 0.03% (2)
cache - 0.03% (2)
fit - 0.03% (2)
doesn’t - 0.03% (2)
entirely - 0.03% (2)
code. - 0.03% (2)
impact - 0.03% (2)
multiplies - 0.03% (2)
details - 0.03% (2)
clean - 0.03% (2)
looking - 0.03% (2)
started - 0.03% (2)
compilers - 0.03% (2)
depending - 0.03% (2)
turns - 0.03% (2)
c_index - 0.03% (2)
b_value - 0.03% (2)
b_index - 0.03% (2)
a_value - 0.03% (2)
((i - 0.03% (2)
a_index - 0.03% (2)
2017 - 0.03% (2)
hackers - 0.03% (2)
homeabout - 0.03% (2)
menu - 0.03% (2)
again. - 0.03% (2)
written - 0.03% (2)
involved. - 0.03% (2)
attend - 0.03% (2)
transformations - 0.03% (2)
included) - 0.03% (2)
(*batteries - 0.03% (2)
github - 0.03% (2)
potential - 0.03% (2)
encourage - 0.03% (2)
operators - 0.03% (2)
easier - 0.03% (2)
spent - 0.03% (2)
inside - 0.03% (2)
normalization - 0.03% (2)
batch - 0.03% (2)
parts - 0.03% (2)
programs - 0.03% (2)
write - 0.03% (2)
gtt - 0.03% (2)
news - 0.03% (2)
fundamentally - 0.03% (2)
theoretical - 0.03% (2)
libraries - 0.03% (2)
alternatives - 0.03% (2)
lags - 0.03% (2)
x86 - 0.03% (2)
cpus. - 0.03% (2)
intel - 0.03% (2)
showed - 0.03% (2)
(which - 0.03% (2)
possible. - 0.03% (2)
custom - 0.03% (2)
pack - 0.03% (2)
resources - 0.03% (2)
android - 0.03% (2)
begin - 0.03% (2)
display - 0.03% (2)
finally, - 0.03% (2)
output_layer_name - 0.03% (2)
input_layer_name - 0.03% (2)
std::string - 0.03% (2)
128.0f; - 0.03% (2)
299; - 0.03% (2)
match - 0.03% (2)
parameter - 0.03% (2)
created - 0.03% (2)
replace - 0.03% (2)
asked - 0.03% (2)
images, - 0.03% (2)
information. - 0.03% (2)
got - 0.03% (2)
cameraexample - 0.03% (2)
this: - 0.03% (2)
select - 0.03% (2)
xcode, - 0.03% (2)
pane - 0.03% (2)
navigator - 0.03% (2)
folder, - 0.03% (2)
together - 0.03% (2)
tensorflow/contrib/ios_examples/camera/data/ - 0.03% (2)
anyway? - 0.03% (2)
who’s - 0.03% (2)
framework - 0.03% (2)
decisions - 0.03% (2)
little - 0.03% (2)
jobs - 0.03% (2)
break - 0.03% (2)
faster. - 0.03% (2)
elements - 0.03% (2)
complicated - 0.03% (2)
flexible - 0.03% (2)
differences - 0.03% (2)
fewer - 0.03% (2)
moving - 0.03% (2)
pixels - 0.03% (2)
drawing - 0.03% (2)
figure - 0.03% (2)
gets - 0.03% (2)
soon - 0.03% (2)
waiting - 0.03% (2)
box. - 0.03% (2)
reading - 0.03% (2)
deal - 0.03% (2)
differently - 0.03% (2)
designed - 0.03% (2)
screen. - 0.03% (2)
graphics - 0.03% (2)
overview - 0.03% (2)
answer - 0.03% (2)
video - 0.03% (2)
~/projects/tensorflow - 0.03% (2)
commands - 0.03% (2)
assuming - 0.03% (2)
updated - 0.03% (2)
operation. - 0.03% (2)
decodejpeg - 0.03% (2)
while - 0.03% (2)
increase - 0.03% (2)
painful - 0.03% (2)
isn’t - 0.03% (2)
supported - 0.03% (2)
limited - 0.03% (2)
app. - 0.03% (2)
sensible - 0.03% (2)
tensorflow/examples/label_image:label_image - 0.03% (2)
settings - 0.03% (2)
too, - 0.03% (2)
feeding - 0.03% (2)
compilation - 0.03% (2)
categories - 0.03% (2)
next, - 0.03% (2)
prompt - 0.03% (2)
won’t - 0.03% (2)
tensorflow, - 0.03% (2)
relies - 0.03% (2)
image. - 0.03% (2)
latest - 0.03% (2)
above, - 0.03% (2)
containing - 0.03% (2)
installed - 0.03% (2)
normally - 0.03% (2)
platforms - 0.03% (2)
window, - 0.03% (2)
holding - 0.03% (2)
automake - 0.03% (2)
brew, - 0.03% (2)
switch - 0.03% (2)
straightforward - 0.03% (2)
purposes - 0.03% (2)
demonstration - 0.03% (2)
one, - 0.03% (2)
watch - 0.03% (2)
easily - 0.03% (2)
fortunately - 0.03% (2)
pressure - 0.03% (2)
size, - 0.03% (2)
effects - 0.03% (2)
loaded, - 0.03% (2)
thanks - 0.03% (2)
disk, - 0.03% (2)
256 - 0.03% (2)
achieve - 0.03% (2)
usually - 0.03% (2)
compressed - 0.03% (2)
.ipa - 0.03% (2)
apple - 0.03% (2)
made - 0.03% (2)
mathematical - 0.03% (2)
such - 0.03% (2)
removes - 0.03% (2)
never - 0.03% (2)
wordpress.com. - 0.03% (2)
of the - 0.54% (42)
at the - 0.4% (31)
in the - 0.39% (30)
to the - 0.31% (24)
lot of - 0.31% (24)
need to - 0.3% (23)
if you - 0.28% (22)
that the - 0.27% (21)
that i - 0.26% (20)
and the - 0.21% (16)
you can - 0.21% (16)
on the - 0.18% (14)
is that - 0.17% (13)
this is - 0.17% (13)
that a - 0.17% (13)
neural network - 0.17% (13)
the model - 0.14% (11)
with the - 0.14% (11)
there are - 0.14% (11)
that we - 0.14% (11)
deep learning - 0.13% (10)
it’s a - 0.13% (10)
so the - 0.13% (10)
all the - 0.13% (10)
pete warden - 0.13% (10)
neural networks - 0.13% (10)
able to - 0.13% (10)
that are - 0.12% (9)
our own - 0.12% (9)
the file - 0.12% (9)
can be - 0.12% (9)
into the - 0.12% (9)
to see - 0.1% (8)
all of - 0.1% (8)
your own - 0.1% (8)
one of - 0.1% (8)
that they - 0.1% (8)
and max - 0.1% (8)
make sure - 0.1% (8)
to run - 0.1% (8)
or the - 0.1% (8)
warden in - 0.09% (7)
by pete - 0.09% (7)
use the - 0.09% (7)
we can - 0.09% (7)
you should - 0.09% (7)
in uncategorized - 0.09% (7)
eight bit - 0.09% (7)
the tensor - 0.09% (7)
the weights - 0.09% (7)
and then - 0.09% (7)
for the - 0.09% (7)
and output - 0.09% (7)
set of - 0.09% (7)
we need - 0.09% (7)
them in - 0.09% (7)
that can - 0.09% (7)
will be - 0.08% (6)
tensorflow for - 0.08% (6)
the same - 0.08% (6)
sorts of - 0.08% (6)
and maximum - 0.08% (6)
floating point - 0.08% (6)
because the - 0.08% (6)
the input - 0.08% (6)
they can - 0.08% (6)
the min - 0.08% (6)
means that - 0.08% (6)
the original - 0.08% (6)
is the - 0.08% (6)
operations that - 0.08% (6)
model file - 0.08% (6)
with a - 0.08% (6)
all sorts - 0.08% (6)
to build - 0.08% (6)
you need - 0.08% (6)
that you - 0.08% (6)
you have - 0.08% (6)
bazel build - 0.08% (6)
on how - 0.08% (6)
up with - 0.08% (6)
the quantized - 0.08% (6)
2016 by - 0.08% (6)
you do - 0.06% (5)
so that - 0.06% (5)
we also - 0.06% (5)
going to - 0.06% (5)
in tensorflow - 0.06% (5)
run the - 0.06% (5)
if the - 0.06% (5)
so it’s - 0.06% (5)
see the - 0.06% (5)
as the - 0.06% (5)
and so - 0.06% (5)
at this - 0.06% (5)
rather than - 0.06% (5)
to avoid - 0.06% (5)
do the - 0.06% (5)
millions of - 0.06% (5)
how you - 0.06% (5)
to make - 0.06% (5)
to get - 0.06% (5)
a large - 0.06% (5)
inputs and - 0.06% (5)
this means - 0.06% (5)
we use - 0.06% (5)
have a - 0.06% (5)
tend to - 0.06% (5)
and run - 0.06% (5)
the next - 0.05% (4)
on disk - 0.05% (4)
float value - 0.05% (4)
have been - 0.05% (4)
you’ll see - 0.05% (4)
the quantization - 0.05% (4)
minimum and - 0.05% (4)
needed to - 0.05% (4)
bazel-bin/tensorflow/examples/label_image/label_image \ - 0.05% (4)
advantage of - 0.05% (4)
from the - 0.05% (4)
that use - 0.05% (4)
to take - 0.05% (4)
sure that - 0.05% (4)
possible to - 0.05% (4)
to convert - 0.05% (4)
the minimum - 0.05% (4)
to work - 0.05% (4)
model is - 0.05% (4)
the range - 0.05% (4)
but we - 0.05% (4)
if you’re - 0.05% (4)
static nsstring* - 0.05% (4)
come up - 0.05% (4)
const float - 0.05% (4)
kind of - 0.05% (4)
networks i - 0.05% (4)
when i - 0.05% (4)
own model - 0.05% (4)
i ended - 0.05% (4)
what you - 0.05% (4)
that is - 0.05% (4)
version of - 0.05% (4)
lot more - 0.05% (4)
think about - 0.05% (4)
easy to - 0.05% (4)
of deep - 0.05% (4)
the result - 0.05% (4)
an example - 0.05% (4)
and all - 0.05% (4)
the tensorflow - 0.05% (4)
up using - 0.05% (4)
model files - 0.05% (4)
which is - 0.05% (4)
your model - 0.05% (4)
can get - 0.05% (4)
a folder - 0.05% (4)
energy harvesting - 0.05% (4)
from a - 0.05% (4)
in more - 0.04% (3)
\ --labels=/tf_files/retrained_labels.txt - 0.04% (3)
\ --output_layer=final_result - 0.04% (3)
the top - 0.04% (3)
move the - 0.04% (3)
\ --image=/tf_files/flower_photos/daisy/5547758_eea9edfd54_n.jpg - 0.04% (3)
input and - 0.04% (3)
because it’s - 0.04% (3)
up with! - 0.04% (3)
them with - 0.04% (3)
but i’m - 0.04% (3)
deep learning, - 0.04% (3)
that uses - 0.04% (3)
why deep - 0.04% (3)
learning is - 0.04% (3)
number of - 0.04% (3)
of different - 0.04% (3)
that’s a - 0.04% (3)
it’s possible - 0.04% (3)
that have - 0.04% (3)
way to - 0.04% (3)
of operations - 0.04% (3)
applications i - 0.04% (3)
through the - 0.04% (3)
men and - 0.04% (3)
the operation - 0.04% (3)
love to - 0.04% (3)
gpus are - 0.04% (3)
that run - 0.04% (3)
very different - 0.04% (3)
the app, - 0.04% (3)
the labels - 0.04% (3)
const int - 0.04% (3)
in float - 0.04% (3)
file to - 0.04% (3)
about the - 0.04% (3)
the files - 0.04% (3)
data folder - 0.04% (3)
don’t have - 0.04% (3)
you run - 0.04% (3)
new model - 0.04% (3)
know that - 0.04% (3)
a good - 0.04% (3)
the terminal - 0.04% (3)
build the - 0.04% (3)
to load - 0.04% (3)
to give - 0.04% (3)
the overall - 0.04% (3)
and gpus - 0.04% (3)
networks is - 0.04% (3)
it also - 0.04% (3)
the screen - 0.04% (3)
for any - 0.04% (3)
for you - 0.04% (3)
bit calculations - 0.04% (3)
more detail - 0.04% (3)
the kind - 0.04% (3)
more than - 0.04% (3)
to handle - 0.04% (3)
slightly different - 0.04% (3)
a great - 0.04% (3)
of noise - 0.04% (3)
at your - 0.04% (3)
should see - 0.04% (3)
an image - 0.04% (3)
the results - 0.04% (3)
warden's blog - 0.04% (3)
--image=/tf_files/flower_photos/daisy/5547758_eea9edfd54_n.jpg \ - 0.04% (3)
the approach - 0.04% (3)
support for - 0.04% (3)
in eight - 0.04% (3)
much more - 0.04% (3)
operations have - 0.04% (3)
them into - 0.04% (3)
what i - 0.04% (3)
8 bits - 0.04% (3)
there’s a - 0.04% (3)
this can - 0.04% (3)
was that - 0.04% (3)
or matrix - 0.04% (3)
that aren’t - 0.04% (3)
the future - 0.04% (3)
watt or - 0.04% (3)
and that - 0.04% (3)
that we’re - 0.04% (3)
sort of - 0.04% (3)
that do - 0.04% (3)
these sort - 0.04% (3)
the hardware - 0.04% (3)
a small - 0.04% (3)
it can - 0.04% (3)
needed for - 0.04% (3)
the graph - 0.04% (3)
than the - 0.04% (3)
much faster - 0.04% (3)
const size_t - 0.04% (3)
pete warden's - 0.04% (3)
the way - 0.04% (3)
be able - 0.04% (3)
what are - 0.04% (3)
lots of - 0.04% (3)
how to - 0.04% (3)
how much - 0.04% (3)
performance on - 0.04% (3)
on mobile - 0.04% (3)
of other - 0.04% (3)
work in - 0.04% (3)
the rounded - 0.04% (3)
the actual - 0.04% (3)
uncategorized 1 - 0.04% (3)
the most - 0.04% (3)
that they’re - 0.04% (3)
can do - 0.04% (3)
on. the - 0.04% (3)
example of - 0.04% (3)
are lots - 0.04% (3)
gives a - 0.04% (3)
range of - 0.04% (3)
the large - 0.04% (3)
run this - 0.04% (3)
of your - 0.04% (3)
--output_layer=final_result \ - 0.04% (3)
unreliable electronics - 0.04% (3)
for mobile - 0.04% (3)
--labels=/tf_files/retrained_labels.txt \ - 0.04% (3)
i’m a - 0.04% (3)
amount of - 0.04% (3)
produce a - 0.04% (3)
look at - 0.04% (3)
this tutorial - 0.04% (3)
for poets - 0.04% (3)
of tensorflow - 0.04% (3)
i can’t - 0.04% (3)
though the - 0.04% (3)
that it’s - 0.04% (3)
with float - 0.04% (3)
we’re going - 0.04% (3)
across a - 0.04% (3)
also need - 0.04% (3)
perform calculations - 0.03% (2)
the important - 0.03% (2)
very resilient - 0.03% (2)
eight bit. - 0.03% (2)
to store - 0.03% (2)
the computation - 0.03% (2)
the buffer - 0.03% (2)
code, but - 0.03% (2)
was the - 0.03% (2)
of applications - 0.03% (2)
to understand - 0.03% (2)
focus on - 0.03% (2)
each other - 0.03% (2)
of what - 0.03% (2)
very similar - 0.03% (2)
go into - 0.03% (2)
out, and - 0.03% (2)
model and - 0.03% (2)
running inference - 0.03% (2)
here’s an - 0.03% (2)
is very - 0.03% (2)
into eight-bit - 0.03% (2)
and activation - 0.03% (2)
of values - 0.03% (2)
network models - 0.03% (2)
in this - 0.03% (2)
the float - 0.03% (2)
rounded version - 0.03% (2)
reference implementation - 0.03% (2)
at wordpress.com. - 0.03% (2)
blog at - 0.03% (2)
brian jones - 0.03% (2)
my… t. - 0.03% (2)
set up - 0.03% (2)
the parser - 0.03% (2)
the equivalent - 0.03% (2)
float inputs - 0.03% (2)
gpus, anyway? - 0.03% (2)
mobile poets - 0.03% (2)
to explore - 0.03% (2)
relationships in - 0.03% (2)
hoping will - 0.03% (2)
but with - 0.03% (2)
an overview - 0.03% (2)
still need - 0.03% (2)
use to - 0.03% (2)
try on - 0.03% (2)
see what - 0.03% (2)
you come - 0.03% (2)
calculations are - 0.03% (2)
good performance - 0.03% (2)
done in - 0.03% (2)
we’ve been - 0.03% (2)
get it - 0.03% (2)
minimum from - 0.03% (2)
so much - 0.03% (2)
about why - 0.03% (2)
you look - 0.03% (2)
with eight - 0.03% (2)
inputs. if - 0.03% (2)
matrix multiplications - 0.03% (2)
would represent - 0.03% (2)
the exact - 0.03% (2)
file on - 0.03% (2)
having to - 0.03% (2)
pick a - 0.03% (2)
that your - 0.03% (2)
values in - 0.03% (2)
to quantize - 0.03% (2)
thing about - 0.03% (2)
of potential - 0.03% (2)
holding the - 0.03% (2)
the one - 0.03% (2)
use of - 0.03% (2)
on ram - 0.03% (2)
to pick - 0.03% (2)
to determine - 0.03% (2)
over to - 0.03% (2)
for example, - 0.03% (2)
will help - 0.03% (2)
can represent - 0.03% (2)
bit depths - 0.03% (2)
float values - 0.03% (2)
more expensive - 0.03% (2)
to calculate - 0.03% (2)
can also - 0.03% (2)
a representation - 0.03% (2)
eight-bit calculations - 0.03% (2)
convert back - 0.03% (2)
from float - 0.03% (2)
for operations - 0.03% (2)
lower bit - 0.03% (2)
to 6.0 - 0.03% (2)
an eight-bit - 0.03% (2)
actual range - 0.03% (2)
down to - 0.03% (2)
noise, and - 0.03% (2)
just another - 0.03% (2)
matrix multiplies - 0.03% (2)
would be - 0.03% (2)
seem to - 0.03% (2)
we know - 0.03% (2)
runs the - 0.03% (2)
even with - 0.03% (2)
values are - 0.03% (2)
of noise, - 0.03% (2)
your models - 0.03% (2)
the training - 0.03% (2)
it and - 0.03% (2)
the network - 0.03% (2)
issue for - 0.03% (2)
numerical formats - 0.03% (2)
which we - 0.03% (2)
in floating-point - 0.03% (2)
do for - 0.03% (2)
to accumulate - 0.03% (2)
have more - 0.03% (2)
to shrink - 0.03% (2)
than 8 - 0.03% (2)
each layer - 0.03% (2)
different floating - 0.03% (2)
on disk, - 0.03% (2)
all slightly - 0.03% (2)
the precision - 0.03% (2)
16 bits - 0.03% (2)
since there - 0.03% (2)
matrix multiplication, - 0.03% (2)
into a - 0.03% (2)
what they - 0.03% (2)
it should - 0.03% (2)
is much - 0.03% (2)
a software - 0.03% (2)
much of - 0.03% (2)
arm research - 0.03% (2)
1.5 billion - 0.03% (2)
about 1.5 - 0.03% (2)
the back - 0.03% (2)
smart sensors - 0.03% (2)
cheaper than - 0.03% (2)
takes a - 0.03% (2)
see in - 0.03% (2)
of things, - 0.03% (2)
problems like - 0.03% (2)
we’ll be - 0.03% (2)
work if - 0.03% (2)
sensors are - 0.03% (2)
why does - 0.03% (2)
even a - 0.03% (2)
you think - 0.03% (2)
every square - 0.03% (2)
difference – - 0.03% (2)
temperature difference - 0.03% (2)
a problem - 0.03% (2)
the face - 0.03% (2)
trying to - 0.03% (2)
retrained_graph.pb file - 0.03% (2)
but if - 0.03% (2)
the default - 0.03% (2)
things are - 0.03% (2)
the docker - 0.03% (2)
should find - 0.03% (2)
relies on - 0.03% (2)
docker image. - 0.03% (2)
the latest - 0.03% (2)
you’ll need - 0.03% (2)
folder in - 0.03% (2)
opens the - 0.03% (2)
for poets, - 0.03% (2)
model into - 0.03% (2)
to recognize - 0.03% (2)
showed how - 0.03% (2)
wait to - 0.03% (2)
world of - 0.03% (2)
then the - 0.03% (2)
i’m hoping - 0.03% (2)
kinds of - 0.03% (2)
vibration – - 0.03% (2)
the arm - 0.03% (2)
command to - 0.03% (2)
depending on - 0.03% (2)
the theoretical - 0.03% (2)
it’s also - 0.03% (2)
lags behind - 0.03% (2)
still a - 0.03% (2)
example with - 0.03% (2)
it means - 0.03% (2)
can be. - 0.03% (2)
of work - 0.03% (2)
all this - 0.03% (2)
well with - 0.03% (2)
with some - 0.03% (2)
that one - 0.03% (2)
compilers to - 0.03% (2)
out of - 0.03% (2)
code, and - 0.03% (2)
of neural - 0.03% (2)
old-school assembler - 0.03% (2)
implementation i - 0.03% (2)
comments photo - 0.03% (2)
needs assembler - 0.03% (2)
of them - 0.03% (2)
also exciting - 0.03% (2)
working on - 0.03% (2)
on what - 0.03% (2)
of time - 0.03% (2)
researchers to - 0.03% (2)
not included) - 0.03% (2)
electronics (*batteries - 0.03% (2)
and unreliable - 0.03% (2)
excited to - 0.03% (2)
and other - 0.03% (2)
to create - 0.03% (2)
i’ve tried - 0.03% (2)
easier to - 0.03% (2)
fundamentally different - 0.03% (2)
inside the - 0.03% (2)
of these - 0.03% (2)
batch normalization - 0.03% (2)
parts of - 0.03% (2)
tensorflow graphs - 0.03% (2)
i hope - 0.03% (2)
you in - 0.03% (2)
news is - 0.03% (2)
the good - 0.03% (2)
like the - 0.03% (2)
build tensorflow/examples/label_image:label_image - 0.03% (2)
it for - 0.03% (2)
applied to - 0.03% (2)
i’m excited - 0.03% (2)
are much - 0.03% (2)
so they - 0.03% (2)
of instructions - 0.03% (2)
they’re designed - 0.03% (2)
give an - 0.03% (2)
video card - 0.03% (2)
uncategorized 4 - 0.03% (2)
are gpus, - 0.03% (2)
can’t wait - 0.03% (2)
or for - 0.03% (2)
waiting for - 0.03% (2)
on android - 0.03% (2)
it the - 0.03% (2)
const std::string - 0.03% (2)
128.0f; const - 0.03% (2)
= 128.0f; - 0.03% (2)
= 299; - 0.03% (2)
299; const - 0.03% (2)
own model, - 0.03% (2)
have your - 0.03% (2)
on cpus - 0.03% (2)
involves a - 0.03% (2)
this to - 0.03% (2)
hoping to - 0.03% (2)
know what - 0.03% (2)
been able - 0.03% (2)
is one - 0.03% (2)
variety of - 0.03% (2)
over the - 0.03% (2)
1 comment - 0.03% (2)
not just - 0.03% (2)
are set - 0.03% (2)
what makes - 0.03% (2)
up the - 0.03% (2)
large number - 0.03% (2)
this scalability - 0.03% (2)
as you - 0.03% (2)
is this - 0.03% (2)
faster. the - 0.03% (2)
example you - 0.03% (2)
large set - 0.03% (2)
much faster. - 0.03% (2)
can perform - 0.03% (2)
are very - 0.03% (2)
by the - 0.03% (2)
the file. - 0.03% (2)
use in - 0.03% (2)
in size - 0.03% (2)
i would - 0.03% (2)
to apply - 0.03% (2)
this gives - 0.03% (2)
much better - 0.03% (2)
don’t compress - 0.03% (2)
those in - 0.03% (2)
ways to - 0.03% (2)
app that - 0.03% (2)
download size - 0.03% (2)
the retrained - 0.03% (2)
order of - 0.03% (2)
run label_image - 0.03% (2)
reduce the - 0.03% (2)
aren’t needed - 0.03% (2)
when the - 0.03% (2)
we don’t - 0.03% (2)
for most - 0.03% (2)
write a - 0.03% (2)
the operations - 0.03% (2)
are common - 0.03% (2)
thanks to - 0.03% (2)
the memory - 0.03% (2)
size of - 0.03% (2)
should have - 0.03% (2)
to update - 0.03% (2)
include the - 0.03% (2)
this should - 0.03% (2)
like this: - 0.03% (2)
finder window - 0.03% (2)
data folder, - 0.03% (2)
in xcode, - 0.03% (2)
remove the - 0.03% (2)
let xcode - 0.03% (2)
the camera - 0.03% (2)
before the - 0.03% (2)
the framework - 0.03% (2)
on your - 0.03% (2)
the command - 0.03% (2)
scripts in - 0.03% (2)
plain graphdef - 0.03% (2)
in one - 0.03% (2)
of those - 0.03% (2)
behind the - 0.03% (2)
into memory - 0.03% (2)
the os - 0.03% (2)
post to - 0.03% (2)
by pete warden - 0.09% (7)
pete warden in - 0.09% (7)
is that the - 0.09% (7)
warden in uncategorized - 0.09% (7)
all of the - 0.08% (6)
one of the - 0.08% (6)
all sorts of - 0.08% (6)
2016 by pete - 0.08% (6)
we need to - 0.06% (5)
is that they - 0.06% (5)
need to do - 0.06% (5)
this is a - 0.06% (5)
if you have - 0.05% (4)
to take a - 0.05% (4)
to make sure - 0.05% (4)
come up with - 0.05% (4)
a lot more - 0.05% (4)
minimum and maximum - 0.05% (4)
make sure that - 0.05% (4)
i ended up - 0.05% (4)
using s3 as - 0.05% (4)
up using s3 - 0.05% (4)
how i ended - 0.05% (4)
is that i - 0.05% (4)
can see the - 0.04% (3)
deep learning is - 0.04% (3)
you need to - 0.04% (3)
\ --labels=/tf_files/retrained_labels.txt \ - 0.04% (3)
\ --image=/tf_files/flower_photos/daisy/5547758_eea9edfd54_n.jpg \ - 0.04% (3)
--output_layer=final_result \ --labels=/tf_files/retrained_labels.txt - 0.04% (3)
are lots of - 0.04% (3)
operations that are - 0.04% (3)
here’s how you - 0.04% (3)
neural networks i - 0.04% (3)
it’s easy to - 0.04% (3)
tend to be - 0.04% (3)
why deep learning - 0.04% (3)
be able to - 0.04% (3)
these sort of - 0.04% (3)
pete warden's blog - 0.04% (3)
there are lots - 0.04% (3)
in uncategorized 1 - 0.04% (3)
come up with! - 0.04% (3)
a watt or - 0.04% (3)
bazel-bin/tensorflow/examples/label_image/label_image \ --output_layer=final_result - 0.04% (3)
it’s possible to - 0.04% (3)
a representation that - 0.03% (2)
that it’s possible - 0.03% (2)
of noise, and - 0.03% (2)
means that they - 0.03% (2)
you think about - 0.03% (2)
neural networks is - 0.03% (2)
i’ll go into - 0.03% (2)
give an overview - 0.03% (2)
what you come - 0.03% (2)
matt on how - 0.03% (2)
relationships in the - 0.03% (2)
in the future - 0.03% (2)
we’re hoping will - 0.03% (2)
of them with - 0.03% (2)
my… t. brian - 0.03% (2)
to know what - 0.03% (2)
been able to - 0.03% (2)
jones on how - 0.03% (2)
as my… t. - 0.03% (2)
than 8 bits - 0.03% (2)
brian jones on - 0.03% (2)
or matrix multiplication - 0.03% (2)
are gpus, anyway? - 0.03% (2)
in a single - 0.03% (2)
min and max - 0.03% (2)
the input and - 0.03% (2)
of deep learning, - 0.03% (2)
was that we - 0.03% (2)
the face of - 0.03% (2)
the rounded version - 0.03% (2)
calculations are done - 0.03% (2)
this gives a - 0.03% (2)
done in eight - 0.03% (2)
float inputs and - 0.03% (2)
version of the - 0.03% (2)
an example of - 0.03% (2)
to pick a - 0.03% (2)
it can represent - 0.03% (2)
input and output - 0.03% (2)
that we can - 0.03% (2)
at the file - 0.03% (2)
performance on mobile - 0.03% (2)
if you look - 0.03% (2)
in the range - 0.03% (2)
still need to - 0.03% (2)
to reduce the - 0.03% (2)
for example with - 0.03% (2)
have a lot - 0.03% (2)
// if you - 0.03% (2)
involves a lot - 0.03% (2)
temperature difference – - 0.03% (2)
that the model - 0.03% (2)
sure that the - 0.03% (2)
in tensorflow for - 0.03% (2)
can’t wait to - 0.03% (2)
sorts of other - 0.03% (2)
will be able - 0.03% (2)
in the face - 0.03% (2)
networks is that - 0.03% (2)
also need to - 0.03% (2)
so it’s a - 0.03% (2)
good news is - 0.03% (2)
you can get - 0.03% (2)
for every square - 0.03% (2)
electronics (*batteries not - 0.03% (2)
that are common - 0.03% (2)
ai and unreliable - 0.03% (2)
to create a - 0.03% (2)
based on what - 0.03% (2)
parts of the - 0.03% (2)
you can do - 0.03% (2)
with the gtt - 0.03% (2)
rewriting tensorflow graphs - 0.03% (2)
the good news - 0.03% (2)
and so the - 0.03% (2)
there’s a lot - 0.03% (2)
lot of work - 0.03% (2)
looking at the - 0.03% (2)
comments photo by - 0.03% (2)
bazel build tensorflow/examples/label_image:label_image - 0.03% (2)
of the operations - 0.03% (2)
cpus and gpus - 0.03% (2)
that it should - 0.03% (2)
think about a - 0.03% (2)
so they can - 0.03% (2)
to give an - 0.03% (2)
what are gpus, - 0.03% (2)
see what you - 0.03% (2)
i’m excited to - 0.03% (2)
model and run - 0.03% (2)
299; const int - 0.03% (2)
have your own - 0.03% (2)
needs assembler hackers - 0.03% (2)
this to the - 0.03% (2)
you have your - 0.03% (2)
need to update - 0.03% (2)
let xcode know - 0.03% (2)
that aren’t needed - 0.03% (2)
know that it - 0.03% (2)
to build the - 0.03% (2)
build the app, - 0.03% (2)
a plain graphdef - 0.03% (2)
file on disk - 0.03% (2)
that the weights - 0.03% (2)
the os can - 0.03% (2)
size of the - 0.03% (2)
to take advantage - 0.03% (2)
slightly different floating - 0.03% (2)
that’s a big - 0.03% (2)
run label_image again - 0.03% (2)
the number of - 0.03% (2)
blog at wordpress.com. - 0.03% (2)

Here you can find chart of all your popular one, two and three word phrases. Google and others search engines means your page is about words you use frequently.

Copyright © 2015-2016 hupso.pl. All rights reserved. FB | +G | Twitter

Hupso.pl jest serwisem internetowym, w którym jednym kliknieciem możesz szybko i łatwo sprawdź stronę www pod kątem SEO. Oferujemy darmowe pozycjonowanie stron internetowych oraz wycena domen i stron internetowych. Prowadzimy ranking polskich stron internetowych oraz ranking stron alexa.