当前位置: 首页 > news >正文

政安晨:【深度学习部署】—— TensorFlow Extended(TFX)介绍

政安晨的个人主页政安晨

欢迎 👍点赞✍评论⭐收藏

收录专栏: TensorFlow与Keras实战演绎机器学习

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

前言

TensorFlow Extended(TFX)是基于 TensorFlow 的谷歌生产规模机器学习平台。它提供了一个配置框架,用于表达由 TFX 组件组成的 ML 管道。TFX 管道可使用 Apache Airflow 和 Kubeflow 管道进行协调。组件本身以及与协调系统的集成都可以扩展。

TFX包括许多生产软件部署和最佳实践的需求:可伸缩性、一致性、可测试性、安全性,等等。

它从收集数据开始,然后是数据验证、特征工程、训练和服务。

谷歌已为管道的每个主要阶段创建了库,并且为各种部署目标提供了框架。TFX实现了一系列ML管道组件。这些通过为管道存储、配置和编制之类的事物创建水平层来实现。这些层对于管理和优化管道以及在其管道上运行的应用程序非常重要。

安装

pip install tfx

关于 TFX

TFX 是一个在生产环境中构建和管理机器学习工作流程的平台。

TFX 提供以下功能

用于构建机器学习流水线的工具包 TFX 流水线,您可以在多个平台上编排机器学习工作流,例如 Apache Airflow、Apache Beam 和 Kubeflow Pipelines 平台。

一组标准组件可用作流水线的一部分,或用作机器学习训练脚本的一部分。TFX 标准组件提供久经考验的功能,可帮助您轻松开始构建机器学习流程。

为许多标准组件提供基本功能的库您可以使用 TFX 库将此功能添加到自己的自定义组件中,也可以单独使用它们。

TFX 是一种基于 TensorFlow 的 Google 生产级机器学习工具包。 该平台提供了一个配置框架和众多共享库,用来集成定义、启动和监控机器学习系统所需的常见组件。

TFX管道

TFX管道由实现ML管道的一系列组件构成,特别是确保了带下划线的ML任务的可伸缩性和高性能。它包括建模、训练、推理以及部署到Web或移动目标。如下图所示:

TFX管道包含几个组件,每个组件都由三个主要元素组成:驱动程序、执行程序和发布程序。

驱动程序查询元数据存储,并将生成的元数据提供给执行程序,发布程序接受执行程序的结果,并将其保存在元数据中。

执行程序执行所有的处理。作为ML软件开发人员,你需要编写要在执行程序中运行的代码,这取决于你正在使用的组件类。

在TFX管道中,称为构件的数据单元在组件之间传递。

通常,一个组件有一个输入构件和一个输出构件。每个构件都有一个关联元数据,定义其类型和属性。构件类型定义了整个TFX系统中构件的本体,而构件属性则指定了特定于构件类型的本体。用户可以选择在全局或本地扩展本体。

TFX 标准组件

TFX 流水线是实现机器学习流水线的一系列组件,专门用于可扩容的高性能机器学习任务。这包括针对在线、原生移动和 JavaScript 目标建模、训练、运行推断和管理部署。

TFX 流水线通常包含以下组件:

  • ExampleGen:提取和拆分(可选)输入数据集的流水线的初始输入组件。

  • StatisticsGen:计算数据集的统计信息。

  • SchemaGen: 检查统计信息和创建数据架构。

  • ExampleValidator:查找数据集中的异常情况和缺失的值。

  • Transform:对数据集执行特征工程。

  • Trainer:训练模型。

  • Tuner:调整模型的超参数。

  • Evaluatior:对训练结果进行深入分析,并帮助您验证导出的模型,确保它们“效果足够好”,适合投放到生产环境。

  • InfraValidator:检查模型是否确实可以从基础架构提供服务,并防止投放不良模型。

  • Pusher:将模型部署到服务基础架构。

  • BulkInferrer:对存在无标签推断请求的模型执行批处理。

下图说明了这些组件之间的数据流:

TFX 库

TFX 同时包含库和流水线组件。

下图说明了 TFX 库与流水线组件之间的关系

TFX 提供了几个 Python 软件包,它们是用于创建流水线组件的库。您可以使用这些库创建流水线组件,以便您的代码侧重于流水线的独特环节。

使用 TFX 进行开发

从在本地机器上进行研究、实验和开发一直到部署,TFX 为机器学习项目的每个阶段都提供功能强大的平台。

为了避免代码重复和消除潜在的训练/应用偏差,我们强烈建议您实现 TFX 流水线,以便训练模型和部署经过训练的模型,并使用 Transform组件进行训练和推断,此类组件利用了 TensorFlow Transform库。

这样,您就可以始终如一地使用相同的预处理和分析代码,避免训练用到的数据与在生产环境中提供给经训练模型的数据之间存在差异,并且只需编写该代码一次。

部署目标

在开发并训练模型后,如果您对模型感到满意,可以将其部署到一个或多个部署目标,并在其中接收推断请求。TFX 支持部署到三类部署目标。以 SavedModel 格式导出的经训练模型可以部署到这些部署目标中的任意一个,也可以部署到所有这些部署目标。


本文仅仅是对TFX的一个介绍,为后续实施各类机器学习模型部署打下一个认知的基础而已。

已经了解相关概念的小伙伴们可以忽略本文

相关文章:

