标签: tfx

TensorFlow TFX 中存储在 MLMD 中的数据

据我了解,TensorFlow 使用MLMD来记录和检索与工作流相关的元数据。这可能包括:

  1. 管道组件的结果
  2. 关于通过管道组件生成的工件的元数据
  3. 有关这些组件执行的元数据
  4. 关于管道和相关血统信息的元数据

特征:

以上(例如#1 又名“组件结果”)是否暗示 MLMD 存储实际数据?(例如机器学习训练的输入特征?)。如果不是,管道组件的结果是什么意思?

编排和管道历史:

此外,当使用 TFX 与例如 AirFlow 时,它使用自己的元存储(例如关于 DAG、它们的运行和其他 Airflow 配置(如用户、角色和连接)的元数据)MLMD 是否存储冗余信息?它会取代它吗?

deep-learning tensorflow tfx mlmd

6
推荐指数
1
解决办法
239
查看次数

在 Windows 上安装 tensorflow 扩展 python 3

我试图在 Windows 10 机器上 pip install tfx==0.13.0 并且我得到这个错误是否有人能够 pip install tfx==0.13.0

Could not find a version that satisfies the requirement ml-metadata<0.14,>=0.13.2 (from tfx==0.13.0) (from versions: 0.12.0.dev0, 0.13.0.dev0, 0.13.1.dev0) No matching distribution found for ml-metadata<0.14,>=0.13.2 (from tfx==0.13.0)

tensorflow tfx

5
推荐指数
1
解决办法
445
查看次数

使用现有的frozen_interface_graph.pb 和label_map.pbtxt 部署TFX

我已经用 fastR-CNN 网络训练了一个物体检测模型,frozen_interface_graph.pblabel_map.pbtxt在训练后进行了训练。我想将它部署为 RESTAPI 服务器,以便可以从没有 Tensorflow 的系统中调用它。那是我遇到TFX的时候。

我如何使用TFX tensorflow-model-server加载此模型并托管 RESTAPI,以便我可以将图像作为 POST 请求发送进行预测?

https://www.tensorflow.org/tfx/tutorials/serving/rest_simple这是我找到的参考资料,但模型的格式与我目前的格式不同。是否有任何机制可以重用我目前拥有的模型,或者我必须使用 Keras 重新训练并部署,如参考中所示。

python tensorflow tfx

5
推荐指数
1
解决办法
294
查看次数

Evaluator 组件上的 TFX IndexError

我正在尝试为我的模型制作一个评估器。到目前为止,所有其他组件都很好,但是当我尝试此配置时:

eval_config = tfma.EvalConfig(
    model_specs=[
        tfma.ModelSpec(label_key='Category'),
    ],
    metrics_specs=tfma.metrics.default_multi_class_classification_specs(),
    slicing_specs=[
        tfma.SlicingSpec(),
        tfma.SlicingSpec(feature_keys=['Category'])
    ])
Run Code Online (Sandbox Code Playgroud)

使这个评估器:

model_resolver = ResolverNode(
      instance_name='latest_blessed_model_resolver',
      resolver_class=latest_blessed_model_resolver.LatestBlessedModelResolver,
      model=Channel(type=Model),
      model_blessing=Channel(type=ModelBlessing))
context.run(model_resolver)

evaluator = Evaluator(
    examples=example_gen.outputs['examples'],
    model=trainer.outputs['model'],
    baseline_model=model_resolver.outputs['model'],
    eval_config=eval_config)
context.run(evaluator)
Run Code Online (Sandbox Code Playgroud)

我明白了:

[...]
IndexError                                Traceback (most recent call last)
/opt/miniconda3/envs/archiving/lib/python3.7/site-packages/apache_beam/runners/common.cpython-37m-darwin.so in apache_beam.runners.common.DoFnRunner.process()

/opt/miniconda3/envs/archiving/lib/python3.7/site-packages/apache_beam/runners/common.cpython-37m-darwin.so in apache_beam.runners.common.PerWindowInvoker.invoke_process()

/opt/miniconda3/envs/archiving/lib/python3.7/site-packages/apache_beam/runners/common.cpython-37m-darwin.so in apache_beam.runners.common.PerWindowInvoker._invoke_process_per_window()

/opt/miniconda3/envs/archiving/lib/python3.7/site-packages/apache_beam/runners/common.cpython-37m-darwin.so in apache_beam.runners.common._OutputProcessor.process_outputs()

/opt/miniconda3/envs/archiving/lib/python3.7/site-packages/apache_beam/runners/worker/operations.cpython-37m-darwin.so in apache_beam.runners.worker.operations.SingletonConsumerSet.receive()

/opt/miniconda3/envs/archiving/lib/python3.7/site-packages/apache_beam/runners/worker/operations.cpython-37m-darwin.so in apache_beam.runners.worker.operations.PGBKCVOperation.process()

/opt/miniconda3/envs/archiving/lib/python3.7/site-packages/apache_beam/runners/worker/operations.cpython-37m-darwin.so in apache_beam.runners.worker.operations.PGBKCVOperation.process()

/opt/miniconda3/envs/archiving/lib/python3.7/site-packages/tensorflow_model_analysis/evaluators/metrics_and_plots_evaluator_v2.py in add_input(self, accumulator, element)
    355     for i, (c, a) in enumerate(zip(self._combiners, accumulator)):
--> 356       result = c.add_input(a, get_combiner_input(elements[0], i))
    357       for …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tfx

5
推荐指数
1
解决办法
191
查看次数

如何从 TFX BulkInferrer 获取数据帧或数据库写入?

我对 TFX 很陌生,但有一个明显有效的 ML 管道,可通过BulkInferrer 使用。这似乎只以 Protobuf 格式生成输出,但由于我正在运行批量推理,我想将结果通过管道传输到数据库。(DB 输出似乎应该是批量推理的默认值,因为批量推理和 DB 访问都利用了并行化......但 Protobuf 是一种每条记录的序列化格式。)

我假设我可以使用Parquet-Avro-Protobuf 之类的东西来进行转换(尽管这是在 Java 中,而管道的其余部分在 Python 中),或者我可以自己编写一些东西来逐一使用所有 protobuf 消息,进行转换将它们转换为 JSON,将 JSON 反序列化为一个 dict 列表,然后将 dict 加载到 Pandas DataFrame 中,或者将其存储为一堆键值对,我将其视为一次性数据库……但这听起来像是对于一个非常常见的用例,涉及并行化和优化的大量工作和痛苦。顶级 Protobuf 消息定义是 Tensorflow 的PredictionLog

一定是一个常见的用例,因为像这样的TensorFlowModelAnalytics 函数使用 Pandas DataFrames。我宁愿能够直接写入数据库(最好是 Google BigQuery)或 Parquet 文件(因为 Parquet / Spark 似乎比 Pandas 并行化得更好),而且,这些似乎应该是常见用例,但我没有找到任何例子。也许我使用了错误的搜索词?

我还查看了PredictExtractor,因为“提取预测”听起来接近我想要的......但官方文档似乎没有说明应该如何使用该类。我认为TFTransformOutput听起来像是一个有前途的动词,但实际上它是一个名词。

我显然在这里遗漏了一些基本的东西。有没有人想将 BulkInferrer 结果存储在数据库中的原因?是否有允许我将结果写入数据库的配置选项?也许我想向TFX 管道添加ParquetIOBigQueryIO实例?(TFX 文档说它在“幕后”中使用了 Beam,但这并没有说明我应该如何将它们一起使用。)但是这些文档中的语法看起来与我的 TFX 代码完全不同,我不确定它们是否“重新兼容?

帮助?

database output tensorflow tfx

5
推荐指数
1
解决办法
301
查看次数

是否可以将 kubeflow 组件与 Tensorflow 扩展组件混合使用?

Kubeflow 似乎已弃用其所有 TFX 组件。我目前有一些自定义 Kubeflow 组件,可以帮助启动一些数据管道,我希望可以在同一个 kubeflow 管道中使用一些 TFX 组件。是否有推荐的方法将 Kubeflow 和 Tfx 组件混合在一起?

我看到 Kubeflow 的一个旧 PR 弃用了他们的 TFX 组件: https://github.com/kubeflow/pipelines/issues/3853

它指出:

创建这些组件是为了允许用户在其 KFP 管道中使用 TFX 组件,以便能够混合 KFP 和 TFX 组件。如果您的管道仅使用 TFX 组件,请使用官方 TFX SDK。

但我实际上确实需要混合 KFP 和 TFX 组件,有办法做到这一点吗?

kubeflow tfx kubeflow-pipelines

5
推荐指数
1
解决办法
722
查看次数

在 AWS 上运行 TensorFlow Extended (TFX)

我想知道是否有可能/在 AWS 中实现 TFX 管道(在真实数据集上,具有 100+ GB 数据集,而不是具有小数据集的教程)有多容易?

对于编排,我可能会使用 Kubeflow。但我认为,主要问题是为 Apache Beam 设置适当的可扩展运行程序。我正在考虑使用 Apache Flink 来实现这一点。

有谁有做经验的吗?当您需要定期使用新数据训练模型时,您会如何在 AWS 中将 TF 投入生产,是从头开始编写管道还是使用某种工具?

tensorflow apache-beam tfx

5
推荐指数
0
解决办法
756
查看次数

用于图像数据的 TFX StatisticsGen

嗨,我真的试图将 TFX 管道作为一项练习。我正在使用从磁盘ImportExampleGen加载TFRecords。每个ExampleTFRecord包含在一个字节串,高度,宽度,深度,转向和油门标签的形式一个jpg。

我正在尝试使用,StatisticsGen但收到此警告; WARNING:root:Feature "image_raw" has bytes value "None" which cannot be decoded as a UTF-8 string.并使我的 Colab Notebook 崩溃。据我所知,TFRecord 中的所有字节字符串图像都没有损坏。

我找不到有关StatisticsGen和处理图像数据的具体示例。根据文档Tensorflow Data Validation 可以处理图像数据。

除了计算一组默认的数据统计数据外,TFDV 还可以计算语义域(例如,图像、文本)的统计数据。要启用语义域统计的计算,请将 enable_semantic_domain_stats 设置为 True 的 tfdv.StatsOptions 对象传递给 tfdv.generate_statistics_from_tfrecord。

但我不确定这与StatisticsGen.

这是实例化ImportExampleGen然后的代码StatisticsGen

from tfx.utils.dsl_utils import tfrecord_input
from tfx.components.example_gen.import_example_gen.component import ImportExampleGen
from  tfx.proto import example_gen_pb2

examples = tfrecord_input(_tf_record_dir)
# https://www.tensorflow.org/tfx/guide/examplegen#custom_inputoutput_split
# has a good explanation of …
Run Code Online (Sandbox Code Playgroud)

tensorflow tfx

3
推荐指数
1
解决办法
1033
查看次数

加载 pb 文件:DecodeError: Error parsing message

我正在尝试加载从 pusher tfx 管道生成的 .pb 文件。我正在使用以下函数加载文件,但我从该函数中收到以下错误。请帮忙。

错误:

<ipython-input-40-af7ef7ac8a8b> in load_model()
      2     with tf.compat.v2.io.gfile.GFile('/home//saved_model.pb', "rb") as f:
      3         graph_def = tf.compat.v1.GraphDef()
----> 4         graph_def.ParseFromString(f.read())
      5 
      6     with tf.Graph().as_default() as graph:
DecodeError: Error parsing message
Run Code Online (Sandbox Code Playgroud)

功能

def load_model():
    with tf.compat.v2.io.gfile.GFile('/home/saved_model.pb', "rb") as f:
        graph_def = tf.compat.v1.GraphDef()
        graph_def.ParseFromString(f.read())

    with tf.Graph().as_default() as graph:
        tf.import_graph_def(graph_def, name="")
    return graph
Run Code Online (Sandbox Code Playgroud)

python protocol-buffers tensorflow tfx

3
推荐指数
1
解决办法
5329
查看次数

当使用 TFX 生成数据集时,如何将 tf.Dataset 适合 Keras 自动编码器模型?

问题

正如标题所示,我一直在尝试创建一个使用 TFX 训练自动编码器模型的管道。我遇到的问题是将对象返回的 tf.Dataset 拟合DataAccessor.tf_dataset_factory到自动编码器。

Below I summarise the steps I've taken through this project, and have some Questions at the bottom if you wish to skip the background information.

Intro

TFX Pipeline

The TFX components I have used so far have been:

  • CsvExampleGenerator (the dataset has 82 columns, all numeric, and the sample csv has 739 rows)
  • StatisticsGenerator / SchemaGenerator, the schema has been edited as is now loaded in using an Importer
  • Transform
  • Trainer (this …

deep-learning keras tensorflow tfx

2
推荐指数
1
解决办法
1227
查看次数