Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

运行开始训练,卡住半小时,一直不动 #9

Open
Fire-Star opened this issue Jul 24, 2020 · 45 comments
Open

运行开始训练,卡住半小时,一直不动 #9

Fire-Star opened this issue Jul 24, 2020 · 45 comments

Comments

@Fire-Star
Copy link

显卡:GTX1660Ti

image

image

@bubbliiiing
Copy link
Owner

是否2007_train.txt里面没有目标信息

@Levi4s
Copy link

Levi4s commented Sep 1, 2020

image

请问我训练也是卡住了,训练走完了,卡在验证时候,txt文件都检查过了

@bubbliiiing
Copy link
Owner

啥时候下的代码啊……

@Levi4s
Copy link

Levi4s commented Sep 2, 2020

啥时候下的代码啊……

一周之前下的,数据也检查过了,没有空文件

@bubbliiiing
Copy link
Owner

要不重新下一下吧,你可能下到我修改代码中途的代码了?

@Levi4s
Copy link

Levi4s commented Sep 5, 2020 via email

@caixiiaoyang
Copy link

请问你们解决了吗?我训练的的时,训练到第一个epoch百分之十几就卡死机,两个backbone我试了试都是这样,我是台式机i5-9600k+rtx2080,内存16G,训练刚开始6个cpu全部百分百出力,内存接近百分百,显存百分之四十多,第一个epoch到百分之十几就卡死,不知道咋回事!

@caixiiaoyang
Copy link

要不重新下一下吧,你可能下到我修改代码中途的代码了?
我训练的的时,训练到第一个epoch百分之十几就卡死机,两个backbone我试了试都是这样,我是台式机i5-9600k+rtx2080,内存16G,训练刚开始6个cpu全部百分百出力,内存接近百分百,显存百分之四十多,第一个epoch到百分之十几就卡死,不知道咋回事,楼主的代码yolov3,yolov4我都跑了,这个跑不了。

@bubbliiiing
Copy link
Owner

是不是很多图片没有目标?

@caixiiaoyang
Copy link

是不是很多图片没有目标?

有目标,数据集用你的yolov3,yolov4都跑过没有问题

@bubbliiiing
Copy link
Owner

卡死是怎么样的卡死

@caixiiaoyang
Copy link

卡死是怎么样的卡死
我再跑一下,等会拍个照片让你看看

@caixiiaoyang
Copy link

