楼主: 时光永痕
708 0

[数据挖掘新闻] TensorFlow 1.x和2.x –变更摘要 [推广有奖]

  • 0关注
  • 14粉丝

svip3

学术权威

12%

(VIP/贵宾)三级

54%

威望
0
论坛币
26 个
通用积分
49.7576
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
34070 点
帖子
2731
精华
0
在线时间
316 小时
注册时间
2020-7-21
最后登录
2024-4-28

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
TensorFlow 1.x和2.x –变更摘要
TensorFlow 1.0与TensorFlow 2.0的更改概述
Google于今年早些时候发布了TensorFlow 2.0,这是对现有TensorFlow 1.0的重大飞跃。关键区别如下:
易于使用:删除了许多旧库(例如tf.contrib),并对其中的一些库进行了合并。例如,在TensorFlow1.x中,可以使用Contrib,图层,Keras或估算器来建立模型,因此同一任务的许多选项使许多新用户感到困惑。TensorFlow 2.0促进了TensorFlow Keras的模型实验和Estimators的扩展服务,这两个API的使用非常方便。
急切执行:在TensorFlow 1.x中。代码的编写分为两个部分:构建计算图和稍后创建一个会话以执行它。这非常麻烦,特别是如果在您设计的大型模型中,开始时存在某个小错误。TensorFlow2.0急切执行默认情况下已实现,即您不再需要创建会话来运行计算图,而无需创建Session即可直接查看代码的结果。
建立模型和部署变得容易:   借助TensorFlow2.0提供高级TensorFlow Keras API,用户在创建模型时具有更大的灵活性。可以使用Keras功能或顺序API定义模型。TensorFlow Estimator API允许您在本地主机或分布式多服务器环境上运行模型,而无需更改模型。计算图在性能方面非常强大,在TensorFlow 2.0中,您可以使用装饰器tf.function因此,以下功能块将作为单个图形运行。这是通过TensorFlow 2.0强大的Autograph功能完成的。这使用户可以优化功能并增加可移植性。最好的部分是您可以使用自然的Python语法编写函数。有效地,您可以使用装饰器tf.function将普通的Python代码转换为图形。装饰器@ tf.function紧随其后应用到功能块时,任何调用的功能通过它也将在图形模式下执行。因此,在TensorFlow 2.0中,用户应将其代码重构为较小的函数,并根据需要调用这些函数。通常,没有必要用tf.function装饰每个较小的功能;仅使用tf.function装饰高级计算-例如,训练的一个步骤或模型的前向传递。(源堆栈溢出和TF2文档)
为了扩展这个想法,在TensorFlow 1.x中,我们需要构建计算图。TensorFlow 2.0默认情况下不会构建图形。但是,正如每个机器学习工程师都知道的那样,图形对速度很有好处。TensorFlow 2.0为用户提供了使用python函数@ tf.function创建可调用图形的功能。tf.function()将为每个唯一的输入形状和数据类型集创建一个单独的图形。在下面的示例中,我们将创建三个单独的图形,每个输入数据类型一个。
@ tf.function
def f(x):返回tf.add(x,1.)
标量= tf.constant(1.0)
向量= tf.constant([1.0,1.0])
矩阵= tf.constant([[3.0]])
打印(f(标量))
打印(f(矢量))
打印(f(矩阵))
简化的数据管道:TensorFlow2.0有一个单独的模块TensorFlow DataSet,可用于以更优雅的方式与模型一起使用。它不仅具有大量现有数据集,还使您在尝试使用新架构时的工作变得更加轻松-它还具有定义明确的方式向其中添加数据。
在用于构建模型的TensorFlow 1.x中,我们首先需要声明占位符。这些是虚拟变量,这些变量稍后(在会话中)将用于向模型提供数据。有许多内置的API用于构建tf.contrib,tf.layers和tf.keras等层,也可以通过定义实际的数学运算来构建层。
与使用数学模块(tf.math)和线性代数(tf.linalg)模块之前一样,您可以使用TensorFlow 2.0建立定义自己的数学运算的模型。但是,您可以利用高级Keras API和tf.layers模块。重要的部分是我们不再需要定义占位符。
TensorFlow 2.0的简化概念图
TensorFlow 2.0的简化概念图如下所示
来源:https://medium.com/tensorflow/whats-coming-in-tensorflow-2-0-d36638 ...
一些要点是:
使用data加载  数据。使用使用tf.data创建的输入管道读取训练数据。
使用TensorFlow数据集可获取各种各样的数据集以训练您的模型。
使用keras构建,训练和验证模型  ,或使用  Estimators API。
TensorFlow生态系统中的TensorFlow Hub包含大量预先训练的模型,使用标准界面,您可以从TensorFlow Hub导入任何模型并从头开始训练它,或者使用转移学习技术对其进行微调。
渴望执行即可运行和调试  ,然后使用  function来获得图形的好处。
使用分发策略进行分布式培训。对于大型ML训练任务,  Distribution Strategy API使您可以轻松地在不同的硬件配置上分发和训练模型,而无需更改模型定义。您可以将训练负载分配给一系列硬件加速器,例如CPU,GPU和TPU
尽管此API支持多种集群配置,但提供了  用于在本地  或云环境中的Kubernetes集群上部署培训的  模板。
导出到SavedModel。TensorFlow将在SavedModel上标准化,作为TensorFlow Serving,TensorFlow Lite,TensorFlow.js,TensorFlow Hub等的交换格式。
训练并保存模型后,您可以在应用程序中直接执行它,也可以使用以下部署库之一提供服务:TensorFlow Serving:一个TensorFlow库,允许通过HTTP / REST或gRPC / Protocol Buffers提供模型。TensorFlow Lite:TensorFlow的轻量级移动和嵌入式设备解决方案提供了在Android,iOS和Raspberry Pi和Edge TPU等嵌入式系统上部署模型的功能。js:允许在JavaScript环境中(例如,通过Node.js在Web浏览器或服务器端)部署模型。TensorFlow.js还支持使用JavaScript定义模型并使用类似Keras的API在Web浏览器中直接进行训练。
以上部分改编自https://medium.com/tensorflow/whats-coming-in-tensorflow-2-0-d36638 ...
观察结果
一方面,Tensorflow 2.0并不新鲜。可能是因为即使在Tensorflow 1.0时代,几乎每个人都在使用keras!。Keras现在是Tensorflow 2.0的核心,但是Tensorflow 2.0具有更多的功能,如上所述。

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Tensor flow SOR LOW ten

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-30 17:27