使用Faster-RCNN进行指定GPU训练
程序员文章站
2022-07-14 18:49:16
...
实验内容
-
解决了昨日环境配置剩下的问题(三~六),接着昨日第7步继续
-
测试库中用例,检查是否能跑通
-
在"faster-rcnn.pytorch"文件夹中打开终端
-
指定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)**作为监督学习以及深度学习中重要的超参,其决定着目标函数能否收敛到局部最小值以及何时收敛到最小值。合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。
-
- 参数意义:
-
多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…所以昨天的错误到时出在哪个依赖上了???
上一篇: 03字符串的扩展
下一篇: # python day2(字符串)
推荐阅读