如果我的方法正确,我想就如何使用TFX提出一些意见。 我的最终目标是对需要进行一些预处理的原始系列数据流进行一些预测。
通常,我们有flink作业运行基本分析,例如开窗,分组和计算统计数据。 但是,当时的想法是将这些管线移到梁上,并让TFX使用这些梁分量进行进一步的计算。
由于TFX组件具有严格的API,并且希望所有中间数据都为TFRecords,因此这被证明是非常具有挑战性的。
所以我的问题是,TFX旨在处理所有预处理逻辑(分组,窗口化等)还是用于数据工程?
答案 0 :(得分:1)
TFX旨在处理所有预处理逻辑。 Tensorflow Transform的内置功能可以满足您的要求。其中一些如下所示:
tft.bucketize, tft.compute_and_apply_vocabulary, tft.pca, tft.scale_to_z_score, etc..
是的,TFX组件(尤其是TF Transform)期望所有中间数据都为TF.Example
格式。可以通过简单的方法将数据集转换为该格式。
将CSV数据转换为TF.Example
的代码如下所示:
from tfx.utils.dsl_utils import csv_input
from tfx.components.example_gen.csv_example_gen.component import CsvExampleGen
examples = csv_input(os.path.join(base_dir, 'data/simple'))
example_gen = CsvExampleGen(input_base=examples)
其他可以转换为TF转换可接受的数据的方法是:
converter = tft.coders.CsvCoder(ordered_columns, RAW_DATA_METADATA.schema)
有关更多信息,请参阅链接,
https://www.tensorflow.org/tfx/guide/examplegen和
https://www.tensorflow.org/tfx/tutorials/transform/census#transform_the_data