我们正在使用TFX开发一个ML管道,其中包含最常见的组件,如ExampleGen、Transform、Trainer等。必须馈送到DNN的示例具有不同的长度,因此我们决定使用粗糙张量来启用非固定维度的输入并避免填充。然而,Trainer组件似乎试图自动将输入转换为张量或类似的东西。
TypeError: Failed to convert type 'tensorflow.python.ops.ragged.ragged_tensor.RaggedTensor'>张量。内容:>tf.RaggedTensor(values=Tensor("Placeholder:0", shape=(None, 605), dtype=float32),>row_splits=Tensor("Placeholder_1:0", shape=(None,), dtype=int64))。考虑将元素强制转换为>支持的类型。
该模型是一个用于结构化数据的KerasSequential DNN,主要具有Dense层。有可能在TFX中编写的管道中使用粗糙张量吗?Keras支持粗糙张量吗?
谢谢大家!
顺便说一下,我们使用的是:
- 的敏感性:v1.4.0
- TensorFlow: v2.6.3
- Python: 3.7.12
粗糙张量本质上是一个包含可变数量元素的列表。将其放入深度神经网络的问题在于,你不知道你会得到多少输入,因此你无法提前创建一个图来进行计算。粗糙张量不能进入稠密层是线性代数的限制,而不是张量流。如果你能分享更多的细节使你的问题重现,我可以试着帮忙。