问题标签 [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.

0 投票
1 回答
996 浏览

apache-beam - 使用 tensorflow 变换的 writeTransform 函数时出错

我目前正在使用 Tensorflow 转换库来转换和保存转换,尽管它以前可以正常工作,目前我面临一些类似于下面的问题

我不断收到相同的错误,例如-

'BeamDatasetMetadata' 对象没有属性 'schema' [在运行 'AnalyzeAndTransformDataset/TransformDataset/ConvertAndUnbatch' 时]

是否有人熟悉上述错误,我们该如何解决?

我的变换函数如下所示 -

输出堆栈 -

pip show tensorflow-transform apache-beam

上述问题似乎并不总是发生!看起来它与其他包有一些冲突。

0 投票
2 回答
1717 浏览

python - Tensorflow:创建一个从稀疏值读取的服务输入函数

我正在使用来自 tf.Transform 的预处理数据在 Tensorflow 中创建一个估计器。对于服务时间,我希望能够直接从 JSON 文件中读取,如下所示:

top_k值不是模型图的一部分,仅在估计器内部用于服务时间。我的问题是我不知道代表item_ids稀疏张量的值。

我的服务功能如下:

当我运行上面生成的图表时,gcloud ml-engine local predict出现以下错误

Placeholder_1:0值的占位符在哪里item_ids

关于如何支持可变长度值的任何想法?

0 投票
1 回答
273 浏览

python - 在Tensorflow中的序列张量中将尾随反转为前导填充零

我有一个稀疏张量(张量是在分类值上使用 tf.Transform 生成的),我使用以下命令将其转换为密集表示

这会产生一个大小为 的矩阵batch_size x max_seq_length。数组看起来像这样

我想将零填充从尾随反转为前导,以便看起来像这样

关于如何做到这一点的任何想法?

0 投票
2 回答
1057 浏览

tensorflow - 使用 TensorFlow Transform 有效地将标记转换为词向量

我想在训练、验证和推理阶段使用 TensorFlow Transform 将标记转换为词向量。

我遵循了这个StackOverflow 帖子并实现了从标记到向量的初始转换。转换按预期工作,我获得EMB_DIM了每个令牌的向量。

当我重构代码以作为 TFX 变换图运行时,我收到以下错误ConversionError

错误信息

问题

  1. 为什么 TF 变换步骤需要额外的转换/转换?
  2. 这种将标记转换为词向量的方法可行吗?词向量在内存中可能有数 GB。Apache Beam 如何处理向量?如果 Beam 在分布式设置中,是否需要工人数量N x vector memoryN
0 投票
2 回答
1813 浏览

tensorflow - 在 Datalab 上安装 tensorflow_transform 和 apache_beam

我正在查看 google-cloud Coursera 课程中的这些示例,尽管它们一直工作到几周前,但我无法再在 Datalab 上安装 tf.transform 或 apache_beam。

https://github.com/GoogleCloudPlatform/training-data-analyst/blob/master/courses/machine_learning/feateng/tftransform.ipynb

https://github.com/GoogleCloudPlatform/training-data-analyst/blob/master/courses/machine_learning/deepdive/06_structured/4_preproc_tft.ipynb

安装 tensorflow_transform 时出现以下错误:

twisted 18.7.0 需要 PyHamcrest>=1.9.0,未安装。datalab 1.1.3 有六个==1.10.0 的要求,但您将有六个不兼容的 1.11.0。gapic-google-cloud-pubsub-v1 0.15.4 要求 oauth2client<4.0dev,>=2.0.0,但您将拥有不兼容的 oauth2client 4.1.2。proto-google-cloud-pubsub-v1 0.15.4 要求 oauth2client<4.0dev,>=2.0.0,但您将拥有不兼容的 oauth2client 4.1.2。apache-airflow 1.9.0 需要漂白剂==2.1.2,但您将拥有不兼容的漂白剂 1.5.0。apache-airflow 1.9.0 有要求 funcsigs==1.0.0,但你会有不兼容的 funcsigs 1.0.2。google-cloud-monitoring 0.28.0 要求 google-cloud-core<0.29dev,>=0.28.0,但您需要 google-cloud-core 0.25。0 不兼容。proto-google-cloud-datastore-v1 0.90.4 要求 oauth2client<4.0dev,>=2.0.0,但您将拥有不兼容的 oauth2client 4.1.2。pandas-gbq 0.3.0 要求 google-cloud-bigquery>=0.28.0,但您将拥有不兼容的 google-cloud-bigquery 0.25.0。googledatastore 7.0.1 要求 httplib2<0.10,>=0.9.1,但您将拥有不兼容的 httplib2 0.11.3。googledatastore 7.0.1 要求 oauth2client<4.0.0,>=2.0.1,但您将拥有不兼容的 oauth2client 4.1.2。无法卸载“莳萝”。这是一个 distutils 安装的项目,因此我们无法准确确定哪些文件属于它,这只会导致部分卸载。0dev,>=2.0.0,但您将拥有不兼容的 oauth2client 4.1.2。pandas-gbq 0.3.0 要求 google-cloud-bigquery>=0.28.0,但您将拥有不兼容的 google-cloud-bigquery 0.25.0。googledatastore 7.0.1 要求 httplib2<0.10,>=0.9.1,但您将拥有不兼容的 httplib2 0.11.3。googledatastore 7.0.1 要求 oauth2client<4.0.0,>=2.0.1,但您将拥有不兼容的 oauth2client 4.1.2。无法卸载“莳萝”。这是一个 distutils 安装的项目,因此我们无法准确确定哪些文件属于它,这只会导致部分卸载。0dev,>=2.0.0,但您将拥有不兼容的 oauth2client 4.1.2。pandas-gbq 0.3.0 要求 google-cloud-bigquery>=0.28.0,但您将拥有不兼容的 google-cloud-bigquery 0.25.0。googledatastore 7.0.1 要求 httplib2<0.10,>=0.9.1,但您将拥有不兼容的 httplib2 0.11.3。googledatastore 7.0.1 要求 oauth2client<4.0.0,>=2.0.1,但您将拥有不兼容的 oauth2client 4.1.2。无法卸载“莳萝”。这是一个 distutils 安装的项目,因此我们无法准确确定哪些文件属于它,这只会导致部分卸载。会有不兼容的 google-cloud-bigquery 0.25.0。googledatastore 7.0.1 要求 httplib2<0.10,>=0.9.1,但您将拥有不兼容的 httplib2 0.11.3。googledatastore 7.0.1 要求 oauth2client<4.0.0,>=2.0.1,但您将拥有不兼容的 oauth2client 4.1.2。无法卸载“莳萝”。这是一个 distutils 安装的项目,因此我们无法准确确定哪些文件属于它,这只会导致部分卸载。会有不兼容的 google-cloud-bigquery 0.25.0。googledatastore 7.0.1 要求 httplib2<0.10,>=0.9.1,但您将拥有不兼容的 httplib2 0.11.3。googledatastore 7.0.1 要求 oauth2client<4.0.0,>=2.0.1,但您将拥有不兼容的 oauth2client 4.1.2。无法卸载“莳萝”。这是一个 distutils 安装的项目,因此我们无法准确确定哪些文件属于它,这只会导致部分卸载。

0 投票
1 回答
487 浏览

tensorflow - 使用 Tensorflow Transform 的 Apache Beam 作业(Python)被 Cloud Dataflow 杀死

我正在尝试在 Dataflow 上运行基于 Tensorflow Transform 的 Apache Beam 作业,但它被杀死了。有人经历过这种行为吗?这是 DirectRunner 的一个简单示例,它在我的本地运行正常,但在 Dataflow 上失败(我正确更改了运行器):

此外,我的生产代码(未显示)失败并显示以下消息:The job graph is too large. Please try again with a smaller job graph, or split your job into two or more smaller jobs.

有什么提示吗?

0 投票
0 回答
68 浏览

tensorflow - tf.transform 可以处理 viewfs:// 路径吗?

我发现在 apache beam 2.5.0 之后,可以通过 beam 的 python sdk 识别 hdfs 路径。但是在“/python2.7/site-packages/apache_beam/io/hadoopfilesystem.py”中,支持的架构只有“hdfs”。当我加载 viewfs 路径时,出现此错误:

ValueError: Unable to get the Filesystem for path viewfs://hadoop-meituan/ghnn01/user/hadoop-poistar/huangshangzhi/sentiment_analysis/data/train_example.txt

谁能给我一些关于使用 tf.transform 读取 viewfs 文件系统中的文件的建议,我真的很感激。谢谢!

0 投票
1 回答
413 浏览

tensorflow - 加载/应用 TFX Beam 变换图时 TFX 变换等级不匹配

我已经成功地将 TFTransformOutput 拟合到一些数据(在这种情况下,来自 UCI 的人口普查数据集在 TF 和 TFX 示例中很常见。)我尝试使用方法 transform_raw_features(raw_features) 应用转换器,但不断收到错误:

ValueError:节点 'transform/transform/inputs/workclass_copy' 的 _output_shapes 属性与输出 #0 的 GraphDef 不一致:形状必须是等位的,但为 0 和 1

深入研究源代码,似乎错误源自方法 _partially_apply_saved_transform_impl 中的 saved_transform_io,同时执行以下操作:

我检查了由 TFX TFTransform 和 Beam 生成的 meta_graph_def,并注意到该图确实有一系列具有输入/输出等级差异的复制变量。然而,这不是我能控制的。

错误消息中的列是“workclass”,它是一个简单的分类列。我可能做错了什么?调试此问题的最佳方法是什么?在这一点上,我已经深入研究了 TF 源代码,但错误似乎源于 TFTransform 图的编写方式,不确定我必须更改/修复什么杠杆。

在此处输入图像描述

这是使用 TF Transform v0.9 和相应的 TF v1.9

回溯(最近一次通话):文件“/home/sahmed/workspace/ml_playground/TFX-TFT/trainers.py”,第 449 行,在 parse_csv 中的transformed_stuff=xformer.transform_raw_features(raw_features) 文件“/home/sahmed/miniconda3/ envs/kml2/lib/python2.7/site-packages/tensorflow_transform/output_wrapper.py”,第 122 行,在 transform_raw_features self.transform_savedmodel_dir, raw_features)) 文件“/home/sahmed/miniconda3/envs/kml2/lib/python2. 7/site-packages/tensorflow_transform/saved/saved_transform_io.py”,第 360 行,在 partial_apply_saved_transform_internal saved_model_dir、logical_input_map、tensor_replacement_map) 文件“/home/sahmed/miniconda3/envs/kml2/lib/python2.7/site-packages/tensorflow_transform /saved/saved_transform_io.py”,第 218 行,在 _partially_apply_saved_transform_impl input_map=input_map) 文件“/home/sahmed/miniconda3/envs/kml2/lib/python2.7/site-packages/tensorflow/python/training/saver.py”,第 1960 行,在 import_meta_graph **kwargs) 文件中“/home/sahmed/miniconda3/envs/kml2/lib/python2.7/site-packages/tensorflow/python/framework/meta_graph.py”,第 744 行,在 import_scoped_meta_graph producer_op_list=producer_op_list)文件“/home/sahmed/miniconda3 /envs/kml2/lib/python2.7/site-packages/tensorflow/python/util/deprecation.py”,第 432 行,在 new_func 返回 func(*args, **kwargs) 文件“/home/sahmed/miniconda3/ envs/kml2/lib/python2.7/site-packages/tensorflow/python/framework/importer.py”,第 422 行,在 import_graph_def 中引发 ValueError(str(e)) ValueError: Node 'transform/transform/inputs/workclass_copy' 的 _output_shapes 属性与输出 #0 的 GraphDef 不一致:形状必须是等阶的,但为 0 和 1

