Bert-Chinese-Text-Classification-Pytorch icon indicating copy to clipboard operation
Bert-Chinese-Text-Classification-Pytorch copied to clipboard

关于训练时间的问题:为什么我每次跑完都要一两天的时间呢?求大佬们帮忙

Open xu-cpp opened this issue 4 years ago • 14 comments

为什么我每次跑完都要一两天的时间呢?求大佬们帮忙

xu-cpp avatar Apr 03 '20 07:04 xu-cpp

为什么我每次跑完都要一两天的时间呢?求大佬们帮忙 因为evaluation是在cpu上做的,试一下把evaluation放在gpu上以tensor的形式来做

comprehensiveMap avatar Apr 18 '20 01:04 comprehensiveMap

为什么我每次跑完都要一两天的时间呢?求大佬们帮忙 因为evaluation是在cpu上做的,试一下把evaluation放在gpu上以tensor的形式来做

谢谢大佬的回答。具体改法是不是把train_eval.py中.cpu()的地方改为.gpu()就可以了(gpu环境以及有了)?原文件里只说了训练时间:30分钟,也不知道怎么训练这么快的,哼😕(吐槽一下嘻嘻)

xu-cpp avatar Apr 18 '20 10:04 xu-cpp

为什么我每次跑完都要一两天的时间呢?求大佬们帮忙 因为evaluation是在cpu上做的,试一下把evaluation放在gpu上以tensor的形式来做

谢谢大佬的回答。具体改法是不是把train_eval.py中.cpu()的地方改为.gpu()就可以了(gpu环境以及有了)?原文件里只说了训练时间:30分钟,也不知道怎么训练这么快的,哼(吐槽一下嘻嘻)

实际上这时候这个张量本身就是在GPU里面了,只要把cpu()去掉即可,并且要把原本允许ndarry作为参数的sklearn.metrics换为能够张量计算的方式。其他的都不用改。 true = (labels).data predic = torch.max(outputs.data, 1)[1] total = true.size(0) correct = (predic == true).sum().item() train_acc = correct / total

comprehensiveMap avatar Apr 18 '20 10:04 comprehensiveMap

为什么我每次跑完都要一两天的时间呢?求大佬们帮忙 因为evaluation是在cpu上做的,试一下把evaluation放在gpu上以tensor的形式来做

谢谢大佬的回答。具体改法是不是把train_eval.py中.cpu()的地方改为.gpu()就可以了(gpu环境以及有了)?原文件里只说了训练时间:30分钟,也不知道怎么训练这么快的,哼(吐槽一下嘻嘻)

实际上这时候这个张量本身就是在GPU里面了,只要把cpu()去掉即可,并且要把原本允许ndarry作为参数的sklearn.metrics换为能够张量计算的方式。其他的都不用改。 true = (labels).data predic = torch.max(outputs.data, 1)[1] total = true.size(0) correct = (predic == true).sum().item() train_acc = correct / total

好的谢谢啦,我先试试看

xu-cpp avatar Apr 18 '20 15:04 xu-cpp

为什么我每次跑完都要一两天的时间呢?求大佬们帮忙 因为evaluation是在cpu上做的,试一下把evaluation放在gpu上以tensor的形式来做

谢谢大佬的回答。具体改法是不是把train_eval.py中.cpu()的地方改为.gpu()就可以了(gpu环境以及有了)?原文件里只说了训练时间:30分钟,也不知道怎么训练这么快的,哼(吐槽一下嘻嘻)

实际上这时候这个张量本身就是在GPU里面了,只要把cpu()去掉即可,并且要把原本允许ndarry作为参数的sklearn.metrics换为能够张量计算的方式。其他的都不用改。 true = (labels).data predic = torch.max(outputs.data, 1)[1] total = true.size(0) correct = (predic == true).sum().item() train_acc = correct / total

好的谢谢啦,我先试试看

昨晚睡前开始跑,已经跑了9个多小时了,一个epoch还没跑完,哭了/(ㄒoㄒ)/~~

xu-cpp avatar Apr 19 '20 01:04 xu-cpp

为什么我每次跑完都要一两天的时间呢?求大佬们帮忙 因为evaluation是在cpu上做的,试一下把evaluation放在gpu上以tensor的形式来做

谢谢大佬的回答。具体改法是不是把train_eval.py中.cpu()的地方改为.gpu()就可以了(gpu环境以及有了)?原文件里只说了训练时间:30分钟,也不知道怎么训练这么快的,哼(吐槽一下嘻嘻)

实际上这时候这个张量本身就是在GPU里面了,只要把cpu()去掉即可,并且要把原本允许ndarry作为参数的sklearn.metrics换为能够张量计算的方式。其他的都不用改。 true = (labels).data predic = torch.max(outputs.data, 1)[1] total = true.size(0) correct = (predic == true).sum().item() train_acc = correct / total

老实说,你这个有点误导人,这部分只是算准确率,开销很小,放到CPU上算也问题不大,速度慢原因只能说GPU不行?

CaiQiuYu avatar Apr 25 '20 09:04 CaiQiuYu

