GPU有限,如何提高batch size

一时失言乱红尘 2023-06-11 05:29 33阅读 0赞

那么从:

https://github.com/mathildor/DeepLab-v3/blob/master/g3doc/faq.md

deeplabv3+也是谷歌团队,tensorflow就是他们的产品。可以看到提高batch size 的方法。

batchsize不仅对于batch normalization至关重要,而且梯度下降也需要一定的batchsize,比如batchsize=8

所以可以通过:

  1. 减少图片的面积,比如将图片crop到原来的一般大小。或者513*513->321*321,要注意2的倍数问题。
  2. 减小网络复杂度,将参数变少,比如换backbone。
  3. 并行使用更多GPU,这是普遍的用法,也是必须的,因为通常要8个甚至16个GPU一同工作。
  4. 注意使用:

    1. session_config.gpu_options.allow_growth = True
    2. with tf.train.MonitoredTrainingSession(
    3. master=FLAGS.master,
    4. is_chief=(FLAGS.task == 0),
    5. config=session_config,
    6. scaffold=scaffold,
    7. checkpoint_dir=FLAGS.train_logdir,
    8. summary_dir=FLAGS.train_logdir,
    9. log_step_count_steps=FLAGS.log_steps,
    10. save_summaries_steps=FLAGS.save_summaries_secs,
    11. save_checkpoint_secs=FLAGS.save_interval_secs,
    12. hooks=[stop_hook]) as sess:
    13. while not sess.should_stop():
    14. sess.run([train_tensor])

    如果没有gpu_options.allow_growth我的一块gpu能跑batch size=3,如果加了这个设置,能跑batch size=4。

发表评论

表情:
评论列表 (有 0 条评论,33人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Hibernate--批量抓取batch-size

    批量抓取 在抓取策略中有一种叫做批量抓取,就是同时查询多个对象的关联对象的时候,可以采用批量抓取进行优化。 如果要实现批量抓取效果,可以通过batch-size来完成。