gpt4 book ai didi

computer-vision - 在适度的硬件设置上培训Tensorflow Inception-v3 Imagenet

转载 作者:行者123 更新时间:2023-12-04 02:58:18 27 4
gpt4 key购买 nike

我一直在使用单个GPU(GeForce GTX 980 Ti,6GB)的中等机器上训练Inception V3。最大批处理大小似乎在40左右。

我使用了inception_train.py文件中指定的默认学习率设置:initial_learning_rate = 0.1num_epochs_per_decay = 30learning_rate_decay_factor = 0.16。经过几周的训练,我能够达到的最佳准确性如下(大约500K-1M迭代):

2016-06-06 12:07:52.245005: precision @ 1 = 0.5767 recall @ 5 = 0.8143 [50016 examples]
2016-06-09 22:35:10.118852: precision @ 1 = 0.5957 recall @ 5 = 0.8294 [50016 examples]
2016-06-14 15:30:59.532629: precision @ 1 = 0.6112 recall @ 5 = 0.8396 [50016 examples]
2016-06-20 13:57:14.025797: precision @ 1 = 0.6136 recall @ 5 = 0.8423 [50016 examples]

我已经尝试在培训类(class)快要结束时摆弄这些设置,但是看不到准确性的任何提高。

根据该论坛上的其他帖子,我从头开始了一个新的培训类(class), num_epochs_per_decay = 10和 learning_rate_decay_factor = 0.001,但是这里有点儿掌握了。

对像我这样的小型硬件设置的良好默认值有何建议?

最佳答案

TL,DR:目前尚无已知的方法,可以通过适度的硬件设置在可忍受的时间内从头训练Inception V3模型。我强烈建议您对所需的任务再训练一个预训练的模型。

在像您这样设置的小型硬件上,将难以获得最佳性能。一般来说,对于CNN而言,最好的性能是使用尽可能大的批量。这意味着对于CNN而言,训练程序通常受到可容纳在GPU内存中的最大批处理大小的限制。

可供下载here的Inception V3模型经过训练,在50个GPU上的有效批大小为1600,其中每个GPU的批处理大小为32。

考虑到您的硬件水平不高,我的第一个建议是从上面的链接下载预训练模式,然后为您手头的单独任务重新训练模型。这会使您的生活更加幸福。

作为思想实验(但不切实际),如果您特别想通过从头开始训练来完全匹配预训练模型的训练性能,则可以在1个GPU上执行以下疯狂过程。即,您可以运行以下过程:

  • 以32的批处理大小运行
  • 存储来自运行
  • 的梯度
  • 重复此50次。
  • 对50个批次的梯度进行平均。
  • 使用渐变更新所有变量。
  • 重复

  • 我仅提及这一点是为了使您对实现完全相同的性能需要完成的概念性理解。根据您提到的速度数字,此过程将花费数月的时间。几乎不实用。

    更现实的是,如果您仍然对从头开始培训并尽力而为感兴趣,请遵循以下一些一般准则:
  • 始终以最大的批处理大小运行。看来您已经在这样做了。伟大的。
  • 确保您不受CPU限制。也就是说,请确保输入处理队列始终适度地满,如TensorBoard上显示的那样。如果不是,请增加预处理线程数,或者使用其他CPU(如果有)。
  • Re:学习率。如果您始终运行同步训练(如果只有1个GPU,则必须是这种情况),那么批大小越大,可容忍的学习率就越高。我会尝试一系列快速运行(例如每次几个小时),以找出可能不会导致NaN的最高学习水平。找到这样的学习率后,将其降低5-10%,然后继续学习。
  • 至于num_epochs_per_decay和朽烂率,有几种策略。每次衰减10个历元,0.001衰减因子强调的策略是尽可能长时间锤击模型,直到评估精度渐近为止。然后降低学习率。这是一个简单的策略,很好。我将验证您在模型中看到的情况,即在允许模型降低学习率之前监视评估精度并确定其确实是渐近线。最后,衰减因子是临时的,但是降低10的幂似乎是一个很好的经验法则。

  • 再次注意,这些是一般准则,其他准则甚至可能提供不同的建议。我们无法为您提供更具体的指导的原因是,这种大小的CNN经常不会在适当的硬件设置上从头开始进行培训。

    关于computer-vision - 在适度的硬件设置上培训Tensorflow Inception-v3 Imagenet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38259166/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com