张量流中的最后一批不完整

Incomplete last batch in tensorflow

我很新,找不到这个问题的直接答案。我想知道 tensorflow 2.0 用来处理训练中最后一批不完整的默认策略是什么(例如,总共 1023 个样本的训练集中的 23 个样本,批次大小为 100)。

我很好奇,因为直觉上如果相同的 23 个样本总是被放置在每个 epoch 的最后一批中,那么与其他 1000 个样本(即每个 1/100)。我想知道 tf 的内部运作是否会在每个时期自动洗牌样本。

非常感谢您的帮助!

关于你的问题有两点:

  1. tf.keras.model.fit() 有一个关键字参数 (kwarg) shuffle。它默认为 True。您可以在 https://www.tensorflow.org/api_docs/python/tf/keras/Model?version=stable#fit 查看文档。示例的改组发生在每个纪元的开始。因此,在每个训练时期,最后一批中的样本是随机的。在这方面,没有一个例子得到特殊对待或不当影响。
  2. fit() 方法的损失和度量计算机制在内部考虑了批量大小。该方法输出的最终损失和度量值是 加权 批次的平均值,批次大小是权重。