本文主要是介绍GPU有限,如何提高batch size,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
那么从:
https://github.com/mathildor/DeepLab-v3/blob/master/g3doc/faq.md
deeplabv3+也是谷歌团队,tensorflow就是他们的产品。可以看到提高batch size 的方法。
batchsize不仅对于batch normalization至关重要,而且梯度下降也需要一定的batchsize,比如batchsize=8
所以可以通过:
- 减少图片的面积,比如将图片crop到原来的一般大小。或者513*513->321*321,要注意2的倍数问题。
- 减小网络复杂度,将参数变少,比如换backbone。
- 并行使用更多GPU,这是普遍的用法,也是必须的,因为通常要8个甚至16个GPU一同工作。
- 注意使用:
session_config.gpu_options.allow_growth = Truewith tf.train.MonitoredTrainingSession(master=FLAGS.master,is_chief=(FLAGS.task == 0),config=session_config,scaffold=scaffold,checkpoint_dir=FLAGS.train_logdir,summary_dir=FLAGS.train_logdir,log_step_count_steps=FLAGS.log_steps,save_summaries_steps=FLAGS.save_summaries_secs,save_checkpoint_secs=FLAGS.save_interval_secs,hooks=[stop_hook]) as sess:while not sess.should_stop():sess.run([train_tensor])
如果没有gpu_options.allow_growth我的一块gpu能跑batch size=3,如果加了这个设置,能跑batch size=4。
这篇关于GPU有限,如何提高batch size的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!