如果我的方法正确,我想就如何使用 TFX 获得一些意见。我的最终目标是对需要一些预处理的原始系列数据流进行一些预测。
通常我们有运行基本分析的 flink 作业,例如窗口化、分组和计算统计。然而,当时的想法是将这些管道移到梁上,并让 TFX 使用这些梁组件进行进一步的计算。
这被证明是相当具有挑战性的,因为 TFX 组件具有严格的 API,并且期望所有中间数据都是 TFRecords。
所以我的问题是,TFX 的目标是处理所有预处理逻辑(分组、窗口化......等)还是更多用于数据工程?
如果我的方法正确,我想就如何使用 TFX 获得一些意见。我的最终目标是对需要一些预处理的原始系列数据流进行一些预测。
通常我们有运行基本分析的 flink 作业,例如窗口化、分组和计算统计。然而,当时的想法是将这些管道移到梁上,并让 TFX 使用这些梁组件进行进一步的计算。
这被证明是相当具有挑战性的,因为 TFX 组件具有严格的 API,并且期望所有中间数据都是 TFRecords。
所以我的问题是,TFX 的目标是处理所有预处理逻辑(分组、窗口化......等)还是更多用于数据工程?
TFX 旨在处理所有预处理逻辑。TensorFlow Transform 的内置功能可以满足您的要求。其中一些如下所示:
tft.bucketize, tft.compute_and_apply_vocabulary, tft.pca, tft.scale_to_z_score, etc..
是的,TFX 组件(尤其是 TF 变换)期望所有中间数据都是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 Transform 可以接受的其他转换数据的方法是:
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