ROMP icon indicating copy to clipboard operation
ROMP copied to clipboard

训练时间

Open Wyethjjj opened this issue 4 years ago • 12 comments

请问作者使用4张p40gpu训练完整的数据集需要多久?

Wyethjjj avatar Dec 17 '21 12:12 Wyethjjj

从提供的pretrain训练半天到一天时间能训到95%以上的性能,训得越久效果越好。从头训可能要一个月时间。 Get Outlook for Android

Arthur151 avatar Dec 17 '21 15:12 Arthur151

期待Training guidance~~

littlejiumi avatar Dec 19 '21 02:12 littlejiumi

作者您好,我在您回答的#115问题中看到您说根据您提供的pre-trained backbone来训练大概需要半天,这里我不是很懂,我想问pre-trained backbone与pre-trained model具体有什么区别?相对于pre-trained model,pre-trained backbone中哪部分是没经过训练的?

Wyethjjj avatar Dec 19 '21 03:12 Wyethjjj

pre-trained backbone 采用的不一样的head 来学习2D pose estimation之类的其他任务,预训练出来的模型,因为在相似的任务上pretrain过,所以会收敛的比较快。 pre-trained model是指的是我训练好的模型。从0开始训一般采用例如ImageNet上训练的参数,需要比较长的时间构建基础特征。我这里提供的pre-trained backbone就是帮大家节省时间,跳过基础特征构建部分。

Arthur151 avatar Dec 19 '21 03:12 Arthur151

作者您好,关于训练我有个问题想问您,下面是我的训练log。 V1_hrnet_crowdpose,lsp,mpiinf,h36m,mpii,coco_g0.log 我使用的是单张1080ti训练65小时,看了其他Issue( #125),感觉我的loss收敛的很慢,并且起始效果也相差很多,我不知道因为其他问题还是没有调用起预训练主干,请您看一下我的config。 再就是我的每次迭代后面的数字很大,看别人的log即便是跑7个数据集也不大,这个是不是跟batch_size有关? ARGS: tab: 'V1_hrnet' dataset: 'crowdpose,lsp,mpiinf,h36m,mpii,coco' GPUS: 0 distributed_training: False model_version: 1 pretrain: 'imagenet' match_preds_to_gts_for_supervision: True

master_batch_size: -1 val_batch_size: 16 batch_size: 16 nw: 4 nw_eval: 2 lr: 0.00005

fine_tune: False fix_backbone_training_scratch: False eval: False supervise_global_rot: False

model_return_loss: False collision_aware_centermap: True collision_factor: 0.2 homogenize_pose_space: True shuffle_crop_mode: True shuffle_crop_ratio_2d: 0.1 shuffle_crop_ratio_3d: 0.4

merge_smpl_camera_head: False head_block_num: 2

backbone: 'hrnet' centermap_size: 64 centermap_conf_thresh: 0.2

model_path: /data01/wyjh/ROMP/trained_models(pretrained backboon)/pretrain_hrnet.pkl

loss_weight: MPJPE: 200. PAMPJPE: 360. P_KP2D: 400. Pose: 80. Shape: 6. Prior: 1.6 CenterMap: 160.

sample_prob: h36m: 0.2 #h36m: 1 mpiinf: 0.2 coco: 0.2 lsp: 0.06 mpii: 0.14 #mpii: 1 #muco: 0.14 crowdpose: 0.2 #crowdpose: 0.2

Wyethjjj avatar Feb 06 '22 03:02 Wyethjjj

还是建议您使用pretraining模型来减少训练时间,而且大batch size对于pretraining还是很重要的,不然真的要训很久很久的。您可以等一两个周再来看结果,估计就能下降到和使用pretraining模型训练差不多的loss了。

Arthur151 avatar Feb 07 '22 02:02 Arthur151

那您看我这样写是否可以调用起pretrain backbone: model_path: /data01/wyjh/ROMP/trained_models(pretrained backboon)/pretrain_hrnet.pkl 或者我按照 #125 所提到的方式进行更改?

Wyethjjj avatar Feb 07 '22 03:02 Wyethjjj

您把hrnet_pretrain的路径设置好了,然后自动调用backbone就会在这里加载预训练参数用于训练。

Arthur151 avatar Feb 07 '22 03:02 Arthur151

作者您好,我想就训练时间问题再问您一点问题: 1、我调用预训练主干使用单张1080ti显卡(11g)batch-size16,24小时可以训练3、4个epoch,这是否是正常水平? 2、我想要加快训练速度,但是目前只能调用0号卡,在config中更改GPUS会报错,如文档所示,请问可以怎么解决? V1_hrnet_muco,lsp,crowdpose,mpiinf,h36m,coco,mpii_g7.log 3、此外我看其他issue中别人的训练日志,发现一般在5个epoch中会出现一个很好的指标,在20个epoch之内会出现和最好指标差距很小的模型,那如果我调用预训练主干训练,在多少个epoch之内的模型可以被认定为是最好的?(其实就是希望减少epoch数来加快训练)。 最后在新冠肺炎爆发的日子祝您身体健康,工作顺利

Wyethjjj avatar Mar 15 '22 13:03 Wyethjjj

1.目前训练速度确实比较慢,我在4块P40上一个batch(64)大概1.72,不太清楚在1080Ti上是什么速度。 2.您的GPUS设置错误,您log里显示您'GPUS': '7',如果想使用0-4号四个gpu训练,'GPUS': 0,1,2,3这样设置。 3.如果调用预训练主干训练,大概在2-3个epoch就能达到测试集的较优结果,但需要比较好的繁华性和稳定性,还是要尽可能训久一点。 也祝您身体健康~~

Arthur151 avatar Mar 16 '22 02:03 Arthur151

作者您好,关于继续训练我有一点疑惑,在调用之前的pkl文件时,我出现了如下提醒,我觉得是有很多模块的数据找不到,是因为我没有正确调用文件,还是因为每当有效果更好的模型产生时我手动删除效果较差的模型而导致读取之前的模型数据失败呢?或是说本来就是如此? V1_hrnet_muco,lsp,crowdpose,mpiinf,h36m,coco,mpii_g0.log

Wyethjjj avatar Mar 17 '22 02:03 Wyethjjj

这就是模型加载之前训练的参数失败了。pytorch会以字典的形式保存参数,格式是: 层名:参数。例如,'backbone.conv1.weight': torch.Tensor([.....]) 这里加载失败大概率是层名没有对上,导致pytorch在记载之前的参数的时候,加载失败了。 您可以看一下这个函数。应该就是这里的k没找到。

Arthur151 avatar Mar 17 '22 02:03 Arthur151