TensorFlow2.0构架

1、TensorFlow2.0主要特征

tf.keras和eager mode更加简单
鲁棒的跨平台模型部署
更加灵活
清除不推荐使用的API和减少重复来简化API


2、架构


该框架分为两大部分,左边为训练部分,右边为模型部署。

2.1 read &preprocess data

首先,在读取数据方面,可以使用tf.data加载数据。

使用输入管道读取训练数据,输入管道使用tf.data创建。利用tf.feature_column描述特征,如分段和特征交叉。此外还支持内存数据的便捷输入(如NumPy)。

之后根据需求对数据进行预处理操作,如数据清洗、归一化等。

2.2 tf.keras

使用tf.keras构建、训练并验证模型。

最近,官方宣布Keras作为一个用户友好的机器学习API标准,将成为用于构建和训练模型的高级API。 Keras API让用户可以轻松开始使用TensorFlow。尤其重要的是,Keras提供了几个模型构建API(顺序,功能和子类),因此您可以为项目选择正确的抽象级别。

Keras API使得上手TensorFlow非常容易。重要的是,Keras提供了几个模型构建API(Sequential、Functional以及Subclassing),因此用户可以选择正确的抽象化(abstraction)级别,TensorFlow的实现包含增强功能,包括eager execution、立即迭代(immediate iteration)和直观调试(intuitive debugging),以及tf.data,用于构建可扩展的输入pipeline。

TensorFlow的实现包含增强功能,包括急切执行,立即迭代和直观调试,以及tf.data,用于构建可扩展的输入管道。

2.3 Premade Estimators

Estimators评估器是TensorFlow用于实现一个完整的模型的最高层表示它可以处理参数初始化、日志记录、保存和恢复模型等功能。
更详细的介绍以及API可以戳这里
TensorFLow提供了很多的预先写好的评估器,包括DNNClassifier, DNNRegressor, LinearClassifier.
一开始学习的时候可以直接使用tf提供的这些评估器,有经验之后也可以自己实现一个。
要使用tf预先写好的estimator,必须依次完成以下工作:

创建一个或多个输入函数
定义模型的特征列。
实例化estimator对象,并指定特征列和各种超参数。
在estimator对象上调用一个或多个方法,传递适当的输入函数作为数据源。

2.4 distribution strategy

使用分布式策略进行分布式训练。

对于大型机器学习训练任务,分布式策略API可以轻松地在不同硬件配置上分配和训练模型,无需更改模型的定义。由于TensorFlow支持各种硬件加速器,如CPU,GPU和TPU,因此用户可以将训练负载分配到单节点/多加速器以及多节点/多加速器配置上(包括TPU Pod)。这个API支持多种群集化配置,也提供了在本地或云环境中部署Kubernetes群集训练的模板。

2.5 SaveModel

TensorFlow将对Saved Model进行标准化,作为TensorFlow服务的一部分,他将成为TensorFlow Lite、TensorFlow.js、TensorFlow Hub等格式的可互换格式。

TensorFlow始终为生产提供了直接部署方式。无论是部署在服务器、边缘设备还是Web上,TensorFlow都可以让用户对模型实现轻松训练和部署。无论用户使用何种语言或平台。在TensorFlow 2.0中,我们通过标准化互换格式和API对齐来提高跨平台和组件的兼容性。

TensorFlow服务:TensorFlow库,允许通过HTTP / REST或gRPC /协议缓冲区提供模型。

TensorFlow Lite:TensorFlow针对移动和嵌入式设备的轻量级解决方案提供了在Android,iOS和嵌入式系统(如Raspberry Pi和Edge TPU)上部署模型的功能。

TensorFlow.js:允许在JavaScript环境下部署模型,如在Web浏览器或服务器端通过Node.js实现部署。TensorFlow.js还支持使用类似Keras的API在JavaScript中定义模型并直接在Web浏览器中进行训练。

TensorFlow还支持其他语言,包括C,Java,Go,C#,Rust,Julia,R等。

3、开发流程

4、强大的跨平台能力

5、 强大的研究实验


 

你可能感兴趣的:(TensorFlow2.0构架)