Hacker News new | ask | show | jobs
by staticmalloc 3817 days ago
There are three reasons Google open-sourced TensorFlow:

1. Their stated reason.

2. Branding. Google likes to show off advanced products that aren'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.

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.

4 comments

The free labor argument isn't particularly compelling in this case. Academic researchers focus on publishing their results in papers, and published neural network architectures are comparatively trivial to port between software platforms.

Even when code is published, it's a few hours work to copy a (say) Torch based architecture to TensorFlow - indeed most platforms import (and export?) Caffe-style (ProtoBuf based) model descriptions.

> Branding. Google likes to show off advanced products that aren'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.

Project Soli doesn't seem remotely analogous. One project is an open source library that is being run as an open source library and works today, but (so far) holds back a killer feature. The other is a product concept video.

4. (Which is related to 2) Screening college graduates. By releasing "toy" versions of their stuff, they get professors and students using their tools for projects, so when they go to interview with Google, Google already has some data on whether they are using the tools well, and it drives those kids towards google so they can work on "the real thing". It's a great strategy.
Plus 5. Devs learn to use their tool. So when they hire the bests devs (hopefully) elsewhere, they already know how to use their tool without requiring any training time.
Add "bazel" to this growing list. Blaze (the real thing) is a great build tool, the best. But they kept the distributed engine for themselves, rendering Bazel useless. So far, they have done the same thing with TensorFlow - kept the distributed engine proprietary.
I wouldn't call it "useless". It's less useful than the internal distributed version, sure, but it does offer value: a drop dead simple build file syntax that can be learned in 15 minutes and then just works.
Useless is a bit harsh, but judging by Bazel's uptake, that's the "market's" take on Bazel.
What did you expect, it's only been a few months. There's tremendous inertia when it comes to build systems, people don't change them on a whim.
With the fancy distributed bits what's the win I get using Bazel? Maybe it's simpler, but if I already know another system then why switch?
Simple, repeatable builds, almost no learning curve. I do agree that this is a vastly less potent value proposition than "build your C++ in minutes instead of hours", but it's a start. I think Google will offer the distributed cloud piece for this at some point. They'd be stupid not to.
It takes years for a new build format to be widely used.

There are many more important thing holding up wider adoption before the lack of distributed support becomes a issue: Windows support, how hard it is to get working on ARM, etc etc.

TensorFlow is it's own thing.

This seems to be a big problem for some people, but if you can stick 8 GPUs in a box with two 12 core CPU's and a 450000 IIOPS TB "disk" it seems to me that you have something interesting for Tensorflowing over.