什么是 TensorFlow? 它是如何工作的[带有示例]

已发表: 2021-09-22

TensorFlow 是一个用于构建机器学习模型的开源库。 对于热衷于使用机器学习和人工智能的人来说,这是一个令人难以置信的平台。 此外,随着机器学习市场的稳步增长,随着科技公司探索人工智能技术的多样化功能,TensorFlow 等工具也成为人们关注的焦点。 毫无疑问,到 2027 年,全球机器学习市场的估值预计将达到 1171.9 亿美元

但首先,有必要了解什么是 TensorFlow ,以及是什么让它成为全球开发人员的热门选择。

目录

什么是 TensorFlow?

TensorFlow 是一个用于机器学习的端到端开源平台,特别关注深度神经网络。 深度学习是机器学习的一个子集,涉及对大规模非结构化数据的分析。 深度学习与传统机器学习的不同之处在于后者通常处理结构化数据。

TensorFlow 拥有灵活而全面的库、工具和社区资源集合。 它允许开发人员构建和部署最先进的机器学习驱动的应用程序。 TensorFlow 的一大优点是它使用 Python 提供方便的前端 API 来构建应用程序,同时在高性能、优化的 C++ 中执行它们。

Google Brain 团队最初开发了TensorFlow Python深度学习库供内部使用。 从那时起,开源平台在研发和生产系统中的使用有了巨大的增长。

一些 TensorFlow 基础知识

现在我们对什么是 TensorFlow有了基本的了解,时候深入了解有关该平台的更多细节了。

以下是与 TensorFlow 相关的一些基本概念的简要概述。 我们将从张量开始——TensorFlow 的核心组件,平台由此得名。

张量

TensorFlow Python深度学习库中,张量是表示数据类型的数组。 与一维向量或数组或二维矩阵不同,张量可以有n维。 在张量中,这些值包含具有已知形状的相同数据类型。 形状代表维度。 因此,向量是一维张量,矩阵是二维张量,标量是零维张量。

张量

资源

形状

TensorFlow Python库中,形状是指张量的维度。

在 TensorFlow Python 库中,形状是指张量的维度。

资源

在上图中,张量的形状为 (2,2,2)。

类型

类型表示张量中的值所持有的数据类型。 通常,张量中的所有值都具有相同的数据类型。 TensorFlow 中的数据类型如下:

  • 整数
  • 浮点
  • 无符号整数
  • 布尔值
  • 字符串
  • 具有量化操作的整数
  • 复数

图形

图是在输入张量上连续发生的一组计算。 它包括表示模型中数学运算的节点排列。

会议

TensorFlow 中的会话执行图中的操作。 运行它以评估图中的节点。

运营商

TensorFlow 中的运算符是预定义的数学运算。

张量如何工作?

在 TensorFlow 中,数据流图描述了数据如何通过一系列处理节点。 TensorFlow 使用数据流图来构建模型。 TensorFlow 中的图形计算是通过张量之间的互连来促进的。

将 n 维张量作为输入馈送到神经网络,该神经网络经过多次操作以给出输出。 这些图有一个节点网络,其中每个节点代表一个数学运算。 但是节点之间的边是多维数据数组或张量。 TensorFlow 会话允许执行图形或图形的一部分。 为此,会话在一台或多台机器上分配资源并保存中间结果和变量的实际值。

张量函数

资源

TensorFlow 应用程序几乎可以在任何方便的目标上运行,可以是 CPU、GPU、云中的集群、本地机器或 Android 和 iOS 设备。

TensorFlow 计算图

TensorFlow 中的计算图是一个节点网络,其中每个节点操作乘法、加法或计算某些多元方程。 在 TensorFlow 中,编写代码来创建图、运行会话和执行图。 我们分配的每个变量都成为一个节点,我们可以在其中执行乘法和加法等数学运算。

下面是一个简单的例子来展示计算图的创建:

假设我们要执行计算:F(x,y,z) = (x+y)*z。

三个变量 x、y 和 z 将转换为下图中的三个节点:

TensorFlow 计算图

资源

构建图的步骤:

步骤 1:分配变量。 在此示例中,值为:

x = 1,y = 2,z = 3

第 2 步:添加 x 和 y。

第 3 步:将 z 乘以 x 和 y 的总和。

最后,我们得到的结果是“9”。

除了我们分配变量的节点外,该图还有两个节点——一个用于加法运算,另一个用于乘法运算。 因此,总共有五个节点。

TensorFlow 中的基本编程元素

在 TensorFlow 中,我们可以将数据分配给三种不同类型的数据元素——常量、变量和占位符。

让我们看看这些数据元素中的每一个代表什么。

