TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Paper review: TensorFlow, Machine Learning on Heterogeneous Distributed Systems

90 pointsby mad44over 9 years ago

5 comments

nlover 9 years ago
<i>I think Google has designed and developed TensorFlow as a Maui-style integrated code-offloading framework for machine learning. What is Maui you ask? (Damn, I don&#x27;t have a Maui summary in my blog?)<p>Maui is a system for offloading of smartphone code execution onto backend servers at method-granularity. The system relies on the ability of managed code environment (.NET CLR) to be run on different platforms. By introducing this automatic offloading framework, Maui enables applications that exceed memory&#x2F;computation limits to run on smartphones in a battery- &amp; bandwidth-efficient manner.<p>TensorFlow enables cloud backend support for machine learning to the private&#x2F;device-level machine learning going on in your smartphone. It doesn&#x27;t make sense for a power-hungry entire TensorFlow program to run on your wimpy smartphone. Your smartphone will be running only certain TensorFlow nodes and modules, the rest of the TensorFlow graph will be running on the Google cloud backend. Such a setup is also great for preserving privacy of your phone while still enabling machine learned insights on your Android.</i><p>I don&#x27;t see any real evidence of this in the paper, code or examples. Certainly running it it doesn&#x27;t feel like it is designed to operate over high-latency connections like that.<p>Instead, I think TensorFlow is deigned to work on mobile so that it is comparatively easy for a pre-trained model to be deployed and run on a constrained mobile environment.<p>That&#x27;s what Google did for the Android voice recognition model (although that was pre-TensorFlow), and they have released a pre-trained image classification model that runs on TensorFlow.
评论 #10884165 未加载
评论 #10886599 未加载
WestCoastJustinover 9 years ago
&gt; 9.2 Performance Tracing - <i>We also have an internal tool called EEG (not included in the initial open source release in November, 2015) that we use to collect and visualize very fine-grained information about the exact ordering and performance characteristics of the execution of TensorFlow graphs. This tool works in both our single machine and distributed implementations, and is very useful for understanding the bottlenecks in the computation and communication patterns of a TensorFlow program.</i><p>The flow graphs look very similar to a talk given by Dick Sites [2, 3], where he talks about performance monitoring across the Google fleet. Highly recommend watching this if you are at all interested in performance monitoring (he has a clear passion and deep understanding in this area). What&#x27;s really interesting about this talk, is that it appears Google engineers do not need to bake this into their distributed applications, it works at the OS level, along with supporting tracing systems (tagging, log collections, aggregation into a central tool, analytics, etc [4 - Dapper]). So, you get it for free basically if you are running in the Google environment. Compare this with something you want to debug outside of Google, you need to add all types of debug bits into your code, and then do the analysis in your own little silo. Very thought provoking idea. I think this is why they are not releasing it. This is a guess based off a few things I&#x27;ve read though. So, I could be wrong.<p>ps - if you want to get really crazy about this, you might read into this that they &quot;would like to&quot; or &quot;have built&quot; their own CPUs, to address some of the limitations they see from the talk.<p>[1] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Electroencephalography" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Electroencephalography</a><p>[2] <a href="http:&#x2F;&#x2F;www.pdl.cmu.edu&#x2F;SDI&#x2F;2015&#x2F;slides&#x2F;DatacenterComputers.pdf" rel="nofollow">http:&#x2F;&#x2F;www.pdl.cmu.edu&#x2F;SDI&#x2F;2015&#x2F;slides&#x2F;DatacenterComputers.p...</a><p>[3] <a href="https:&#x2F;&#x2F;vimeo.com&#x2F;121396406" rel="nofollow">https:&#x2F;&#x2F;vimeo.com&#x2F;121396406</a><p>[4] <a href="http:&#x2F;&#x2F;static.googleusercontent.com&#x2F;media&#x2F;research.google.com&#x2F;en&#x2F;&#x2F;pubs&#x2F;archive&#x2F;36356.pdf" rel="nofollow">http:&#x2F;&#x2F;static.googleusercontent.com&#x2F;media&#x2F;research.google.co...</a>
staticmallocover 9 years ago
There are three reasons Google open-sourced TensorFlow:<p>1. Their stated reason.<p>2. Branding. Google likes to show off advanced products that aren&#x27;t fully developed in order to elevate their brand and recruit engineers (even though most do not work on such products). Project Soli is the best example of this: the product video shows off a small radar and some range-doppler video, but it does not show complicated gesture recognition capabilities, which is the hardest part.<p>3. Free labor. Deep learning algorithms require a ton of data in order to not overfit to the training data. Google has tons of data while academic researchers do not. If Google gets researchers to develop new algorithms that work well on smaller amounts of data and the researchers develop their algorithms in TensorFlow, then Google can easily incorporate the work into their own products and make it better.
评论 #10884084 未加载
评论 #10884014 未加载
评论 #10884009 未加载
评论 #10883864 未加载
domdipover 9 years ago
The stated reason for extending this to phones was so that they could reuse these models for inference purposes. I&#x27;m not sure what this post adds to that (the author seems to miss that point).
PascLeRascover 9 years ago
I don&#x27;t see the justification for criticizing &quot;shoehorning Tensorflow to run on a wimpy phone&quot;. Phones today are nearly as powerful or more [1] than laptops. Mobile and laptop processor speeds are outpacing network speeds, so it&#x27;s often faster for a program&#x2F;game to be able to run these tests locally rather than send data to a server. In addition, you might use Tensorflow more for the ease of use and pre-implemented strutures rather than simple speed, like the Python vs C argument, so not all use cases will be for huge data-crunching.<p>[1] <a href="http:&#x2F;&#x2F;fossbytes.com&#x2F;iphone-6s-is-more-powerful-than-the-new-apple-macbook-test-shows&#x2F;" rel="nofollow">http:&#x2F;&#x2F;fossbytes.com&#x2F;iphone-6s-is-more-powerful-than-the-new...</a>