TensorFlow windows是由google开发的而一款机器学习系统,内建深度学习的扩展支持,可以用计算流图形来表达计算,通过灵活的python接口,让您的想法在TensorFlow中表达的更准确。软件兼容性强,功能强大,需要的朋友快快下载吧!
TensorFlow介绍
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
TensorFlow特点
谷歌于 22 日通过开发者博客正式发布了一个基于 TensorFlow 的全新功能组件 —— tf.Transform。它允许用户在大规模数据处理框架中定义预处理流水线(preprocessing pipelines),同时用户还可以将这些流水线导出,并将其作为 TensorFlow 计算图(TensorFlow graph)的一部分。
用户可以通过组合 Python 函数来定义该流水线,然后在 Apache Beam 框架下通过 tf.Transform 执行。
注:Apache Beam 是一个用于大规模的、高效的、分布式的数据处理的开源框架)目前,基于 Apache Beam 框架的流水线可以在 Google Cloud Dataflow 平台上运行,并计划在未来支持更多的平台(可能包括 Apache Apex,Apache Flink 和 Apache Spark 等)。值得一提的是,通过 tf.Transform 导出的 TensorFlow 计算图还可以在模型预测阶段将这种数据预处理步骤复用(例如,通过 Tensorflow Serving 提供模型时)。
另一方面,开发者最终在产品形态运行机器学习模型时通常还会遇到“训练服务偏差”(training-serving skew),即由于服务中处理的数据与模型训练中使用的数据存在一定的差异,从而造成的预测质量下降。
面对这一问题,此次新发布的 tf.Transform 组件还能保证预处理过程的零偏差,即保证服务中的数据预处理和训练中的数据预处理执行完全相同的操作,特别是当模型训练和服务运行在不同的框架时,例如训练在 TensorFlow,服务在 Apache Beam 的情况。
除了便于数据的预处理之外,tf.Transform 还允许用户计算其数据集的统计概要(summary statistics)。对于每个机器学习项目的开发者而言,深刻理解其数据都非常重要,因为任何对底层数据做出的错误假设都可能会产生一些微妙的错误。通过更简单和高效地计算数据的统计概要,tf.Transform 可以帮助开发者更好地检查他们关于原始数据和预处理数据的假设。
最后,谷歌在博客中表示,对于 tf.Transform 的发布他们感到非常激动,他们真诚地希望 tf.Transform 可以帮助 TensorFlow 开发者们更方便地预处理数据,以及更好地理解这些数据。
TensorFlow功能
1、高度的灵活性
TensorFlow 不是一个严格的“神经网络”库。只要你可以将你的计算表示为一个数据流图,你就可以使用Tensorflow。你来构建图,描写驱动计算的内部循环。我们提供了有用的工具来帮助你组装“子图”(常用于神经网络),当然用户也可以自己在Tensorflow基础上写自己的“上层库”。定义顺手好用的新复合操作和写一个python函数一样容易,而且也不用担心性能损耗。当然万一你发现找不到想要的底层数据操作,你也可以自己写一点c++代码来丰富底层的操作。
2、真正的可移植性(Portability)
Tensorflow 在CPU和GPU上运行,比如说可以运行在台式机、服务器、手机移动设备等等。想要在没有特殊硬件的前提下,在你的笔记本上跑一下机器学习的新想法?Tensorflow可以办到这点。准备将你的训练模型在多个CPU上规模化运算,又不想修改代码?Tensorflow可以办到这点。想要将你的训练好的模型作为产品的一部分用到手机app里?Tensorflow可以办到这点。你改变主意了,想要将你的模型作为云端服务运行在自己的服务器上,或者运行在Docker容器里?Tensorfow也能办到。Tensorflow就是这么拽 :)
3、将科研和产品联系在一起
过去如果要将科研中的机器学习想法用到产品中,需要大量的代码重写工作。那样的日子一去不复返了!在Google,科学家用Tensorflow尝试新的算法,产品团队则用Tensorflow来训练和使用计算模型,并直接提供给在线用户。使用Tensorflow可以让应用型研究者将想法迅速运用到产品中,也可以让学术性研究者更直接地彼此分享代码,从而提高科研产出率。
4、自动求微分
基于梯度的机器学习算法会受益于Tensorflow自动求微分的能力。作为Tensorflow用户,你只需要定义预测模型的结构,将这个结构和目标函数(objective function)结合在一起,并添加数据,Tensorflow将自动为你计算相关的微分导数。计算某个变量相对于其他变量的导数仅仅是通过扩展你的图来完成的,所以你能一直清楚看到究竟在发生什么。
5、多语言支持
Tensorflow 有一个合理的c++使用界面,也有一个易用的python使用界面来构建和执行你的graphs。你可以直接写python/c++程序,也可以用交互式的ipython界面来用Tensorflow尝试些想法,它可以帮你将笔记、代码、可视化等有条理地归置好。当然这仅仅是个起点——我们希望能鼓励你创造自己最喜欢的语言界面,比如Go,Java,Lua,Javascript,或者是R。
6、性能最优化
比如说你又一个32个CPU内核、4个GPU显卡的工作站,想要将你工作站的计算潜能全发挥出来?由于Tensorflow 给予了线程、队列、异步操作等以最佳的支持,Tensorflow 让你可以将你手边硬件的计算潜能全部发挥出来。你可以自由地将Tensorflow图中的计算元素分配到不同设备上,Tensorflow可以帮你管理好这些不同副本。