时间:2024-05-21
宋琳璇
首先我们来解释一下什么是TensorFlow:所谓tensor,就是指張量,在tensorflow中可以被简单理解为多维数组,可用的张量类型包括常数、变量、张量占位符和稀疏张量,表明了它的数据结构。张量的秩是它的维数,而它的形状是一个整数元组,指定了数组中每个维度的长度。张量按NumPy数组的方式进行切片和重构。flow——中文翻译为“流”,直观地表达了张量之间通过计算相互转换的过程。
TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,前身是谷歌的神经网络算法库DistBelief。
Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究。
TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在内的多个项目以及各类应用程序接口(Application Programming Interface,API)。
TensorFlow可以使用C++、python等多门语言进行开发。下面以python版本为例介绍一下tensorflow的版本。TensorFlow提供Python语言下的四个不同版本:CPU版本(tensorflow)、包含GPU加速的版本(tensorflow-gpu),以及它们的每日编译版本(tf-nightly、tf-nightly-gpu)。TensorFlow的Python版本支持Ubuntu 16.04、Windows 7、macOS 10.12.6 Sierra、Raspbian 9.0及对应的更高版本,其中macOS版不包含GPU加速。安装Python版TensorFlow可以使用模块管理工具pip/pip3或anaconda并在终端直接运行。
总的来说呢,TensorFlow 是一个编程系统,使用图来表示计算任务。图中的节点被称之为 op(operation 的缩写)。一个 op 获得 0 个或多个 Tensor,执行计算,产生 0 个或多个 Tensor。每个 Tensor 是一个类型化的多维数组。例如,你可以将一小组图像集表示为一个四维浮点数数组,这四个维度分别是 [batch,height,width,channels]。
一个 TensorFlow 图描述了计算的过程。为了进行计算,图必须在 会话 里被启动.会话 将图的 op 分发到诸如 CPU 或 GPU 之类的 设备 上,同时提供执行 op 的方法。这些方法执行后,将产生的 tensor 返回.在 Python 语言中,返回的 tensor 是 numpy ndarray 对象;在 C 和 C++ 语言中,返回的 tensor 是 tensorflow::Tensor 实例。
接下来我们介绍一下CPU和GPU设备:TensorFlow支持CPU和GPU运行,在程序中设备使用字符串进行表示。CPU表示为”/cpu:0”;第一个GPU表示为”/device:GPU:0”;第二个GPU表示为”/device:GPU:1”,以此类推。如果TensorFlow指令中兼有CPU和GPU实现,当该指令分配到设备时,GPU设备有优先权。TensorFlow仅使用计算能力高于3.5的GPU设备。
TensorFlow在很多地方可以应用,如语音识别,自然语言理解,计算机视觉,广告等等。TensorFlow是一个非常灵活的框架,它能够运行在个人电脑或者服务器的单个或多个CPU和GPU上,甚至是移动设备上。
TensorFlow 内建深度学习的扩展支持,任何能够用计算流图形来表达的计算,都可以使用TensorFlow。任何基于梯度的机器学习算法都能够受益于TensorFlow的自动分化(auto-differentiation)。通过灵活的Python接口,要在TensorFlow中表达想法也会很容易。TensorFlow 对于实际的产品也是很有意义的。将思路从桌面GPU训练无缝搬迁到手机中运行。所以TensorFlow的意义是非常深远和重大的。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!