Tensorflow 2.2:批量大小不断增加的数据集

Tensorflow 2.2:批量大小不断增加的数据集,tensorflow,keras,Tensorflow,Keras,我有一个自定义模型来训练文本分类器。在我们的代码中,我们重写了tf.keras.models.Model的所有重要方法,例如fit、predict等。其中一个原因是我们希望在每个时代调整批量大小。例如,在第一个阶段,我们的批处理大小为16,在下一次迭代中,批处理大小将增加到20,依此类推。直到我们达到上限 下面是生成我们的tf.Dataset的方法。我们将为每个历元调用此方法,以获得具有所需批量大小的数据集 def as_tf_dataset( self, batch_size: int

我有一个自定义模型来训练文本分类器。在我们的代码中,我们重写了
tf.keras.models.Model
的所有重要方法,例如
fit
predict
等。其中一个原因是我们希望在每个时代调整批量大小。例如,在第一个阶段,我们的批处理大小为16,在下一次迭代中,批处理大小将增加到20,依此类推。直到我们达到上限

下面是生成我们的
tf.Dataset
的方法。我们将为每个历元调用此方法,以获得具有所需批量大小的数据集

def as_tf_dataset(
    self, batch_size: int, batch_strategy: Text = SEQUENCE, shuffle: bool = False
) -> tf.data.Dataset:
    """Create tf dataset."""

    shapes, types = self._get_shapes_types()

    return tf.data.Dataset.from_generator(
        lambda batch_size_: self._gen_batch(batch_size_, batch_strategy, shuffle),
        output_types=types,
        output_shapes=shapes,
        args=([batch_size]),
    )
使用Tensorflow 2.2。可以只覆盖
训练步骤
测试步骤
而不是
拟合
等。这将大大简化我们的代码。然而,我找不到一种方法来保持不断增长的批量大小


有人知道如何解决这个问题吗?或者我们是否需要保持我们的自定义
适合
方法来实现这一点?

我认为这实际上现在是不可能的。要控制Keras
fit
方法中数据集迭代器的创建,您需要控制该方法中使用的
DataHandler
,而我们没有。您可以自定义model fit方法,此链接将向您解释详细信息