Slashdot Mirror


With TensorFlow, Google Open Sources Its Machine Learning Resources (blogspot.com)

smaxp writes: Google has announced the open source release of TensorFlow, its machine learning software library. "TensorFlow has extensive built-in support for deep learning, but is far more general than that -- any computation that you can express as a computational flow graph, you can compute with TensorFlow (see some examples). Any gradient-based machine learning algorithm will benefit from TensorFlow’s auto-differentiation and suite of first-rate optimizers. And it’s easy to express your new ideas in TensorFlow via the flexible Python interface." This comes alongside some dramatic speed increases (PDF). The code is available at GitHub under an Apache 2.0 license. "Deep learning, machine learning, and artificial intelligence are all some of Google's core competencies, where the company leads Apple and Microsoft. If successful, Google's strategy is to maintain this lead by putting its technology out in the open to improve it based on large-scale adoption and code contributions from the community at large.

37 comments

  1. I'm using it in production by Anonymous Coward · · Score: 5, Funny

    I'm using it in production to learn when Google will discontinue the service and force me to start shopping for an alternative.
    I'm training it using the history of projects such as Knol, Talk, iGoogle, Reader, notebook , Buzz, Labs, Wave, answers, etc.

    If the training works, it may be able to tell me the most likely replacement, before they get bought out and go public.

    1. Re:I'm using it in production by cheater512 · · Score: 1, Insightful

      Erm....it's not a service and it's on Github so you can just download your own copy to use for as long as you wish.

      If you are going to troll, wait for an actual product announcement story, not just a code release story.

    2. Re:I'm using it in production by Anonymous Coward · · Score: 0

      Not really a troll if it's true (and seems like a joke)... And OP can add Latitude to that list. Was very helpful and in its simplicity awesome. And then they killed it.

      It's not like Google don't release something, try to pump it up and then randomly kill it...

  2. Geometry? by Anonymous Coward · · Score: 0

    What is the rationale behind borrowing the name from differential geometry? Can we find any examples in the library where the knowledge of differential geometry is applied to machine learning?

    1. Re:Geometry? by Anonymous Coward · · Score: 1

      google "manifold learning"

    2. Re:Geometry? by hazem · · Score: 2

      It appears TensorFlow allows easy implementation of Neural Networks. You can think of a NN as a network that has tensors (multi-dimensional matrices) flowing across it. I suspect that's where the name comes from.

    3. Re:Geometry? by ceoyoyo · · Score: 1

      Tensors are used in differential geometry, but they're not limited to it. A tensor is just a multidimensional array. TensorFlow is built on a computation graph where tensors (arrays) flow between operations.

  3. 'cuz all right thinking netizens love cats by Thud457 · · Score: 0

    Dog eyes! Dog eyes everywhere!
    Proof the google is evil and inimical to teh intarwebz.

    --

    the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

  4. Can Anyone Explain It To Me by Anonymous Coward · · Score: 2, Interesting

    As in the summary, they claim that Tensorflow is a machine learning software library. That sounds cool and conjures thoughts of artificial or machine intelligence, self learning computers...

    But, the Tensor flow page starts with

    TensorFlow is an open source software library for numerical computation using data flow graphs

    Which sounds very mundane and not at all like artificial intelligence or self learning.

    Can anyone explain what it really is or is capable of and what it is used for?

    1. Re:Can Anyone Explain It To Me by cheater512 · · Score: 1

      AI in movies = exciting.

      AI in real life = horribly boring.

    2. Re:Can Anyone Explain It To Me by Anonymous Coward · · Score: 5, Informative

      As in the summary, they claim that Tensorflow is a machine learning software library. That sounds cool and conjures thoughts of artificial or machine intelligence, self learning computers...

      But, the Tensor flow page starts with

      TensorFlow is an open source software library for numerical computation using data flow graphs

      Which sounds very mundane and not at all like artificial intelligence or self learning.

      Can anyone explain what it really is or is capable of and what it is used for?

      Consider the question: What is learning?

      For example, let's say you sit down on your first day in a biology class. There are microscopes in the lab and lots of pictures of biological stuff; the components of plant and animal cells, magnified microscope slides showing tissues made up of stained cells, etc.

      Now, the professor asks you a question: What is the difference between Prokaryotic cells and Eukaryotic cells?
      You probably don't know, considering you haven't been in a biology class before.

      Eventually you learn these concepts, and attach a name ("prokaryotic") to a concept (i.e.: everything you learned about prokaryotic cells).
      Now the professor can ask the question again: What is a prokaryotic cell? And now you can answer.
      Your brain has mapped an INPUT ("prokaryotic") to an OUTPUT (everything you learned about prokaryotic cells).
      You've learned.

      Machine learning is basically the same thing. We have some input (an image, a sound, a paragraph of text) and we want an output ("this IS/IS NOT a cat", "that IS/IS NOT an English language curse word", "this IS/IS NOT a spam e-mail"). The way computers do this is to learn the shape of mathematical functions.
      It's tricky, because the humans only provide samples of the function space: here's a bunch of cat pictures, here's a bunch of non-cat pictures ... then we ask "Now, what about this random picture that I've never shown you? Is it a cat or not?"

      Google's engine is about getting these samples into mathematical form, and allowing the computer to construct a map of them.
      Once the map is complete, it can be used on novel inputs (i.e.: a random picture, that may or may not contain a cat).

    3. Re:Can Anyone Explain It To Me by lorinc · · Score: 1

      I always think of it more like:

      AI in movies = boring unimaginative stuff

      AI in real life = very exciting maths

    4. Re:Can Anyone Explain It To Me by Anonymous Coward · · Score: 0

      I think of outer space in that way.

    5. Re:Can Anyone Explain It To Me by ceoyoyo · · Score: 1

      It's both. It's a library for numerical computation using data flow graphs. Most people these days use such libraries to implement their machine learning... TensorFlow contains objects that do machine learning, on top of its lower level operations.

  5. Re:Just like Facebook and the rest by Anonymous Coward · · Score: 1

    Just because it's not useful to you, doesn't mean it's not useful to anyone.

  6. Re:Thanks for your efforts, neckbeards by Applehu+Akbar · · Score: 2, Funny

    Now go deliver me a pizza.

    "Did you mean The liberal me appeases? Here is a list of possible liberal appeasers in your neighborhood."

  7. SFTU Siri by Anonymous Coward · · Score: 1

    STFU Siri! I'm sick of your shit.

  8. Dramatic speed increase? by Anonymous Coward · · Score: 1

    It's an interesting library but the poster is getting way ahead of himself, to the point of looking more like marketing or fanboyism than anything else.

    For instance, he claims that TensorFlow comes with "dramatic speed increase" and offers as proof a link to a paper where there is no such proof and, indeed, the 'performance' section contains only the following sentence : "A future version of this white paper will have a comprehensive performance evaluation section of both the single machine and distributed implementations."

    1. Re:Dramatic speed increase? by somenickname · · Score: 5, Interesting

      It's often the case that if you can express your algorithms as directed acyclic graphs, you can get amazing parallelism out of them. Rather than painstakingly programming the algorithm to run in parallel using control flow constructs, you just define your algorithm as a graph, spin up a bunch of threads and tell all the threads to consume any node in the graph whose dependencies have already been computed. This type of thing started to become common in the late 90s with things like the LINPACK benchmarks. It was difficult to get the algorithm to scale well on high CPU count machines but, if you defined it as a directed acyclic graph and then built an algorithm to efficiently consume that graph, the scalability was shockingly good.

      Even outside the AI aspects of the library, it looks cool in that it seems to provide a framework for defining data flow algorithms with the specific intent of reaching a high level of scalability. There have been tools to do this in the past but, they have frequently been clumsy internal tools and geared towards a specific set of algorithms. I've even seen someone heroically define the LINPACK benchmark as a data flow algorithm in SPARC assembly. This stuff seems really cool and fairly accessible.

    2. Re:Dramatic speed increase? by Anonymous Coward · · Score: 0

      Usually when machine learning papers talk about performance the metrics are pretty meaningless anyhow. For example comparing the speed of two algorithms where one is in heavily optimised C and the other in thrown together matlab, or including/not including time to load and preprocess data etc., or only comparing for one or two datasets (it's usually fairly pretty trivial to find a dataset or two to show the result you want, so you can guess which ones end up in the paper). They are also largely irrelevant to the real world where you typically want "fast enough", "reliable", "easy to integrate" and "minimal messing around to make it work".

      IRL the only real way is to try it and see what happens.

    3. Re:Dramatic speed increase? by GiganticLyingMouth · · Score: 1

      There have been tools to do this in the past but, they have frequently been clumsy internal tools and geared towards a specific set of algorithms

      Intel TBB's flow graph does a pretty good job of this.

    4. Re:Dramatic speed increase? by somenickname · · Score: 1

      I've never had the chance to use the Intel TBB stuff but, it looks like it's at least well thought out. The big thing with data flow programming is that it's very difficult to wrap your head around it. I've worked on a number of data flow projects and we've always built graphical tools to actually define the flow and then layout the underlying C/C++/Fortran/Assembly based on the graphs that we've visually created. Effectively, you create a visual programming language to control the flow, then use lower level languages to do the heavy lifting. Maybe TBB has that but, this (http://tensorflow.org/how_tos/graph_viz/index.md) seems like the typical kinds of things all data flow projects end up getting to. Once you go data flow, you realize you need a better editor, a more informative "compiler" and, especially, a better debugger.

    5. Re:Dramatic speed increase? by GiganticLyingMouth · · Score: 1

      I've never used it, but TBB flow graph does have graphical tool as well (https://software.intel.com/en-us/articles/flow-graph-designer). Looks like a two-part profiler and designer -- in their words, the design component "provides the ability to visually create Intel TBB flow graph diagrams and then generate C++ stubs as a starting point for further development."

      That tensorflow graph tool does looks pretty nice though

    6. Re:Dramatic speed increase? by JordanMicahBennett · · Score: 1

      A quite apt package. Albeit, ibm synapse, perhaps, shall effect as an exceedingly optimal distribution.

      --
      http://folioverse.appspot.com/
  9. Did a piece of history just got written? by Anonymous Coward · · Score: 1

    Yet another very interesting move by Google. Am I overenthusiastic? Will this become a reference framework that it's sufficient to learn to stand at the bleeding edge of the latest deep learning techs?
    Right now this field is evolving so fast, there's no reason to commit to a particular library since there's no way to know what data structure / model / training regimen will prove to be superior. Any good framework achieving dominance (lets you quickly try out whatever another team came up) with will do the trick. Google's one of the top dogs in the field and has already made public many deep learning research products. So there's a high chance they'll succeed with this move, right?
    I'm guessing their expected benefit is 1) their own teams just get to stay in known waters 2) good image / attracting talents [ 3) they're the ones that get to father the AI that takes over ]

    1. Re:Did a piece of history just got written? by Gorobei · · Score: 1

      Good analysis of the landscape.

      Google, Facebook, General Motors, Exxon, and 100 other firms need 10,000 people who understand this technology right now. There are current about 500 people who have a clue.

      You start playing with this and ask a smart question on Google search... the magic "you look like a person who might be a Google fit" will appear.

  10. everything is a tree by Anonymous Coward · · Score: 0

    Or rather a graph. The models and computations are represented by an acyclic graph, with standard back propagation being a reverse step through the forward direction of the computation. This is the fundamental and most surprising thing about current ai. It's not computationally surprising, there are no convoluted maths ( but some convolution) and it is cheaper than ever before.

  11. Open Source, but fuck Microsoft by Actually,+I+do+RTFA · · Score: 1

    Maybe I misread the tensor page, but it looks like the installation is linux/mac only? If so, are they open-sourcing it trying tro drive people awya from Windows?

    I mean, it's open source, so if that were the case there would be a Windows version PDQ. But it wouldn't be offical, needing to be updated by a third party.

    --
    Your ad here. Ask me how!
    1. Re: Open Source, but fuck Microsoft by Anonymous Coward · · Score: 0

      Lack of windows support is usually because windows app development is so hard (installing required 3rd party libs. Compilers etc ) and because devs don't use windows themselves and because some things just don't work well in windows (e.g. git was really slow in windows). There are workarounds but if you don't use it you rarely bother to solve it. So if you want it, do it yourself and provide for others..

    2. Re: Open Source, but fuck Microsoft by Anonymous Coward · · Score: 0

      Bazel, the build system they use, doesn't yet have windows support.

  12. What's new? by Anonymous Coward · · Score: 0

    Looks pretty similar to the many other neural net libraries out there -- especially Theano's data flow graphs. But distributed more like Hadoop's DeepLearning4j. And like all the over-hyped "deep learning" tools, it's for running same backprop algorithms that we had in the 1980s... So what the new exciting part then ? Just that's it's production software engineered code rather than a research implementation?

  13. Thank You, But... by Anonymous Coward · · Score: 0

    I'm still not clear on how this is machine learning.

    What you describe sounds, to me, more like categorization or a database lookup against definitions or templates. For example fuzzy hash of picture == cat. Fuzzy hash of next picture also very similar to cat == cat.

    I would have expected machine learning to be more akin to self programming, where the machine develops its own algorithm or functions to complete a new operation that it was not initially programmed to do. For example, it's programmed to recognize a cat and it "learns" to hiss or purr when it sees one.