GPU有限,如何提高batch size

那麼從:

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. 注意使用:
         
          session_config.gpu_options.allow_growth = True
          with 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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章