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.

2 of 37 comments (clear)

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

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