我正在尝试将TensorFlow中的数据集转换为具有多个单值张量的数据集。目前数据集的结构如下:
[12 43 64 34 45 2 13 54] [34 65 34 67 87 12 23 43] [23 53 23 1 5] ...
转换后,它应该是这样的:
[12] [43] [64] [34] [45] [2] [13] [54] [34] [65] [34] [67] [87] [12] ...
我的最初想法是在数据集上使用flat_map
,然后使用reshape
和unstack
将每个张量转换为张量列表:
output_labels = self.dataset.flat_map(convert_labels)
...
def convert_labels(tensor):
id_list = tf.unstack(tf.reshape(tensor, [-1, 1]))
return tf.data.Dataset.from_tensors(id_list)
然而每个张量的形状只有部分已知(即 (?, 1)
),这就是为什么无法执行 unstack 操作的原因。是否有任何方法可以在不显式迭代它们的情况下仍然“连接”不同的张量?