1. 常数

从名称可以看出,常量是具有不变值的参数。 在 TensorFlow 中,使用命令tf.constant()定义常量 在计算过程中,常数的值不能改变。

这是一个例子:

c = tf.constant(2.0,tf.float32)

d = tf.constant(3.0)

打印 (c,d)

2.变量

变量允许向图形添加新参数。 tf.variable ()命令定义了一个在会话中运行图形之前必须初始化的变量。

这是一个例子:

Y = tf.Variable([.4],dtype=tf.float32)

a = tf.Variable([-.4],dtype=tf.float32)

b = tf.placeholder(tf.float32)

线性模型 = Y*b+a

3.占位符

使用占位符,可以从外部将数据输入模型。 它允许稍后分配值。 命令tf.placeholder()定义了一个占位符。

这是一个例子:

c = tf.placeholder(tf.float32)

d = c*2

结果 = sess.run(d,feed_out={c:3.0})

占位符主要用于输入模型。 使用变量名(上例中的变量名是 feed_out)将来自外部的数据馈送到图形中。 随后在运行会话时,我们指定如何将数据提供给模型。

会话示例:

图的执行是通过调用会话来完成的。 运行一个会话来评估图形的节点,称为 TensorFlow 运行时。 命令sess = tf.Session()创建一个会话。

例子:

x = tf.constant(3.0)

y = tf.constant(4.0)

z = x+y

sess = tf.Session() #启动会话

print(sess.run(z)) #评估张量z

在上面的示例中,有三个节点——x、y 和 z。 节点“z”是进行数学运算的地方,随后得到结果。 在创建会话并运行节点 z 后,首先将创建节点 x 和 y。 然后,加法操作将在节点 z 处进行。 因此,我们将获得结果“7”。

借助 upGrad 提升您在 ML 和深度学习方面的职业发展

寻找了解更多关于什么是 TensorFlow的最佳地点 那么upGrad将在您的学习之旅中为您提供帮助。

upGrad 的学习者基础覆盖 85 多个国家/地区,是南亚最大的高等教育科技平台,已影响全球超过 500,000 名在职专业人士。 凭借世界一流的教师、与行业合作伙伴的合作、最新的技术和最新的教学实践,upGrad 确保为其全球 40,000 多名付费学习者提供有益健康和身临其境的学习体验。

机器学习和深度学习高级证书课程是一学术严谨且与行业相关的 6 个月课程,涵盖深度学习的概念。

节目亮点:

  • 来自 IIIT 班加罗尔的声望认可
  • 240 多个小时的内容,包括 5 个以上的案例研究和项目、24 个以上的现场会议和 15 个以上的专家辅导课程
  • 全面覆盖 12 种工具、语言和库(包括 TensorFlow)
  • 360 度职业帮助、指导课程和点对点网络机会

upGrad 的机器学习和人工智能理学硕士课程为期 18 个月,面向那些希望通过先进的机器学习和云技术学习和提升自身技能的人。

节目亮点:

  • 利物浦约翰摩尔斯大学和印度理工学院马德拉斯分校享有盛誉
  • 650 多个小时的内容,包括 25 多个案例研究和项目、20 多个现场会议和 8 多个编码作业
  • 全面覆盖 7 种工具和编程语言(包括 TensorFlow)
  • 360 度职业帮助、指导课程和点对点网络机会

结论

机器学习和人工智能不断发展。 曾经科幻电影的主题现在已成为现实。 从 Netflix 电影推荐和虚拟助手到自动驾驶汽车和药物发现,机器学习影响着我们生活的方方面面。 此外,借助 TensorFlow 等工具,机器学习的创新达到了新的高度。 开源库无疑是开发人员和创新机器学习驱动技术的新兴专业人士的福音。

你还在等什么? 今天就开始与 upGrad 一起学习吧!

TensorFlow 是用来做什么的?

TensorFlow Python 是一个开源平台,可让开发人员创建大规模的神经网络。 TensorFlow 的一些主要用例包括基于文本的应用程序(例如欺诈检测)、语音识别、图像识别、视频检测和时间序列数据分析。

TensorFlow 是用 Python 还是 C++ 编写的?

TensorFlow 允许使用 Python、R、C 和 C++ 等各种语言来实现前端 API。 但是,TensorFlow 中的运行时是使用 C++ 语言编写的。

TensorFlow 需要编码吗?

由于 TensorFlow 是一个用于机器学习的开源库,因此需要掌握四个核心领域。 虽然编码技能是必须的,但机器学习教育的其他关键组成部分是数学和统计学、机器学习理论以及从头开始构建机器学习项目的实践经验。