Tensorflow中的机器学习数据预处理模块tf.Transform

 
原文: https://research.googleblog.com/2017/02/preprocessing-for-machine-learning-with.html
 
当我们将机器学习技术应用到真实世界的数据集时,我们需要进行大量的工作来将数据预处理成适合标准机器学习模型(比如神经网络)的格式。这种预处理可能包含多种形式,从转换格式到标记和组织文本和形成词汇表,都需要执行各种数值操作,比如归一化。

今天我们宣布tf.Transform,一个用于TensorFlow的库。它允许用户定义预处理流程,并使用大型数据处理框架运行这些流程,同时还可以以一种作为TensorFlow图的一部分运行的方式导出流程。用户通过组成模块化的Python函数来定义管道。然后tf.Transform用Apache Beam执行转换,这是一个大规模、高效、分布式数据处理框架。Apache Beam管道可以在谷歌云数据流上运行,并计划支持其他框架的运行。由tf.Transform导出的TensorFlow图使得预处理步骤可以复制,尤其是当训练的模型用于做预测时,例如作为Tensorflow Serving的服务模块。

在生产中运行机器学习模型时遇到的一个常见问题是“训练服务倾斜(training-serving skew)”,在服务时间上看到的数据在某种程度上与训练模型的数据不同,从而降低了预测质量。相比于在两个不同的环境(分别是Apache Beam和TensorFlow)中进行预处理,tf.Transform通过保证服务运行时与在训练运行时的转换完全相同,从而确保在预处理过程中不会出现任何倾斜。

除了便于预处理,tf.Transform允许用户计算其数据集的汇总统计数据。在每一个机器学习项目中,理解数据都是非常重要的,因为对于底层数据的错误假设可能会产生一些细微的错误。通过简单、高效的计算汇总统计数据。tf.Transform允许用户检查他们对原始数据和预处理数据的假设。
 

TFT_for_Research_Blog_Post.jpg

tf.Transform允许用户定义预处理流程。用户可以具体指定预处理流程,用于在TensorFlow训练过程中使用,也可以导出一个tf.Transform图并转换编码为一个TensorFlow图。然后将这个转换图合并到用于推理的模型图中。


 
我们很高兴能够发布最新的TensorFlow生态系统,我们希望它对使用者在进行数据预处理和理解他们的数据方面有帮助。

我们要感谢以下各部队成员。他们为这个项目做出了贡献:Clemens Mewald,Robert Bradshaw,Rajiv Bharadwaja,Elmer Garduno,Afshin Rostamizadeh,Neoklis Polyzotis,Abhi Rao,Joe Toth,Neda Mirian,Dinesh Kulkarni,Robbie Haertel,Cyril Bortolato和Slaven Bilac。我们也要感谢TensorFlow,TensorFlow服务和Cloud Dataflow团队的支持。
 
翻译:CaffeCN社区 (未经授权,不可转载)
 
 

0 个评论

要回复文章请先登录注册