卡死是怎么样的卡死[
就是第一个epoch到12%,CPU和内存出力都降下来了,听到这里不懂了,电脑画面也卡死了,动鼠标和键盘也没有任何反应,要是不管它,电脑一会儿就会自动重启(不好意思,我刚玩github,不知道咋发图片)

@caixiiaoyang
Copy link

卡死是怎么样的卡死[
就是第一个epoch到12%,CPU和内存出力都降下来了,停到这里不动了,电脑画面也卡死了,动鼠标和键盘也没有任何反应,要是不管它,电脑一会儿就会自动重启(不好意思,我刚玩github,不知道咋发图片)

@caixiiaoyang
Copy link

卡死是怎么样的卡死
我再跑一下,等会拍个照片让你看看

内存和CPU占用都太高了,都是100%,然后就卡死训练停止,电脑死机。

@bubbliiiing
Copy link
Owner

Emm没见过。。。。。。你看看2007_train.txt,是不是没目标的图片很多呀

@bubbliiiing
Copy link
Owner

版本是否都对应上了

@caixiiaoyang
Copy link

版本是否都对应上了

2007_train.txt都有目标,环境就是pytorch=1.2.0都没有问题。

@bubbliiiing
Copy link
Owner

下个voc数据集试试

@caixiiaoyang
Copy link

下个voc数据集试试

可以,我试试,感谢您的耐心 解答,非常感谢

@liaojiacai
Copy link

我找到卡住的最主要原因,自己的数据集转过来的时候标签要和voc_annotation中的classes要一致,github主的源代码数据加载那里没有问题。我的标签原来是0,1,2,3.是yolo训练格式的,在转成voc格式的过程中xml中的name是0,1,2,3.而voc_annotation中的classes我设置的是["leaf", "sand", "bottle", "stone"],应该是["0", "1", "2", "3"]. 这里对不上的后果就是最后生成的2007_train.txt,每行标签后面没有坐标,因为转的过程xml中name和classes全都对不上。这样box在dataloader.py那里一直是空的。一直在while True里面不出来。。。。
错误格式的2007_train.txt里面是这样的:
./VOCdevkit/VOC2007/JPEGImages/1.png
./VOCdevkit/VOC2007/JPEGImages/10.png
正确的应该是:
./VOCdevkit/VOC2007/JPEGImages/1.png 8,504,77,595,0 102,476,138,501,0 252,438,313,501,0 318,265,360,301,0 60,219,123,257,0 324,218,367,275,0 251,202,300,254,0 10,173,76,214,0 323,81,367,122,0 253,54,314,102,0 284,46,314,62,0 174,34,197,42,0 5,30,76,85,0 115,0,140,12,0
./VOCdevkit/VOC2007/JPEGImages/10.png 117,329,172,370,0 193,302,264,349,0 332,144,367,172,0 0,76,74,132,0 318,46,367,94,0

谢谢!!!其他人卡住,估计都是自己的数据有问题,特别是标签一致的问题

ps:我今天复现了几个faster-rcnn。目前还是这个最简洁。。谢谢!!!
@bubbliiiing

@Daybreak-Zheng
Copy link

我标签也没有问题还是卡死

@Daybreak-Zheng
Copy link

@bubbliiiing @liaojiacai @caixiiaoyang 你们解决了么

@bubbliiiing
Copy link
Owner

B站截图吧,连同你的2007_train.txt

@zwh6879a
Copy link

你好我训练的时候在第二轮迭代就卡住了问一下大概是怎么回事
image

@zwh6879a
Copy link

这是详细情况,好像在for循环头就卡住了
image
image

@Daybreak-Zheng
Copy link

Daybreak-Zheng commented Apr 28, 2021 via email

@zwh6879a
Copy link

没找到问题

@zwh6879a
Copy link

你是什么问题

@Daybreak-Zheng
Copy link

Daybreak-Zheng commented Apr 28, 2021 via email

@zwh6879a
Copy link

我的是不多不少正好第二轮卡死,试了很多次都是这样

@Daybreak-Zheng
Copy link

Daybreak-Zheng commented Apr 28, 2021 via email

@zwh6879a
Copy link

我的问题解决了,简单说明一下:
我训练的时候在第二轮迭代就卡住了,不会读条,经过排查后发现是在for循环头出的问题:


原因在于enumerate函数对gen的迭代出现了问题,改为使用iter函数就好了

@zwh6879a
Copy link

如果还是不行可以试试把train.py中所有num_workers=4改为0

@Daybreak-Zheng
Copy link

Daybreak-Zheng commented Apr 29, 2021 via email

@Daybreak-Zheng
Copy link

Daybreak-Zheng commented Apr 29, 2021 via email

@zwh6879a
Copy link

本科

@bubbliiiing
Copy link
Owner

0 0解决了嘛

@zwh6879a
Copy link

搞定了

@zwh6879a
Copy link

目测是多线程卡死的问题

@bubbliiiing
Copy link
Owner

怎么解决的啊,我了解一下

@bubbliiiing
Copy link
Owner

就是numwork吗

@zwh6879a
Copy link

zwh6879a commented May 1, 2021

是的

@zwh6879a
Copy link

zwh6879a commented May 1, 2021

网上也会人遇到过类似的问题,是多num_workers多线程导致死锁,在for循环头一直等待数据读入就出不去了
解决方法:
1.把num_workers改为0,只有主进程读取数据,但是速度会变慢
2.在运行时添加OMP_NUM_THREADS=1 MKL_NUM_THREADS=1只允许一个线程 例如:
OMP_NUM_THREADS=1 MKL_NUM_THREADS=1 python train.py

@bubbliiiing
Copy link
Owner

0 0好的兄弟

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants