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.

22 of 37 comments (clear)

  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. 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 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.

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

    google "manifold learning"

  4. 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.

  5. 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."

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

    STFU Siri! I'm sick of your shit.

  7. 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 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.

    3. 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.

    4. 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

    5. 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/
  8. 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.

  9. 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!
  10. 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.

  11. 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.