APP下载

TensorFlow 2.0标准化模型交换格式强化部署能力

消息来源:baojiabao.com 作者: 发布时间:2024-04-25

报价宝综合消息TensorFlow 2.0标准化模型交换格式强化部署能力

由Google大脑开发而后开源的深度学习函式库TensorFlow,官方释出更多TensorFlow 2.0的消息,主要更新的大方向是要简化建模的程序,并强化了平台部署以及实验功能。新功能包括tf.keras、预设启用的Eager Execution以及部署函式库等,官方预计将会在今年初的时候释出公开预览版。

TensorFlow发展至今已经超过3岁,这过程TensorFlow新加入了许多元件,而在TensorFlow 2.0,这些元件将被打包成一个综合平台,以支援从训练到部署的机器学习工作流程。TensorFlow 2.0主打的重点之一是让模型建置更加简单,最近类神经网络函式库Keras成为TensorFlow中央高阶API,能被用来建置和训练模型,官方认为,Keras API有助于TensorFlow的入门。Keras提供了包括Sequential、Functional以及Subclassing等数种建置模型的API,开发者可以根据需求,选择适合的抽象层级用于专案中。

官方举例了使用Keras建置模型的工作流程,第一步可以使用tf.data载入资料,接着第二步以tf.keras建置、训练以及验证模型,官方提到,Keras与TensorFlow紧密整合,因此使用者可以存取任何的TensorFlow功能,而且也可使用一系列标准套件模型,包括线性、逻辑回归或是梯度提升决策树等。如果不想从头开始训练模型,开发者也可以使用TensorFlow Hub的模组,接着训练Keras或是Estimator模型。

第三步以Eager Execution执行与侦错,TensorFlow 2.0预设启用Eager Execution功能,开发者将能获得更流畅的侦错体验,另外,tf.function也会将Python转换成TensorFlow图,以提供效能最佳化、远端执行、简易序列化、输出与部署等能力。

官方也提到,第四步开发者可以使用目前部分释出的分散策略(Distribution Strategy)API,执行大型机器学习任务,该API可以简化在不同硬件配置上分散训练模型的工作,而且不需要额外改变模型的定义。第五步则可以使用SavedModel输出模型,TensorFlow 2.0将会标准化模型成可交换格式,可在TensorFlow Serving、TensorFlow Lite、TensorFlow.js以及TensorFlow Hub等地方使用。

也由于在TensorFlow 2.0中,标准化交换格式以及一致的API,赋予模型更强大部署能力,提高了跨平台元件的相容性。因此开发者从TensorFlow输出的模型,除了可以直接在应用程序中使用,也可以在TensorFlow Serving、TensorFlow Lite与TensorFlow.js等部署函式库中使用。

TensorFlow Serving允许模型以HTTP/REST或是gRPC/Protocol Buffers方式提供,而轻量级TensorFlow Lite针对行动与嵌入式装置,可在Android、iOS或是树莓派上部署模型。TensorFlow.js则可以在JavaScript环境中部署模型,而TensorFlow也支援多种程式语言,现在有C、Java、Go、C#、Rust、Julia以及R等。

TensorFlow 2.0加入了一系列的功能,以帮助开发者快速的将想法转为程式码,在不牺牲执行效能的情况下,定义和训练模型。Keras Functional API以及Model Subclassing API,能让开发者创建复杂的拓扑,另外,开发者还可以自定义训练逻辑,使用tf.GradientTape和tf.custom_gradient对梯度计算进行精细度控制。

TensorFlow 2.0还加入了一些新功能,供研究人员和进阶使用者使用扩充进行实验,像是Ragged Tensors、TensorFlow Probability和Tensor2Tensor等。官方提到,结合Eager Execution、分散策略API以及AutoGraph,TensorFlow 2.0成为一个可高度自订,并且可扩展的平台。

TensorFlow 2.0与TensorFlow 1.x的差异,除了之前释出消息,将tf.contrib从TensorFlow储存库和建置程序中移除外,也改变了变数处理方式以及重新命名部分API,另外也移除了伫列执行器以及图集合。为了简化开发者从旧版本搬移到TensorFlow 2.0的手续,官方释出转换工具,可以自动转换程式码,并更换相对应的API,也会标记无法转换的程式码。

另外,SavedModels和储存的GraphDefs将会向后相容,也就是说TensorFlow 1.x输出的SavedModels将能继续于TensorFlow 2.x版本中使用。官方将继续为TensorFlow 1.x提供12个月的安全补丁,提供用户足够的过度时间。

2019-01-17 18:35:00

相关文章