如果我的方法是正确的,我想得到一些关于如何使用TFX的意见。我的最终目标是对需要一些预处理的原始序列数据流进行一些预测。
通常,我们有运行基本分析的flink作业,例如窗口、分组和计算统计数据。但是,我们的想法是将这些管道转移到beam,并让TFX使用这些beam组件进行进一步的计算。
这被证明是相当具有挑战性的,因为TFX组件有一个严格的API,并且期望所有的中间数据都是TFRecords。
所以我的问题是,TFX的目标是处理所有的预处理逻辑(分组,窗口..等等)或者更多的是为了数据工程?
发布于 2019-06-24 15:03:15
TFX用于处理所有的预处理逻辑。您的需求可以通过Tensorflow转换的内置函数来满足。其中一些如下所示:
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变换可以接受的数据的另一种方法是:
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
https://stackoverflow.com/questions/56282552
复制相似问题