政安晨:【深度学习部署】—— TensorFlow Extended(TFX)介绍

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎机器学习 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 前言 TensorFlow Extended(TFX&a…...

宝石与石头

宝石与石头 链接:https://leetcode.cn/problems/jewels-and-stones/description/ 给你⼀个字符串 jewels 代表石头中宝石的类型,另有⼀个字符串 stones 代表你拥有的石头。 stones 中每个字符代表了⼀种你拥有的石头的类型,你想知道你拥有的石头中有多…...

【Vue3之computed属性(四)】

文章目录 前言一、computed属性有缓存二、使用方法三、修改全名 前言 理解computed属性,实现输入姓和名得出全名并双向绑定,区分单向绑定和双向绑定。测试computed属性和方法的区别 一、computed属性有缓存 先引入computed,写箭头函数定义并…...

生产力工具|安装更新R软件(R、studio)

内容介绍: 安装R软件: 下载 R X64 3.5.1: 访问官方R网站 https://cran.r-project.org/。选择适合Windows版本的安装包。将安装包下载到您的计算机。 本地安装: 运行下载的“R-3.5.1-win.exe”文件。按照安装向导,选择安装路径,取消…...

ffmpeg实现媒体流解码

本期主要讲解怎么将MP4媒体流的视频解码为yuv,音频解码为pcm数据;在此之前我们要先了解解复用和复用的概念; 解复用:像mp4是由音频和视频组成的(其他内容流除外);将MP4的流拆分成视频流(h264或h265等)和音频流(AAC或mp3等); 复用:就是将音频和视频打包成MP4或者fl…...

面试题 之 react

1.说说对react的理解 1️⃣是什么 React是用于构建用户界面的 JavaScript 库,遵循组件设计模式、声明式编程范式和函数式编程概念,更高效使用虚拟 DOM 来有效地操作 DOM ,遵循从高阶组件到低阶组件的单向数据流。 react 类组件使用一个名为 render() 的方…...

k8s笔记27--快速了解 k8s pod和cgroup的关系

k8s笔记27--快速了解 k8s pod和 cgroup 的关系 介绍pod & cgroup注意事项说明 介绍 随着云计算、云原生技术的成熟和广泛应用,K8S已经成为容器编排的事实标准,学习了解容器、K8S技术对于新时代的IT从业者显得极其重要了。 之前在文章 docker笔记13–…...

android Fragment 生命周期 方法调用顺序

文章目录 Introlog 及结论代码 Intro 界面设计:点击左侧按钮,会将右侧 青色的RightFragment 替换成 黄色的AnotherRightFragment,而这两个 Fragment 的生命周期方法都会打印日志。 所以只要看执行结果中的日志,就可以知道 Fragme…...

python写爬虫爬取京东商品信息

工具库 爬虫有两种方案: 第一种方式是使用request模拟请求,并使用bs4解析respond得到数据。第二种是使用selenium和无头浏览器,selenium自动化操作无头浏览器,由无头浏览器实现请求,对得到的数据进行解析。 第一种方…...

使用Linux别名简化命令输入

Linux定义命令别名,解决经常重复输入长命令 在Linux环境下工作时,我们经常需要输入长长的命令,这不仅耗时而且容易出错。Linux提供了一种名为“别名(alias)”的功能,可以让我们为这些长命令定义简短的名称…...

34.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-登录数据包的监视与模拟

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 内容参考于:易道云信息技术研究院VIP课 上一个内容:33.游戏登录数据…...

rust - 对文件夹进行zip压缩加密

本文提供了一种对文件夹进行zip压缩并加密的方法。 添加依赖 cargo add anyhow cargo add walkdir cargo add zip cargo add zip-extensions计算文件夹的大小 目的是对需要压缩的文件夹的大小做一个限制。当然如果资源足够的话,可以去掉此限制。 let mut total_s…...

ETL数据倾斜与资源优化

1.数据倾斜实例 数据倾斜在MapReduce编程模型中比较常见,由于key值分布不均,大量的相同key被存储分配到一个分区里,出现只有少量的机器在计算,其他机器等待的情况。主要分为JOIN数据倾斜和GROUP BY数据倾斜。 1.1GROUP BY数据倾…...

Python的asyncio:异步编程的利器

在Python中,asyncio模块为开发者提供了强大的异步编程支持,使得编写高效且并发的代码变得更加容易。本文将深入探讨asyncio的核心概念、工作原理以及如何快速入门,通过文字与代码结合,带您领略异步编程的魅力。 1. 协程与事件循环…...

nodejs+vue高校奖助学金系统python-flask-django-php

高校奖助学金系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓,iOS相比较起来,…...

已解决redis.clients.jedis.exceptions.JedisMovedDataException异常的正确解决方法,亲测有效!!!

已解决redis.clients.jedis.exceptions.JedisMovedDataException异常的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 解决思路 解决方法 使用JedisCluster自动处理MOVED错误 手动更新客户端缓存 总结 博主v&#xff…...

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(五)—— Dropout和批归一化

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! Dropout和批归一化是深度学习领域中常用的正则化技术…...

nodejs+vue高校会议室预订管理系统python-flask-django-php

伴随着我国社会的发展,人民生活质量日益提高。于是对系统进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套高校会议室预订管理系统,帮助学校进行会议…...

文件夹读取不到文件:深度解析与高效恢复策略

一、遭遇文件夹读取难题:文件离奇失踪 在日常使用电脑或移动设备的过程中,我们有时会遇到一个令人头疼的问题:原本存储着重要数据的文件夹突然变得“空空如也”,其中的文件仿佛凭空消失一般,无法正常读取。这种文件夹…...

python—接口编写部分

最近准备整理一下之前学过的前端小程序知识笔记,形成合集。顺便准备学一学接口部分,希望自己能成为一个全栈嘿嘿。建议关注收藏,持续更新技术文档。 目录 前端知识技能树http请求浏览器缓存 后端知识技能树python_api:flaskflask…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"&#xff0…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

书籍“之“字形打印矩阵(8)0609

题目 给定一个矩阵matrix,按照"之"字形的方式打印这个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为:1,…...