Google开放了一个可用于广泛并行计算的工具,其中包括实现神经网络和其他AI学习方法。
Google正在进行的有关AI的研究的一部分一直在寻找方法,以利用强大的计算工具来实施苛刻的AI技术。例如,神经网络可能相当简单,但是考虑到典型网络的层数和神经元数量,结果甚至是利用训练有素的网络也会导致大量的数字运算。在培训方面,可能需要几天或几周的时间,如果我们要找到更好的工作方式,我们需要能够更快地尝试其他事情。
Google已经实现了一个分布式培训系统的实现,该系统利用了许多称为DistBelief的GPU和CPU。这被用来训练最近引起头条新闻的所有Google神经网络-请参阅“相关文章”。
这行得通,但它专门针对神经网络,并因难以配置而享有盛誉。现在,谷歌已经创建并开源了一个替代品-TensorFlow。
虽然这被报告为AI实现工具,但实际上它是用于分布式计算的通用工具。这更像是Hadoop,用于解决真正困难的问题,而不仅仅是减少映射,它的运行速度是DistBelief的两倍,并且在Google常规使用中也是如此。
TensorFlow的关键及其名称的原因是,它采用了一个流程图,其中的弧对应于张量,节点为张量算子。
如果高端术语“张量”使您感到困惑,请不要担心。在这种情况下,张量只是多维数组。InTensorFlow中的所有数据都是多维数组,并且所有运算符都将张量组合在一起以产生新的张量。
矩阵乘法是一个熟悉的张量运算,这就是您在Python中使用TensorFlow的方式。
将tensorflow作为tf#导入创建一个产生1x2矩阵的Constant op。#将op作为节点添加到默认图形。##构造函数返回的值表示#Constant op的输出#。 matrix1 = tf.constant([[3。,3。]])#创建另一个常数,该常数产生#2x1矩阵。 matrix2 = tf.constant([[2。],[2。]])#创建一个Matmul op,它以#“ matrix1”和“ matrix2”作为输入。#返回值乘积代表矩阵的#结果#乘法。产品= tf.matmul(矩阵1,矩阵2)如果您可以将计算表示为流程图,那么TensorFlow将为您实现它。这意味着与神经网络一样,您也可以使用它来执行诸如求解偏微分方程和计算Mandelbrot集的操作。
TensorFlow的本地语言是C ++,这是您要实现新的张量运算符时必须使用的语言。但是,如果您只想使用可用的运算符,那么Python是一个更好的选择,因为有很多辅助函数,并且可以使用交互式iPython(Jupyter)笔记本。希望开源社区将贡献更多和改进的语言绑定和环境。
已经发布的TensorFlow版本并不完全是Google拥有的完整系统。它只能在单台计算机上运行,而不能在Google用于执行其AI的那种服务器场上运行。承诺将来会发布完整版本,但目前TensorFlow将利用单台计算机上可用的其他CPU和GPU。所需要做的就是安装CUDA以使其与您的计算机的GPU兼容,这意味着它将与大多数硬件兼容。
乍一看,计算资源的管理似乎并不十分复杂。如果有一个GPU,它将被自动使用,但是如果您有多个GPU,则必须手动将它们分配给特定的节点。即使这样,这也使非专业人员可以更轻松地使用并行计算,这意味着您可以使用笔记本电脑或台式机来训练大型神经网络。
值得一提的是,虽然它是通用的数字处理系统,但确实具有专门针对神经网络的功能。例如,它具有一个自动微分运算符,可以为神经网络模型找到梯度。提供了几种标准模型,但没有提供可实现ImageNet惊人结果的模型-但这也是未来的承诺。
关于TensorFlow项目的值得注意的事情之一是文档非常出色。真的很好很多容易理解的例子,以及很多很好的解释。这增加了TensorFlow被编程和/或AI新手使用的机会。
Google已根据Apache 2.0许可将TensorFlow开源,这一事实确实是个好消息-即使Google一直控制着该项目。还有其他选择,例如Torch,Caffe和Theano,但TensorFlow具有灵活性,可以涵盖培训和使用所需的硬件范围。然而,可以说,谷歌是该项目的幕后推手,这可能是其最大的吸引力所在。鉴于Google的AI团队使用TensorFlow并获得了有用且令人印象深刻的结果,TensorFlow附带了您确实无法忽略的建议。
这可能是将复杂的AI技术广泛传播到“日常”编程中的开始。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。