我不知道ragged_rank
传递给的参数的作用是什么tf.ragged.constant()
。
玩它,我尝试了以下代码:
list(tf.data.Dataset.from_tensor_slices
(tf.ragged.constant([[[1,2,3], [4,5,6]],[[7,8,9]]], ragged_rank=1)))
在哪里ragged_rank=1
通过并产生
[<tf.Tensor: shape=(2, 3), dtype=int32, numpy=
array([[1, 2, 3],
[4, 5, 6]])>,
<tf.Tensor: shape=(1, 3), dtype=int32, numpy=array([[7, 8, 9]])>]
另一方面,如果我通过ragged_rank=2
,
list(tf.data.Dataset.from_tensor_slices
(tf.ragged.constant([[[1,2,3], [4,5,6]],[[7,8,9]]], ragged_rank=2)))
结果看起来与我有些相似,但与上述不同:
[<tf.RaggedTensor [[1, 2, 3], [4, 5, 6]]>, <tf.RaggedTensor [[7, 8, 9]]>]
此外,我发现以下代码会产生错误
list(tf.data.Dataset.from_tensor_slices
(tf.ragged.constant([[[1,2,3], [4,5,6]],[[7,8]]], ragged_rank=1)))
ValueError: inner values have inconsistent shape
除非我通过ragged_rank=2
,否则结果:
[<tf.RaggedTensor [[1, 2, 3], [4, 5, 6]]>, <tf.RaggedTensor [[7, 8]]>]