【问题标题】:Time taken to train Resnet on CIFAR-10在 CIFAR-10 上训练 Resnet 所花费的时间
【发布时间】:2018-09-02 19:45:04
【问题描述】:

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

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

另外,这预计需要多长时间来训练(假设只有 CPU,20 层或 32 层 ResNet)?有了上面对一个epoch的定义,看来需要很长的时间……

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

【问题讨论】:

    标签: tensorflow neural-network deep-learning resnet


    【解决方案1】:

    论文从未提及 60000 个 epoch。 epoch 通常被认为是指通过整个数据集。 60000 个 epoch 将是疯狂的。他们在 CIFAR-10 上使用了 64000 迭代。一次迭代涉及处理一个小批量、计算然后应用梯度。

    您是正确的,这意味着超过 150 次通过数据集(这些是时代)。现代神经网络模型通常需要几天或几周的时间来训练。尤其是 ResNet,由于其巨大的尺寸/深度,很麻烦。请注意,他们在论文中提到在两个 GPU 上训练模型,这将比在 CPU 上快得多。

    如果您只是“为了好玩”而训练一些模型,我建议您大幅缩减它们。试试8层左右;即使这可能太多了。如果您这样做是为了研究/生产用途,请购买一些 GPU。

    【讨论】:

    • 我明白了。因此,如果我在笔记本电脑上使用典型的 nvidia gpu,您估计 20 层 resnet 需要多长时间?
    • 恐怕我真的不知道。 Here's a link 在将 GPU 与 CPU 进行比较时,一个人在笔记本电脑上只能获得约 2 倍的加速,但在台式机上却超过 10 倍。但是我觉得大多数笔记本电脑的 GPU 没有足够的 RAM 来处理这么大的模型——你需要使用非常小的批量大小,这通常意味着需要更多的迭代。您可能希望每个 GPU 有 8+GB,而我看到的大多数笔记本电脑 GPU 可能有 2-4GB。
    猜你喜欢
    • 2020-05-12
    • 2020-03-10
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多