我有一个包含一些元素的tensorflow数据集,我想用tf.data.Dataset.save
保存它,这样每个元素都有自己的分片。因此,如果数据集包含2,000个元素,它将被保存到2,000个分片。
这里的文档只指定了如何创建1个分片,但没有指定如何为每个元素创建一个分片。
下面,我可以使用enumerate来完成它,但是有没有其他方法可以不保存enumerate
中的索引呢?
tuple_data = np.array([3, 4])
data = tf.data.Dataset.from_tensor_slices(tuple_data)
data = data.enumerate()
print(list(data.as_numpy_iterator()))
# [(0, 3), (1, 4)]
data.save(path='~/Desktop/1', shard_func=lambda i, x: i)
1条答案
按热度按时间nsc4cvqm1#
对你的问题没有用,但是如果有人只是想创建分片,让我们提到可以使用随机:
现在我想知道你的目标是否可以通过调用hash并生成一个int64来实现。即使可以,我猜也有一些碰撞的风险。