gpt4 book ai didi

machine-learning - Tensorflow 批处理参数

转载 作者:行者123 更新时间:2023-11-30 09:10:41 25 4
gpt4 key购买 nike

批处理看起来比 feed_dicts 更干净,所以我试图理解 Tensorflow 中的批处理。

下面的代码块是否会在批处理中创建 32 个相同的图像,然后将其送入队列?

# Creates batches of 32 images and 32 labels.
image_batch, label_batch = tf.train.shuffle_batch(
[single_image, single_label],
batch_size=32,
num_threads=4,
capacity=50000,
min_after_dequeue=10000)

一些背景信息:我目前有一个包含大约 50K 行的文件。我正在使用 tf.train.string_input_ Producer 和 tf.decode_csv 从 csv 中读取行,但对于向 tf.train 提供什么感到困惑。 shuffle_batch 作为参数,单个行或包含从文件中读取的所有行的张量。

最佳答案

在您问题的代码片段中,张量 single_imagesingle_label 对应于一张图像及其相关标签。从 tf.train.shuffle_batch() 返回的张量、image_batchlabel_batch 对应于打包在一起的 32 个可能*不同的图像,以及 32 个相关标签。 TensorFlow 使用 tf.RandomShuffleQueue在内部对数据进行混洗,并创建额外的线程来评估 single_imagesingle_label,以便将它们添加到此队列中。

根据您传递的参数,tf.train.shuffle_batch() 函数具有不同的行为。例如,如果您传递 enqueue_many=True,则 tensors 参数中的张量将被解释为批量元素,并且 TensorFlow 将在前导维度上连接它们(因此每个张量在第 0 维必须具有相同的大小)。使用 enqueue_many=True 您可以将整个数据集传递给 tf.train.shuffle_batch(),也可以传递批量元素(例如使用 tf.ReaderBase.read_up_to() )。

<小时/>

* 我说“可能不同”是因为您使用的是批处理函数的混洗版本,并且如果您的数据集与容量min_after_dequeue相比较小参数,您可能会在单个批处理中看到同一示例的多个副本。

关于machine-learning - Tensorflow 批处理参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39492157/

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