Closed wickai closed 4 years ago
@wickai你好,由于训练过程中存在不同branch之间依序传递各自的特征图,所以会减缓训练速度。我用的是P100,GPU利用率在70%以上,每个epoch七分钟过一点,你可以尝试在代码
https://github.com/ZF1044404254/TBMSL-Net/blob/f5b442d1226b0a3afa365c09895ec025b578de15/utils/train_model.py#L76
前添加if epoch>100:
,并将# eval testset 和 # tensorboard 代码块放在if语句里,这样前100epoch不会评估test数据,能节省一些时间。
我简单查了一下,貌似v100应该比p100性能更强,应该更快。
谢谢,我们开始训得慢可能是由于机器原因,目前换了环境同时把训练改成4卡并行的版本,大概1分钟一个epoch。目前这边在cub200上用你的默认配置,实现了一个多卡版本,但是目前local acc1精度只有83%左右。我想知道你有没有试过多卡训练,是否能对齐? 现在我的pytoch版本是1.1 ,多卡并行使用的是torch.nn.parallel.DistributedDataParallel
我在跑单卡版本,想对齐log,给下微信联系方式,想要看下你训练的log
从我的试验经验来说,batch size 6 结果最好,调大调小,都有些许下降,由于tensorboard log文件较大,我上传截图你看一下,欢迎分享你的训练结果
谢谢~
单卡训练精度我复现指标是89.1%,应该算对齐了~
还有个问题,我在尝试改多卡训练。我想尝试比较简单的方法,直接加入这句: model = torch.nn.DataParallel(model,device_ids=range(torch.cuda.device_count())) 但是会报错:assert all(map(lambda i: i.is_cuda, inputs))
看样子是有些参数没有移动到gpu上,我pytorch不是很熟,能帮忙debug下么?
单卡训练精度我复现指标是89.1%,应该算对齐了~
还有个问题,我在尝试改多卡训练。我想尝试比较简单的方法,直接加入这句: model = torch.nn.DataParallel(model,device_ids=range(torch.cuda.device_count())) 但是会报错:assert all(map(lambda i: i.is_cuda, inputs))
看样子是有些参数没有移动到gpu上,我pytorch不是很熟,能帮忙debug下么?
您好,您单卡batch设的多大呀 共耗多少显存?
使用torch.nn.DataParallel模块 要注意model.cuda() dataset.cuda() 你检查下的code 望对你有帮助
单卡训练精度我复现指标是89.1%,应该算对齐了~ 还有个问题,我在尝试改多卡训练。我想尝试比较简单的方法,直接加入这句: model = torch.nn.DataParallel(model,device_ids=range(torch.cuda.device_count())) 但是会报错:assert all(map(lambda i: i.is_cuda, inputs)) 看样子是有些参数没有移动到gpu上,我pytorch不是很熟,能帮忙debug下么?
您好,您单卡batch设的多大呀 共耗多少显存?
使用torch.nn.DataParallel模块 要注意model.cuda() dataset.cuda() 你检查下的code 望对你有帮助
单卡batch建议6,显存消耗在14G左右。
单卡训练精度我复现指标是89.1%,应该算对齐了~
还有个问题,我在尝试改多卡训练。我想尝试比较简单的方法,直接加入这句: model = torch.nn.DataParallel(model,device_ids=range(torch.cuda.device_count())) 但是会报错:assert all(map(lambda i: i.is_cuda, inputs))
看样子是有些参数没有移动到gpu上,我pytorch不是很熟,能帮忙debug下么?
https://github.com/ZF1044404254/TBMSL-Net/blob/f5b442d1226b0a3afa365c09895ec025b578de15/train.py#L45
改为model = nn.DataParallel(model)
model = model.cuda()
由于现在身边没有多显卡,暂时无法测试,欢迎你的反馈。谢谢
@ZF1044404254 你好, 改为 model = nn.DataParallel(model) model = model.cuda()之后还是报同样的错误,有没有什么调试方法?我现在完全不知道哪里有问题。
@wickai 你好,想问以下你们多卡的代码是怎么改的啊,谢谢。
谢谢,我们开始训得慢可能是由于机器原因,目前换了环境同时把训练改成4卡并行的版本,大概1分钟一个epoch。目前这边在cub200上用你的默认配置,实现了一个多卡版本,但是目前local acc1精度只有83%左右。我想知道你有没有试过多卡训练,是否能对齐? 现在我的pytoch版本是1.1 ,多卡并行使用的是torch.nn.parallel.DistributedDataParallel
我在跑单卡版本,想对齐log,给下微信联系方式,想要看下你训练的log
请问多卡的代码是如何修改的,可以分享下吗
您好,我在跑你的代码。cub200用v100卡跑需要20分钟才能完成一个epoch的训练,而且gpu利用率很低,有办法提高速度么?