SimpleTransformers 模型没有对整个数据进行训练(如 epochs 栏下的括号中所示)?

SimpleTransformers model not training on whole data (As shown in brackets under epochs bar)?

我的数据有 1751 个句子,但是在训练时,一个数字出现在 epochs 条下。有时它是 1751 这是有道理的,它是我拥有的句子数量,但大多数时候它是数据数量的 50%(我拥有的句子如下图所示)。

我试图查看文档以了解该数字是否应与我的训练集大小相同,但我找不到答案。

我正在使用带有 GPU 后端的 Kaggle。这是否意味着模型确实没有训练所有数据?

简而言之:不是,是在所有数据上训练。

首先让我们看看一些参数:

num_of_train_epochs: 4:您的设置,这意味着整个数据集将被训练 4 次。这就是为什么输出中有 4 个柱状图的原因。

train_batch_size: 8:这是 default setting,这意味着对于权重的每次更新,您在训练数据中使用 8 条记录(总共 1751 条记录)

所以这意味着,每个时期总共有 1751/8 = 218.875 个批次,这是您在输出中看到的 219/219。

你在底部看到的 876 只是意味着它总共经历了 219(每个时期的批次)* 4(时期的数量)= 876 batches/updates。

证明这一点的一种方法是将 num_of_train_epochs 更改为 1。您应该看到 219 而不是 876。

batch and epoch的定义:

The batch size is a number of samples processed before the model is updated.

The number of epochs is the number of complete passes through the training dataset.