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.

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

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

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

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