政安晨:【深度学习部署】—— 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ÿ…...

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(五)—— Dropout和批归一化
政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! Dropout和批归一化是深度学习领域中常用的正则化技术…...

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

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

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

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...