mega.pytorch icon indicating copy to clipboard operation
mega.pytorch copied to clipboard

Excuse me, why can I only run one img on one GPU?

Open YilanWang opened this issue 4 years ago • 14 comments

Why can only one picture run on one gpu now? If I want to modify, from what code and where should I modify it? Many thanks!

YilanWang avatar Aug 21 '20 10:08 YilanWang

比如说你用4个gpu,mega.pytorch/configs/BASE_RCNN_4gpu.yaml solver和test 的ims_per_batch是4 如果你用8个gpu或者更多。把上述两个参数改成对应的8或其他 SOLVER: BASE_LR: 0.001 WEIGHT_DECAY: 0.0001 STEPS: (80000, ) MAX_ITER: 120000 IMS_PER_BATCH: 4 WARMUP_ITERS: 500 TEST: IMS_PER_BATCH: 4 DETECTIONS_PER_IMG: 300

launchauto avatar Aug 24 '20 08:08 launchauto

比如说你用4个gpu,mega.pytorch/configs/BASE_RCNN_4gpu.yaml solver和test 的ims_per_batch是4 如果你用8个gpu或者更多。把上述两个参数改成对应的8或其他 SOLVER: BASE_LR: 0.001 WEIGHT_DECAY: 0.0001 STEPS: (80000, ) MAX_ITER: 120000 IMS_PER_BATCH: 4 WARMUP_ITERS: 500 TEST: IMS_PER_BATCH: 4 DETECTIONS_PER_IMG: 300

多谢多谢,不过这个依然是保持每个卡上跑一张图,我的卡比较少但是显存大些,所以想问问咋样在一张卡上跑多个图 :)

YilanWang avatar Aug 24 '20 09:08 YilanWang

比如说你用4个gpu,mega.pytorch/configs/BASE_RCNN_4gpu.yaml solver和test 的ims_per_batch是4 如果你用8个gpu或者更多。把上述两个参数改成对应的8或其他 SOLVER: BASE_LR: 0.001 WEIGHT_DECAY: 0.0001 STEPS: (80000, ) MAX_ITER: 120000 IMS_PER_BATCH: 4 WARMUP_ITERS: 500 TEST: IMS_PER_BATCH: 4 DETECTIONS_PER_IMG: 300

多谢多谢,不过这个依然是保持每个卡上跑一张图,我的卡比较少但是显存大些,所以想问问咋样在一张卡上跑多个图 :)

Note We provide template files named BASE_RCNN_{}gpus.yaml which would automatically change the batch size and other relevant settings. This behavior is similar to detectron2. If you want to train model with different number of gpus, please change it by yourself :) But assure 1 GPU only holds 1 image! That is to say, you should always keep SOLVER.IMS_PER_BATCH and TEST.IMS_PER_BATCH equal to the number of GPUs you use. 作者说一卡只能一张图。。还不知道为啥。但是一卡多图的话把Ims_per_batch改一下应该也行?比如4卡ims_per_batch改成8就是一卡两张。但不知道这样会不会有问题。你可以在mega.pytorch/mega_core/config/defaults.py里面搜ims_per_batch看他是怎么改的

launchauto avatar Aug 24 '20 09:08 launchauto

你自己训练他的模型复现成功了吗?你的Loss最后是多少。我用8卡跑。一个Gpu一个图。迭代周期减半学习率增倍。训练出来的模型mAP只有0.55 最后Loss在0.36左右。是不是还没收敛

launchauto avatar Aug 24 '20 09:08 launchauto

学习率一般不能直接倍增吧,很容易搞得不收敛,前边wam up长一点试试?

YilanWang avatar Aug 24 '20 09:08 YilanWang

学习率一般不能直接倍增吧,很容易搞得不收敛,前边wam up长一点试试?

嗯嗯。我重新开了一个4卡的跟论文一毛一样配置的任务和一个8卡的除了batchsize其他都不改的任务。作者提供的base_rcnn_8gpu.yaml里面base_lr就是0.002了,他的base_rcnn_4gpu.yaml base_lr是0.001和论文一样。不过他自己的模型是4卡训练的。我感觉可能是没收敛,不过也不清楚。没提供Log。不知道0.36是不是loss还很高。感觉可能是。因为最后几个迭代一直在0.3-0.4之间波动。多谢

launchauto avatar Aug 24 '20 09:08 launchauto

没事没事~老哥你8卡训一次大概多久呀?

YilanWang avatar Aug 24 '20 10:08 YilanWang

没事没事~老哥你8卡训一次大概多久呀?

只训练的话差不多titan xp8个,一天2小时训练完。60k个迭代。原文是120k个迭代,时间要翻倍。他训完还会自己在17600帧上验证集测试,这又花个2小时左右。不超过一天半吧。你只训练不测试的话,训练命令参数改一下,加一个skip-test

launchauto avatar Aug 24 '20 10:08 launchauto

我现在4个titanxp上按照原文一毛一样的迭代120k训,大概2天4小时能训练完。在8卡上只改batchsize,还是120K迭代也差不多得2天半训练完。作者用的2080ti,应该跟Titan xp速度差不太多。没在更大的卡上训练过。反正titan xp上所有卡显存占用率90%-100%以上了。

launchauto avatar Aug 24 '20 10:08 launchauto

下次用p40试试233333

launchauto avatar Aug 24 '20 10:08 launchauto

没事没事~老哥你8卡训一次大概多久呀?

你训练完了如果达到了他的效果能麻烦告诉我下你的日志情况吗?

launchauto avatar Aug 26 '20 02:08 launchauto

没事没事~老哥你8卡训一次大概多久呀?

你训练完了如果达到了他的效果能麻烦告诉我下你的日志情况吗?

我发你在GitHub上留的邮箱了,我没加det的数据,能复现ap50到76,应该是没问题的~

YilanWang avatar Sep 01 '20 03:09 YilanWang

没事没事~老哥你8卡训一次大概多久呀?

你训练完了如果达到了他的效果能麻烦告诉我下你的日志情况吗?

我发你在GitHub上留的邮箱了,我没加det的数据,能复现ap50到76,应该是没问题的~

MEGA怎样指定GPU使用呢?谢谢1

joe660 avatar Apr 08 '21 03:04 joe660

没事没事~老哥你8卡训一次大概多久呀?

你训练完了如果达到了他的效果能麻烦告诉我下你的日志情况吗?

MEGA怎样指定GPU使用呢? 麻烦你了 谢谢

joe660 avatar Apr 08 '21 03:04 joe660