网站首页 > 开源技术 正文
选自Google Research Blog
机器之心编译
参与:吴攀、李亚洲
当我们将机器学习应用于真实世界数据集时,我们需要花费大量工作来将数据处理成适合标准机器学习模型(比如神经网络)的格式。这种预处理(preprocessing)有许多不同的形式——从格式之间的转换,到文本的标记化(tokenizing)和提干(stemming)以及形成词汇表,再到执行各种数值运算(例如归一化)。
今天,我们宣布发布 tf.Transform,这是一个 TensorFlow 库,可以让用户定义预处理流程(preprocessing pipelines)和使用大规模数据处理框架运行这些流程,同时还能让用户以一种将这些流程作为 TensorFlow graph 一部分的方式运行从而利用这些流程。用户可以通过将模块化的 Python 函数组合到一起来定义一个流程,然后 tf.Transform 会使用 Apache Beam 来执行它。Apache Beam 是一个用于大规模数据的、高效的、分布式的数据处理框架。通过 Apache Beam 计划好的对其它框架的运行支持,Apache Beam 流程还能运行在 Google Cloud Dataflow 上。通过 tf.Transform 导出的 TensorFlow graph 可以让预处理步骤在训练好的模型被用于预测时被复制,比如当使用 TensorFlow Serving 将模型投入应用时。
相关链接:
tf.Transform:https://github.com/tensorflow/transform
Apache Beam:https://beam.apache.org/
Google Cloud Dataflow:https://cloud.google.com/dataflow
TensorFlow Serving:https://tensorflow.github.io/serving/
在生产中运行机器学习模型时会常常遇到一个问题:「训练-应用偏差(training-serving skew)」,参阅机器之心文章《谷歌机器学习应用的四十三条经验法则》。「训练-应用偏差」是指当投入产品应用阶段的模型所收到的数据在某些方面不同于该模型在训练过程中所使用的数据时,预测质量出现下降的情况。tf.Transform 通过保证应用阶段的变换和训练阶段所执行的变换完全相同,能够确保在预处理过程中不会出现偏差,这不同于训练阶段和应用阶段的预处理在两个不同的环境中分别实现的情况(比如,分别在 Apache Beam 和 TensorFlow 环境中)。
除了方便预处理之外,tf.Transform 允许用户为他们的数据集计算汇总的统计。在每一个机器学习项目中,理解数据都是非常重要的,因为如果对基本数据做出了错误的假设,那么就会产生一些微妙的错误。为了使这种汇总统计的计算简单有效,tf.Transform 允许用户检查他们关于原始数据和预处理后的数据的假设。
tf.Transform 允许用户定义预处理流程。用户能够在 TensorFlow 训练中具体化要预处理的数据,也能导出一个 tf.Transform graph,其能将转换过程编码为 TensorFlow graph。然后这一转换图(transformation graph)可被整合进用于推断的模型图。
我们非常高兴能把这个最新版本添加到 TensorFlow 生态系统中,我们希望用户发现它对预处理、理解数据有所帮助。
致谢
我们感谢以下 tf.Transform 成员为该项目所作出的贡献: Clemens Mewald, Robert Bradshaw, Rajiv Bharadwaja, Elmer Garduno, Afshin Rostamizadeh, Neoklis Polyzotis, Abhi Rao, Joe Toth, Neda Mirian, Dinesh Kulkarni, Robbie Haertel, Cyril Bortolato and Slaven Bilac。也感谢 TensorFlow、TensorFlow Serving 和 Cloud Dataflow 团队的支持。
猜你喜欢
- 2024-10-26 系统设计理念:健壮的流式数据处理
- 2024-10-26 每日 GitHub 探索 | 轻量级虚拟化、跨平台桌面应用、游戏开发利器
- 2024-10-26 Apache Beam 大数据处理一站式分析
- 2024-10-26 Apache Beam 处理文件(apache filesmatch)
- 2024-10-26 谷歌布局大数据:开源平台 Apache Beam 正式发布
- 2024-10-26 Apache Beam 2.23.0 发布,大数据批处理和流处理标准
- 2024-07-19 微信红包架构、支付宝五福红包背后的网关系统,不可错过的150+研发案例
- 2024-07-19 SpringBoot3.0 + RocketMq 构建企业级数据中台完结
- 2024-07-19 为什么MapReduce会被硅谷一线公司淘汰?
- 2024-07-19 奋战一年,LangChain首个稳定版本发布,LangGraph把智能体构建为图
你 发表评论:
欢迎- 08-02编写汇编语言常见错误分析
- 08-02HC89S003P 20引脚8位ADC型FLASH单片机
- 08-02基于51单片机的万年历
- 08-02基于AT89S51单片机接口电路的时序仿真研究
- 08-02MON-51单片机仿真器使用手册
- 08-02重要提醒,单片机发展史,它到底是一个什么东西
- 08-02keil软件是干嘛的?keil软件怎么用?
- 08-0251单片机多机通信系统实现方法
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)