美文网首页
ssd_pascal.py部分源码阅读

ssd_pascal.py部分源码阅读

作者: TreeNewBee_hh | 来源:发表于2017-10-30 22:00 被阅读0次

    源码

    # Divide the mini-batch to different GPUs.
    batch_size = 32
    accum_batch_size = 32
    iter_size = accum_batch_size / batch_size
    solver_mode = P.Solver.CPU
    device_id = 0
    batch_size_per_device = batch_size
    if num_gpus > 0:
      batch_size_per_device = int(math.ceil(float(batch_size) / num_gpus))
      iter_size = int(math.ceil(float(accum_batch_size) / (batch_size_per_device * num_gpus)))
      solver_mode = P.Solver.GPU
      device_id = int(gpulist[0])
    

    说明

    • batch_size:每次进入网络的图片数
    • iter_size:迭代一次需要将进入网络的图片跑多少次
    • accum_batch_size:batch_size和iter_size的乘积

    在运算资源有限的情况下,可以通过改变batch_size和iter_size降低计算资源。要注意的一点是在使用多张显卡跑网络的时候,每张显卡都是并行运行的,还是一个batch_size的图片输入,所以并不会使缓存降下来,但它在理论上是可以将运行的时间成显卡数量的倍数缩短。

    示例

    举例来说,在ssd_pascal.py中,每次进入网络的图片为32张,然后每次迭代只要跑一次这32张图片。然而我们在实际的操作中用一张NV TITAN会out of memory,所以我们将batch_size改为4,iter_size改成4,相当于每次进入网络4张图片,迭代一次需要将这4张图片跑4次,所以在原来的配置中跑完这个网络总共需要迭代120000次,而为了达到这个效果我们需要增加到240000次。虽说这样理论上可以达到同样的效果,但是实际中还是会有细小的差别。总而言之,显卡资源有限真!滴!伤!

    相关文章

      网友评论

          本文标题:ssd_pascal.py部分源码阅读

          本文链接:https://www.haomeiwen.com/subject/yzgmpxtx.html