0 投票
0 回答
453 浏览

python-2.7 - Tensorflow 变换(TFX)compute_and_apply_vocabulary/sparse_tensor_to_dense_with_shape 的问题

我在 Dataflow 上运行 Apache Beam 作业时遇到了一些问题。该代码在小型数据集上运行良好,但在 Dataflow 上运行更大的批处理作业时,我收到以下消息:

RuntimeError: InvalidArgumentError: indices[10925] = [889,43] is out of bounds: need 0 <= index < [1238,43] [[{{node transform/transform/SparseToDense}} = SparseToDense[T=DT_INT64, Tindices =DT_INT64, validate_indices=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](transform/transform/StringSplit, transform/transform/SparseToDense/output_shape, transform/transform/compute_and_apply_vocabulary /apply_vocab/hash_table_Lookup、transform/transform/compute_and_apply_vocabulary/apply_vocab/string_to_index/hash_table/Const)]]

取自 Dataflow 中的日志。

我发现它连接到我的 AnalyzeAndTransformDataset 函数:

目标是为每个示例获得长度为 43 的密集输出向量。这将作为一个家庭项目用于 Twitter 数据的情感分析 :)

谢谢你的帮助!

更新:

我没有设法解决这个问题,而是在我的 Tensorflow 估计器模型中将向量转换为密集向量。不是我希望的解决方案,但它有效!也已将其报告给 GitHub 上的 Tensorflow 转换。

