tf.keras.layers.Conv1D 是否支持 RaggedTensor 输入?
Does tf.keras.layers.Conv1D support RaggedTensor input?
在tensorflow conv1D层文档中,它是这样说的;
'When using this layer as the first layer in a model, provide an
input_shape argument (tuple of integers or None, e.g. (10, 128) for
sequences of 10 vectors of 128-dimensional vectors, or (None, 128) for
variable-length sequences of 128-dimensional vectors.'
所以我知道我们可以输入可变长度序列,但是当我对 conv1D 层使用参差不齐的张量输入时,它给了我一个错误:
ValueError: Layer conv1d does not support RaggedTensors as input.
如果不是 RaggedTensors,可变长度序列的真正含义是什么?
谢谢,
在此处为社区提供答案,即使答案已存在于评论部分。
tf.keras.layers.Conv1D
不支持不规则张量,您可以使用 tf.keras.preprocessing.sequence.pad_sequences
填充序列并将其用作 Conv1D 层的输入。
这是 pad_sequenes 的示例。
sequence = [[1], [2, 3], [4, 5, 6]]
tf.keras.preprocessing.sequence.pad_sequences(sequence)
array([[0, 0, 1],[0, 2, 3],[4, 5, 6]], dtype=int32)
您还可以进行固定长度的填充,更改填充值,然后 post 填充,如下所示:
sequence = [[1], [2, 3], [4, 5, 6]]
tf.keras.preprocessing.sequence.pad_sequences(sequence,maxlen=2,value=-1,padding="post")
array([[ 1, -1],[ 2, 3],[ 5, 6]], dtype=int32)
在tensorflow conv1D层文档中,它是这样说的;
'When using this layer as the first layer in a model, provide an input_shape argument (tuple of integers or None, e.g. (10, 128) for sequences of 10 vectors of 128-dimensional vectors, or (None, 128) for variable-length sequences of 128-dimensional vectors.'
所以我知道我们可以输入可变长度序列,但是当我对 conv1D 层使用参差不齐的张量输入时,它给了我一个错误:
ValueError: Layer conv1d does not support RaggedTensors as input.
如果不是 RaggedTensors,可变长度序列的真正含义是什么?
谢谢,
在此处为社区提供答案,即使答案已存在于评论部分。
tf.keras.layers.Conv1D
不支持不规则张量,您可以使用 tf.keras.preprocessing.sequence.pad_sequences
填充序列并将其用作 Conv1D 层的输入。
这是 pad_sequenes 的示例。
sequence = [[1], [2, 3], [4, 5, 6]]
tf.keras.preprocessing.sequence.pad_sequences(sequence)
array([[0, 0, 1],[0, 2, 3],[4, 5, 6]], dtype=int32)
您还可以进行固定长度的填充,更改填充值,然后 post 填充,如下所示:
sequence = [[1], [2, 3], [4, 5, 6]]
tf.keras.preprocessing.sequence.pad_sequences(sequence,maxlen=2,value=-1,padding="post")
array([[ 1, -1],[ 2, 3],[ 5, 6]], dtype=int32)