问题标签 [tfx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
518 浏览

azure-devops - TFX-CLI 在“创建 tfx 扩展”时失败

背景:使用AzureDevops 服务作为 Ci/CD,需要按照这些文档创建自定义服务端点。 紧随其后的是发布,但失败了。

目标:创建自定义服务端点。

问题:运行“tfx extension create”命令时,我收到此错误(似乎没有调试工作):

建议将不胜感激。

0 投票
1 回答
215 浏览

tensorflow2.0 - TensorFlow Extended:在 Schema 中指定特征的效价

我目前正在尝试通过 TensorFlow Extended (TFX) 管道为数据集提供一些多价特征列。这是我的示例数据中的一行:

如您所见,列(特征)touched_product_id、、、liked_product_iddisliked_product_id多价的。

现在,为了通过 TFX 的验证层提供这些数据,我遵循以下指南:

https://www.tensorflow.org/tfx/tutorials/tfx/components_keras

根据指南,我TFRecord使用 的实例生成一些文件CSVExampleGen,然后继续生成统计信息和模式,如下所示:

上述代码显示的最终架构是:

显然,多价特征被错误地推断为单价。为了解决这个问题,我Schema手动加载了原型并尝试调整valence属性。

显然,最后一行不起作用,因为令我惊讶的是,没有valence属性。我尝试查看Schema原型的规范,但没有找到valence属性。任何人都知道我该如何解决这个问题?任何指导都会令人难以置信。

0 投票
1 回答
230 浏览

python - keras 多输出模型的 TFX 评估器问题

我在 TFX 中使用了一个非常简单的 keras 模型来解决回归问题。似乎 TFX 希望您使用具有命名输出的 keras 模型,所以我做了:

我不明白评估器如何将我的数据集的标签名称与我的模型的输出名称映射。

在我的代码中,我使用表单列表设置了label_keys and prediction_keys 参数:tfma.ModelSpec

似乎原始消息已正确创建,但是当我运行 Evaluator 时,出现以下错误:

label_key如果我尝试使用and参数提供单个标签键和单个预测键,prediction_key则会收到以下错误:

我已经尝试了所有可能的方法,但没有。有没有办法使用没有命名输出的模型(具有多个节点的密集输出层)?或者解决这个问题的方法?

PS是否有具有多输出keras模型的TFX管道教程?

谢谢。

0 投票
1 回答
32 浏览

tfx - 如何在 Evaluator 中计算附加统计信息?

在 TFX 评估器中,除了以 TFMA 格式描述的指标之外,我想计算与我的模型在我的数据集上的性能相关的统计数据。自然,我还想要一种访问这些统计信息的方法:通过组件的输出,或者让组件在某处上传统计信息。

我想需要一些自定义代码(用于计算和返回统计数据),但我真的不知道有多少以及编写它的最佳方式是什么。关于这个话题的任何想法?

谢谢

0 投票
1 回答
83 浏览

tfx - 如何使用 TFX Pusher 将祝福模型推送到 S3?

我想将祝福模型推送到 S3 存储桶。我能找到的最接近的是将模型推送到 google can ai 平台的东西。S3 有推送器吗?

谢谢

0 投票
0 回答
149 浏览

python - 如何使用 tfx / tfdv / tensorflow 服务在推理期间验证数据?

我正在构建一个 tfx 管道并使用 tensorflow 服务来服务我的模型。我用 . 保存签名model.save(...)

到目前为止,我能够在预测之前使用转换层来转换特征tf_transform_output.transform_features_layer()(参见下面的代码)。

但是,我想知道如何检测输入数据中的异常?例如,我不想预测与之前训练特征的分布相距太远的输入值。

tfdv库提供了类似的功能,generate_statistics_from_[csv|dataframe|tfrecord]但我找不到任何好的示例来生成序列化tf.Examples 的统计信息(或未保存在文件中的内容,如 csv、tfrecords 等)。

我知道文档中的以下示例

但是在这个例子serialized_tfexample中是一个字符串,而在我下面的代码中,参数serialized_tf_examples是一个字符串的张量。

对不起,如果这是一个明显的问题。我花了一整天的时间寻找解决方案,但没有成功。也许我把这一切都弄错了。也许这不是放置验证的正确位置。所以我更笼统的问题实际上是:当您在生产中提供通过 tfx 管道创建的模型时,如何在预测之前验证传入的输入数据?我很感谢任何引导到正确方向的方法。

这是我要添加验证的代码:

0 投票
2 回答
740 浏览

tensorflow - Tensorflow Extended:是否可以在 Tensorflow 扩展流中使用 pytorch 训练循环

我已经使用 pytorch 训练了一个图像分类模型。
现在,我想把它从研究转移到生产管道。
我正在考虑使用 TensorFlow 扩展。我非常怀疑我是否能够在 TensorFlow 扩展管道中使用我的 PyTorch 训练模型(我可以将训练模型转换为 ONNX,然后转换为 Tensorflow 兼容格式)。我不想重写和重新训练 TensorFlow 的训练部分,因为这将是一个很大的开销。是否有可能或有没有更好的方法来生产 PyTorch 训练的模型?

0 投票
1 回答
120 浏览

python - TensorFlow 扩展 | Trainer 从 GenericExecutor 和 Keras 模型开始不热

我目前正在尝试让 TFX 管道的 Trainer 组件从之前运行的同一管道中进行热启动。用例是:

  1. 运行管道一次,生成模型。
  2. 随着新数据的到来,使用新数据训练现有模型。

我知道该ResolverNode组件是为此目的而设计的,因此您可以在下面看到我是如何使用它的:

上面的组件运行成功,并且ResolverNode能够从之前的管道运行中检测到最新的模型。不会抛出任何错误 - 但是,在运行时context.run(trainer),模型损失基本上是从第一次开始的地方开始的。模型第一次运行后,它完成了约 0.1 的训练损失,但是,在第二次运行时(假设是热启动),它重新启动了 ~18.2。

这让我相信所有的权重都被重新初始化了,我认为这不应该发生。下面是相关的模型构建函数:

为了研究这个问题,我仔细阅读了:

来自 TFX 的热启动示例 https://github.com/tensorflow/tfx/blob/master/tfx/examples/chicago_taxi_pipeline/taxi_pipeline_warmstart.py

但是,本指南使用该Estimator组件而不是 Keras 组件。该组件有一个warm_start_from初始化参数,我无法为 Keras 等效项找到该参数。

我猜测:

  1. 或者热启动功能只对组件可用,Estimator即使base_model为 Keras 组件设置也不会生效。

  2. 即使在成功加载先前的模型之后,我也会以某种方式告诉模型重新初始化权重——在这种情况下,我会喜欢一个指针来说明发生的位置。

任何帮助都会很棒!非常感谢。

0 投票
1 回答
221 浏览

python - TFX / Tensorflow 数据验证 (TFDV) 不适用于数据漂移

我不确定下面的代码有什么问题。我阅读了这些文档,所有文档都指向了一种与此类似的方法。

这是一个不起作用的简单示例。我的期望是对该功能的通知,x1因为两个数据集之间的分布非常不同。

结果总是No anomalies found.

这段代码有什么问题?

(使用 tfx==0.24.1)

0 投票
0 回答
106 浏览

tensorflow2.0 - 无法在转换组件 (TFX) 中使用句子嵌入

我正在使用列是数字或分类的评论数据集。最后一列是文本评论(英文句子段落),所以我使用通用句子编码器(https://tfhub.dev/google/universal-sentence-encoder/4)来获得句子嵌入。该项目的目标是为每个评论示例分配一个情感标签。对于 TF (2.0) Keras 模型,所有这些都相对简单。

但我无法弄清楚如何让它在 TFX 管道中工作。具体来说,在尝试使用预训练嵌入模型时,我无法弄清楚如何同时使用 ExampleGen 和 Transform 组件。示例 gen 组件被输入原始数据,因此 transform 组件最终会获得评论文本的稀疏张量。但这是我想使用通用句子编码器并获取句子嵌入张量的地方(编码器接受一个字符串、字符串列表或字符串渴望张量列表来生成嵌入)。评论文本是情感分类的主要部分,所以本质上,我无法进一步进行。

我可以做两件事:

  1. preprocessing_fn变换组件中,以某种方式将评论稀疏张量转换为字符串张量,然后可以将其输入通用句子编码器模型。我已经尝试过了,但遇到了急切的执行问题(“张量”对象没有属性“numpy”错误)。
  2. 丢弃 ExampleGen 组件,改用 Apache Beam + Tensorflow Transform 来获取数据,执行必要的转换,然后让 Trainer 组件从这里(我还不确定这部分)获取数据,然后是 Evaluator、Pusher 等。但这感觉需要更多的努力,我想了解在我走这条路之前是否有我遗漏的技巧。

我对 TF 比较陌生,所以对此的任何帮助将不胜感激,谢谢!

编辑:我确实发现此链接讨论了类似的内容(https://github.com/tensorflow/tfx/issues/2517),但也无法从中得出任何具体的信息。