TensorFlow2.0--TensorFlow2.0构架
Posted Terry_dong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TensorFlow2.0--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--TensorFlow2.0构架的主要内容,如果未能解决你的问题,请参考以下文章
Deepin 20系统Linux系统使用Anaconda常用命令汇总