问题标签 [tensorflow-transform]
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.
python - 'ValueError:遇到无法由 ListColumnRepresentation 解码的 SparseTensorValue' 使用 Tensorflow Transform / Beam 时
我正在运行张量流变换/光束管道来加载/预处理并保存为 TFRecords。然后加载这些记录。在 Tensorflow Transform 的预处理过程中,我想填充一个稀疏张量。因此,我想将其转换为密集,填充并将其转换回稀疏。
代码看起来有点像这样:
要加载 TFRecords,我使用以下函数:
运行整个管道(加载原始数据、转换、保存 TFRecords,然后加载它们以将它们打印到屏幕上)工作正常,但取消注释“preprocess_fn”中的 2 行会导致以下错误:
文件“.../lib/python3.6/site-packages/tensorflow_transform/impl_helper.py”,第 262 行,在 to_instance_dicts raise ValueError('Encountered a SparseTensorValue that cannot be ' ValueError: Encountered a SparseTensorValue that cannot be decoded by ListColumnRepresentation .
...
ValueError:遇到无法由 ListColumnRepresentation 解码的 SparseTensorValue。[在运行“%s - Transform/ConvertAndUnbatch”时]
有没有人对此代码有建议或对我错过了什么有任何提示?很感谢任何形式的帮助!
最好的,多米尼克
tensorflow - 如何使用 tf.py_function 处理 tf.string?
我有带字符串的张量(tf.string),我想通过正则表达式拆分这些字符串并进行一些预处理。
例如我有功能
我需要在 tensorflow-transform 图中使用它,以便将来与 tf serving 一起使用。
但是 TF 不允许我使用与 python 中的普通字符串相同的 tf.string。
如何在不使用 C++ 制作新的 TF op 的情况下解决我的问题?
PS我使用TensorFlow 1.13
python - 训练期间未在检查点中导出预处理中使用的 TF 集线器模块变量
我使用TF Hub 模块tensorflow_transform
预处理文本数据,然后使用派生特征进行模型训练。我试图在下面提供一个最小的工作示例。
管道.py
1) 使用NNLM嵌入两个文本
2) 计算它们之间的余弦距离
3) 将预处理数据写入.csv
文件。
4) 导出transform_fn
函数/预处理图,稍后用于服务
5) 运行python pipeline.py
输入:
预处理输出preprocessed_output-00000-of-00001.csv
:
火车.py
tf.estimator.LinearRegressor
1)在预处理数据上训练 a
2) 使用 3) 定期评估和导出模型Checkpoints
3) 在此评估期间,它还导出serving_input_receiver_fn
我稍后想在生产中使用的模型。由于我想在服务时将
原始数据提供给模型,因此我将导出的tf-transform
转换应用到serving_input_fn
.
4) 运行python train.py
问题
每当我train.py
成功运行它
- 加载训练数据
- 建立模型
- 一直到第一班车
Checkpoint
,
但是当它尝试从Checkpoint
以下错误消息中恢复并继续训练时总是失败:
据我了解,它无法恢复TF Hub
预处理步骤(transform/module/embeddings
)中使用的部分模块图。删除exporter
fromeval_spec = tf.estimator.EvalSpec(eval_input_fn, steps=None, exporters=[exporter], throttle_secs=150)
让训练成功完成,但显然不会导出任何saved_model
.
TLDR
如何TF Hub
在预处理中使用模块tf-transform
并将这些数据转换serving
与经过训练的模型一起应用到环境中?
附录
要求.txt
提前非常感谢!
tensorflow - 在张量流中,如果给定另一个特征作为键,我如何索引一个特征的值?
我有一个特征预处理问题,对我来说太复杂了,无法解决。我想从其他 3 个中生成一个“交叉特征”,让我详细说明:
我的机器学习问题是向用户推荐商品。在我的示例中,有关于用户的特性和关于项目的特性。我试图预测用户是否会喜欢这个项目。我们使用张量流示例。
我的用户的一个特征是项目 ID 到用户对它们的“亲和力”的“映射”。让我们称之为“项目关联性映射” 关联性本身是由另一个进程计算的。由于在 Tensorflow 示例中没有映射类型,我们有 2 个特征:一个是项目 id 的有序列表,另一个是关联性的有序列表。它们是同步的。所以我的“item affinities map”实际上是由 to featuresitem_affinities_ids
和表示的item affinities
。是的,我使用项目相似性信息作为输入并尝试预测另一个项目相似性。但这些是不同的,输入是针对与我试图预测的产品用例不同的产品用例计算的。
我还有第三个特征,它是item_id
我试图计算新亲和力的项目的特征。
在幼稚的 numpy 中,我可以这样做:
现在,在现实生活中,事情会变得更加复杂:
- 我想要一个张量流实现(TFT 或本机 TF)。
- 我们使用 TF v.13
- “项目关联性地图”可能会丢失。所以这两个结果
item_affinities_ids
和item affinities
表示为SparseTensor
s。但是,如果一个存在,另一个也存在,并且它们保证是同步的(相同的大小,相同的顺序)。 - 我们对批量示例进行预测和训练,因此我的每个(稀疏)张量的第一个维度是 batch_size > 1。
item_id
可能不存在于“项目关联性地图”中。在这种情况下,我想要一个默认值(0.0)。
我正在寻找一个可以处理所有这些要求的 tensorflow 实现。到目前为止,我有:
但它不处理 SparseTensor 和 item_id 不在item_affinities
列表中的情况。我正在寻找任何人来帮助我。
tensorflow-transform - 如何在生产(流式传输管道)中重用 TFX 转换进行推理?
我想使用 TFX 构建一个训练管道,并最终重用我的数据转换来向 TensorFlow-Serving 发出推理请求,而 TFX 应该能够做到这一点。我发现的 TFX 示例似乎都建立了批量训练管道并最终在 TensorFlow-Serving 中推送模型,但它们没有解决推理部分,由于延迟原因,推理部分必须是流式管道。我可能会编写自己的工具来提出请求,但不将我的 Transform 组件重用于推理部分似乎是一种浪费。
我已经在本地运行了 TFX 示例安装脚本在 dags 中安装的示例。气流 UI 清楚地表明这些是批处理管道。
python - 正确使用 TensorFlow Transform apply_buckets
这是在 TensorFlow 1.11.0 上。的文档描述性tft.apply_buckets
不是很强。具体来说,我读到:“bucket_boundaries:桶边界表示为 2 阶张量。”
我认为这必须是存储桶索引和存储桶边界?
当我尝试使用下面的玩具示例时:
我得到:
InvalidArgumentError: Expected sorted boundaries [Op:BucketizeWithInputBoundaries] name: assign_buckets
请注意,在这种情况下x
,bucket_boundaries
参数是:
因此,似乎bucket_boundaries
不应该是索引和边界。有谁知道如何正确使用这种方法?
tensorflow - tensorflow_transform 是 tf 2.0 的持续关注点吗?
例如,它最终会起作用吗?它有效吗?目标和计划是什么?我们在哪里可以读到它。
python - 一旦 Apache Beam 支持 Python 3,tf.data 是否会集成到 tf.Transform 中?
阅读有关 TFX、Kubeflow、Beam、Flink 和源源不断的 Apache 项目的信息,我越来越感到困惑。我很好奇 TensorFlow 团队打算将什么推广到用于训练 Keras 模型的规范 ETL API。
我目前对 in 的tf.data
支持感到非常满意,tf.keras
但非常缺少两件事:
- 用于标准化特征/目标的数据集缩减。
- 具有持久的每个元素缓存的完整数据集改组(例如,相当于使用 NumPy memmap 进行索引排列)。
我的预感是tf.data
存在的,因为tf.Transform
仅适用于 Python 2。一旦最终确定,未来会tf.data
怎样?它会被集成到tf.Transform
其中还是相反?最终将tf.data
获得上述功能,而与 Apache Beam 的状态无关?
TL;DR:什么是用于训练 Keras 模型的规范 ETL API?TensorFlower 能否阐明 TensorFlow 生态系统的计划以及它们应该如何结合在一起?
PS:这一切在tensorflow_io
哪里?tensorflow_datasets
他们似乎做了很多重新发明轮子而不是依赖tf.Transform
.
tensorflow - tf.contrib.layers.feature_column 和 tf.feature_column 有什么关系?
它们提供所有几乎相同的 API。以 embedding_column 为例:
- tf.feature_column https://www.tensorflow.org/api_docs/python/tf/feature_column/embedding_column
- tf.contrib.layers.feature_column https://www.tensorflow.org/api_docs/python/tf/contrib/layers/embedding_column
哪个是首选?
另外,特征列和张量流变换有什么关系?它们提供了类似的功能。
python - 如何正确使用 tft.compute_and_apply_vocabulary 和 tft.tfidf?
我尝试使用 tft.compute_and_apply_vocabulary 和 tft.tfidf 在我的 jupyter notebook 中计算 tfidf。但是我总是收到以下错误:
但占位符类型实际上是字符串。
这是我的代码:
版本:
- 张量流:1.14
- 张量流变换:0.14
提前致谢!