在 CIFAR-10 上训练 Resnet 所花费的时间

Time taken to train Resnet on CIFAR-10

我正在编写一个神经网络来在 CIFAR-10 数据集上训练 Resnet。 论文 Deep Residual Learning For Image Recognition 提到了大约 60,000 个时期的训练。

我想知道 - 在这种情况下,纪元到底指的是什么?它是单次通过大小为 128 的小批量(这意味着大约 150 次通过整个 50000 个图像训练集?

此外,预计训练需要多长时间(假设仅 CPU,20 层或 32 层 ResNet)?按照上面定义的epoch,好像要花很长时间...

我原以为只有 2-3 小时左右,这相当于通过 50000 个图像训练集大约 10 次。

该论文从未提及 60000 个 epoch。 epoch 通常被认为是对整个数据集进行一次遍历。 60000 个纪元太疯狂了。他们在 CIFAR-10 上使用 64000 迭代 。一次迭代涉及处理一个小批量、计算然后应用梯度。

你是正确的,这意味着超过 150 次通过数据集(这些是纪元)。现代神经网络模型通常需要几天或几周的时间来训练。 ResNets 尤其麻烦,因为它们庞大 size/depth。请注意,他们在论文中提到在两个 GPU 上训练模型,这比在 CPU.

上要快得多

如果您只是训练一些模型 "for fun" 我会建议显着缩小它们。尝试8层左右;即使这样也可能太多了。如果您这样做是为了 research/production 使用,请购买一些 GPU。