Google开源新一代深度学习系统TensorFlow

Google开源新一代深度学习系统TensorFlow

图片描述

TensorFlow是Google用于研究深层神经网络技术,以及对相关产品做机器学习训练的新一代深度学习系统,日前以Apache 2.0许可开源。

Google在此之前的一代深度学习系统名为DistBelief,它易于扩展,能对几种基本模型做训练,但对科研工作者来说,DistBelief却不够灵活。随着Google对相关问题理解逐渐深入,令他们有能力对系统做大幅精简和重新架构。

TensorFlow核心以C++写成,前端支持Python和C++,并且容易扩展对其他语言的支持,例如Jeff Dean说Google内部已经有人在实现Go接口。

一个Python示例如下:

$ python

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print sess.run(a+b)
42
>>>

在这套系统中,计算过程是一张数据流图(Dataflow Graph),节点(Node,也称为Operation)由张量(Tensor)连接——TensorFlow正得名于此。

图片描述

整个系统是分布式的,不同节点可映射到不同主机上(包括手机到超级计算机),或者将不同数据,分别在CPU和GPU中计算。

其灵活体现在:

  1. TensorFlow是一套通用计算架构:
    • “深度学习”由系统核心之上的一组库支持
    • 对其他机器学习算法同样适用
    • 能应付高性能计算(HPC)任务
    • 抽象能力强,隐藏了底层设备和硬件,又可在需要时暴露
  2. 易于扩展:
    • 核心系统定义了一组标准Operation及Kernel(与设备相关的操作实现)
    • 易于定义新的Operation及Kernel

这套系统最初由Google Brain Team的工程研发,为何Google选择将其开源而非雪藏?Google的文章说,他们认为,“机器学习”是未来创新产品和技术的关键,但这个领域的研究者长期以来都缺乏通用的工具,将这套目前最好的机器学习工具公诸于众,目的就是为了打造一套开放标准,让这个领域的研究者,可以更有效率的开展研究并交流思想。

Comments are closed.