Scalsol / mega.pytorch

Memory Enhanced Global-Local Aggregation for Video Object Detection, CVPR2020
Other
570 stars 116 forks source link

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

Open YilanWang opened 4 years ago

YilanWang commented 4 years ago

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!

launchauto commented 4 years ago

比如说你用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 commented 4 years ago

比如说你用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 commented 4 years ago

比如说你用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 BASERCNN{}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 commented 4 years ago

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

YilanWang commented 4 years ago

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

launchauto commented 4 years ago

学习率一般不能直接倍增吧,很容易搞得不收敛,前边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之间波动。多谢

YilanWang commented 4 years ago

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

launchauto commented 4 years ago

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

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

launchauto commented 4 years ago

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

launchauto commented 4 years ago

下次用p40试试233333

launchauto commented 4 years ago

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

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

YilanWang commented 4 years ago

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

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

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

joe660 commented 3 years ago

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

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

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

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

joe660 commented 3 years ago

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

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

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