使用Faster-RCNN进行指定GPU训练

实验内容

  1. 解决了昨日环境配置剩下的问题(三~六),接着昨日第7步继续

  2. 测试库中用例,检查是否能跑通

    1. 在"faster-rcnn.pytorch"文件夹中打开终端

    2. 指定GPU训练

      CUDA_VISIBLE_DEVICES=$GPU_ID python trainval_net.py \
                  --dataset pascal_voc --net res101 \
                  --bs $BATCH_SIZE --nw $WORKER_NUMBER \
                  --lr $LEARNING_RATE --lr_decay_step $DECAY_STEP \
                  --cuda
      
      • 参数意义:
        • CUDA_VISIBLE_DEVICES=$GPU_ID:指明所使用的GPU ID,$GPU_ID需修改为指定ID
        • --dataset pascal_voc --net res101:在pascal_voc上使用resnet101进行训练
        • --bs $BATCH_SIZE --nw $WORKER_NUMBER:可以根据GPU内存大小来自适应地设置BATCH_SIZE(批处理尺寸)和WORKER_NUMBER。在具有12G内存的Titan Xp上,它最多可以为4
        • --lr $LEARNING_RATE --lr_decay_step $DECAY_STEP:**学习率(Learning rate)**作为监督学习以及深度学习中重要的超参,其决定着目标函数能否收敛到局部最小值以及何时收敛到最小值。合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。
    3. 多GPU训练(这一步实验没有做,“指定GPU实验”居然从下午三点多跑到了晚上11点多…)

      python trainval_net.py \ --dataset pascal_voc --net res101 \ --bs 24 --nw 8 \ --lr $LEARING_RATE --lr_decay_step $DECAY_STEP \ --cuda --mGPUs
      # (pascal_voc.py    self._classes   类别修改)
      

问题

  • 问题一:RuntimeError: The expanded size of the tensor (2) must match the existing size (0) at non-singleton dimension 1

    • 解决:原因在于计算二分类交叉熵损失函数时是在每个batch中进行的,而总的图片数量并不能被所设置的batch_size整除,造成最后一个batch的图片数量与batch_size不相等。
  • 问题二:AttributeError: 'int' object has no attribute 'astype'

    • 解决:将/lib/roi_data_layer/roibatchLoader.py中第52行的target_ratio = 1改为target_ratio = np.array(1)
  • 问题三:AttributeError: 'Tensor' object has no attribute 'index'

    • 解决: 将torch的版本改为0.4.0…所以昨天的错误到时出在哪个依赖上了???
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值