当传递给keras密集层时,参差不齐的张量会抛出“考虑将元素转换为支持的类型”

问题描述

我正在尝试建立一个以参差不齐的张量作为输入的seq2seq模型,因此我不必担心填充和掩盖我的输入。但是,当我将参差不齐的张量传递到致密层时,我遇到了一个问题。

这是示例代码

import tensorflow as tf
from tensorflow.keras import Input,layers

def build_model():
    inp = Input(shape=[None,3],ragged = True)
    out = layers.Dense(10)(inp)
    return Model(inputs = inp,outputs = out)

model = build_model()

输出以下错误消息

TypeError: Failed to convert object of type <class 'tensorflow.python.ops.ragged.ragged_tensor.RaggedTensor'> to Tensor. Contents: tf.RaggedTensor(values=Tensor("Placeholder_86:0",shape=(None,3),dtype=float32),row_splits=Tensor("Placeholder_87:0",),dtype=int64)). Consider casting elements to a supported type.

我尝试在row_splits上强制转换float,但它是只读的。现在我的问题是,

  1. 错误消息背后的原因是什么,我该如何解决

  2. 对可变长度序列使用参差不齐的张量,而不是将输入填充到序列的最大长度然后掩盖,这是一个好主意吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)