gpt4 book ai didi

python - 如何在 Tensorflow 2.0 中制作参差不齐的批处理?

转载 作者:行者123 更新时间:2023-12-04 01:38:32 24 4
gpt4 key购买 nike

我正在尝试从由一维数值数据张量组成的 Tensorflow 数据集创建数据输入管道。我想创建一批参差不齐的张量;我不想填充数据。

例如,如果我的数据是以下形式:

[
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[0, 1, 2, 3, 4]
...
]

我希望我的数据集包含以下形式的批处理:

<tf.Tensor [
<tf.RaggedTensor [
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[0, 1, 2, 3, 4],
...]>,
<tf.RaggedTensor [
[ ... ],
...]>
]>

我已经尝试使用 map 创建一个 RaggedTensor,但我似乎无法在一维数据上执行此操作。

最佳答案

我认为这可以通过批处理前后的一些工作来实现。

# First, you can expand along the 0 axis for each data point
dataset = dataset.map(lambda x: tf.expand_dims(x, 0))
# Then create a RaggedTensor with a ragged rank of 1
dataset = dataset.map(lambda x: tf.RaggedTensor.from_tensor(x))
# Create batches
dataset = dataset.batch(BATCH_SIZE)
# Squeeze the extra dimension from the created batches
dataset = dataset.map(lambda x: tf.squeeze(x, axis=1))

那么最终的输出将是这样的形式:

<tf.RaggedTensor [
<tf.Tensor [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>,
<tf.Tensor [0, 1, 2, 3]>,
...
]>

对于每个批处理。

关于python - 如何在 Tensorflow 2.0 中制作参差不齐的批处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58529511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com