0 投票
1 回答
195 浏览

apache-spark - 如何使用张量流或火花分割高度不平衡的数据?

数据 -

我拥有的训练和测试数据的大小非常大~ 150gb并且高度不平衡以及99% 的否定标签/ 1% 的 pos标签,而且我不能下采样,因为它是一个非常重要的信息,所以目前使用加权估计器。

问题 -

如果我们使用 spark 使用 sample() 函数进行拆分并保存到多个文件中,那么很有可能只有在许多文件中的一个文件中存在否定样本(例如 100 个文件中的 1 个),这会在摄取数据只有正样本被馈送到估计器,导致零损失并且模型无法学习。

此外,我在制作批处理时确实使用了随机播放,但输入函数将多个文件作为输入,因此通过从每个文件中的数据随机播放来创建批处理,这导致模型在很长一段时间内只输入负例,直到随机播放发生对于具有负样本的文件。

有没有更好的方法来确保在使用pyspark保存数据时,由 spark 保存的每个文件都有来自两个类/标签的样本(最好与整体数据 pos/neg 比率相同)?

在这些情况下,我尝试使用一个大文件来馈送和洗牌工作正常,但是当我们馈送许多文件时,它会产生零损失问题,因为只有一个类的样本被馈送到模型中。

在 tensorflow 代码中使用以下输入函数 -

任何建议,将不胜感激!谢谢