【发布时间】:2018-10-09 21:44:48
【问题描述】:
我已经成功地将 TFTransformOutput 拟合到一些数据(在这种情况下,来自 UCI 的人口普查数据集在 TF 和 TFX 示例中很常见。)我尝试使用方法 transform_raw_features(raw_features) 应用转换器,但不断得到错误:
ValueError: 节点 'transform/transform/inputs/workclass_copy' 有一个 _output_shapes 属性与输出#0 的 GraphDef 不一致:Shapes 必须是等位的,但是是 0 和 1
深入研究源代码,似乎错误源于方法_partially_apply_saved_transform_impl中的saved_transform_io,同时执行:
saver = tf_saver.import_meta_graph(meta_graph_def, import_scope=import_scope,
input_map=input_map)
我检查了由 TFX TFTransform 和 Beam 生成的 meta_graph_def,并注意到该图确实有一系列具有输入/输出等级差异的复制变量。然而,这不是我能控制的。
错误消息中的列是“workclass”,它是一个简单的分类列。我可能做错了什么?调试此问题的最佳方法是什么?在这一点上,我已经深入研究了 TF 源代码,但错误似乎源于 TFTransform 图的编写方式,不确定我必须更改/修复什么杠杆。
这是使用 TF Transform v0.9 和对应的 TF v1.9
Traceback(最近一次调用最后一次):文件 “/home/sahmed/workspace/ml_playground/TFX-TFT/trainers.py”,第 449 行, 在 parse_csv transform_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 raise ValueError(str(e)) ValueError: Node 'transform/transform/inputs/workclass_copy' 有一个 _output_shapes 属性与输出 #0 的 GraphDef 不一致:必须是形状 排名相等,但为 0 和 1
【问题讨论】:
标签: tensorflow apache-beam tensorflow-transform