为什么我每次跑完都要一两天的时间呢?求大佬们帮忙 因为evaluation是在cpu上做的,试一下把evaluation放在gpu上以tensor的形式来做

谢谢大佬的回答。具体改法是不是把train_eval.py中.cpu()的地方改为.gpu()就可以了(gpu环境以及有了)?原文件里只说了训练时间:30分钟,也不知道怎么训练这么快的,哼(吐槽一下嘻嘻)

实际上这时候这个张量本身就是在GPU里面了,只要把cpu()去掉即可,并且要把原本允许ndarry作为参数的sklearn.metrics换为能够张量计算的方式。其他的都不用改。 true = (labels).data predic = torch.max(outputs.data, 1)[1] total = true.size(0) correct = (predic == true).sum().item() train_acc = correct / total

老实说,你这个有点误导人,这部分只是算准确率,开销很小,放到CPU上算也问题不大,速度慢原因只能说GPU不行?

要看你数据集是什么,我之前跑一个很大的数据集,他这里面100个batch就会验证一次,验证的时候要对验证集所有的样本都做计算,那这样的验证频率下其实就很有影响了。我当时直接用源代码跑的时候要几小时,但是改完之后就只需要半小时不到了,所以我才会考虑这里的问题。

comprehensiveMap avatar Apr 25 '20 11:04 comprehensiveMap

为什么我每次跑完都要一两天的时间呢?求大佬们帮忙 因为evaluation是在cpu上做的,试一下把evaluation放在gpu上以tensor的形式来做

谢谢大佬的回答。具体改法是不是把train_eval.py中.cpu()的地方改为.gpu()就可以了(gpu环境以及有了)?原文件里只说了训练时间:30分钟,也不知道怎么训练这么快的,哼(吐槽一下嘻嘻)

实际上这时候这个张量本身就是在GPU里面了,只要把cpu()去掉即可,并且要把原本允许ndarry作为参数的sklearn.metrics换为能够张量计算的方式。其他的都不用改。 true = (labels).data predic = torch.max(outputs.data, 1)[1] total = true.size(0) correct = (predic == true).sum().item() train_acc = correct / total

老实说,你这个有点误导人,这部分只是算准确率,开销很小,放到CPU上算也问题不大,速度慢原因只能说GPU不行?

要看你数据集是什么,我之前跑一个很大的数据集,他这里面100个batch就会验证一次,验证的时候要对验证集所有的样本都做计算,那这样的验证频率下其实就很有影响了。我当时直接用源代码跑的时候要几小时,但是改完之后就只需要半小时不到了,所以我才会考虑这里的问题。

那这个新闻的数据集你跑了多久呢?感觉我改完之后没有变快很多,还是说是我CPU的问题?我CPU是i5-5200U的

xu-cpp avatar Apr 26 '20 08:04 xu-cpp

换了数据集肯定要改超参的,另外gpu不行的话确实会慢

649453932 avatar May 08 '20 07:05 649453932

为什么我每次跑完都要一两天的时间呢?求大佬们帮忙 因为evaluation是在cpu上做的,试一下把evaluation放在gpu上以tensor的形式来做

谢谢大佬的回答。具体改法是不是把train_eval.py中.cpu()的地方改为.gpu()就可以了(gpu环境以及有了)?原文件里只说了训练时间:30分钟,也不知道怎么训练这么快的,哼(吐槽一下嘻嘻)

并不是,你跑程序的时候看一下电脑或者服务器的gpu使用情况,跑的慢的原因应该是没用gpu跑

13145314593 avatar Dec 15 '20 11:12 13145314593

那要怎样才能让它使用gpu来跑呢,我看了一下我的gpu几乎没有占用

blueyeee avatar Feb 24 '23 03:02 blueyeee

可以在终端强行指定分配gpu,另外需要看一下脚本中涉及到gpu的部分是否是使用gpu的意思。两年没碰了,具体内容帮不上你,抱歉。

在 2023年2月24日 @.***> 写道:

那要怎样才能让它使用gpu来跑呢,我看了一下我的gpu几乎没有占用 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

13145314593 avatar Feb 24 '23 03:02 13145314593

为什么我每次跑完都要一两天的时间呢?求大佬们帮忙 因为evaluation是在cpu上做的,试一下把evaluation放在gpu上以tensor的形式来做

谢谢大佬的回答。具体改法是不是把train_eval.py中.cpu()的地方改为.gpu()就可以了(gpu环境以及有了)?原文件里只说了训练时间:30分钟,也不知道怎么训练这么快的,哼(吐槽一下嘻嘻)

实际上这时候这个张量本身就是在GPU里面了,只要把cpu()去掉即可,并且要把原本允许ndarry作为参数的sklearn.metrics换为能够张量计算的方式。其他的都不用改。 true = (labels).data predic = torch.max(outputs.data, 1)[1] total = true.size(0) correct = (predic == true).sum().item() train_acc = correct / total

我像这样改完之后,gpu占用还是基本没有,还是把cpu给占满了,是哪里还有问题吗

blueyeee avatar Feb 24 '23 08:02 blueyeee

请问解决了么

Lumieshone avatar Jun 05 '23 02:06 Lumieshone