fppccc

Results 8 comments of fppccc

自己解决了,原来需要安装一下'lxml'

我也遇到了同样的问题。我是2卡并行训练,在第二轮开始时报同样的错,只能跑一个epoch

> 分布式训练卡住的原因比较复杂,但主要原因都是在分布式通信时(例如这里的AllReduce操作),不同节点的数据不匹配而无法同步,某些进程会始终等不到需要的数据,直到超时退出。 > > 一般需要在进程间同步的数据主要就是`真值标签targets`、`损失loss_dict`、`梯度`,这些数据的不匹配包括以下原因: > > 1. 用于训练的数据集存在空标注,或者某些数据增强(例如crop)会导致空标注。遇到空标注的进程会可能会缺少部分损失,导致不同进程计算出的**loss_dict**不匹配。 > 2. 模型会根据输入的数据而选择特定的分支进行前向传播,例如进程1走A分支、进程2走B分支,当反向传播时,不同进程的**梯度**就会不匹配。 > 3. 训练时DataLoader迭代轮数无法整除(节点数*batch_size),导致最后一个batch时部分进程分配不到数据,`真值标签`就会不匹配。 > 4. 如果是多机多卡,可能节点间的数据通讯存在问题。 > > 我单机多卡对代码测试时并没有出现卡死问题,目前也没有很好的方法去定位究竟是什么原因。能否请您提供跑的数据集、训练配置、日志文件、shell输出,以及代码是在执行到以下哪一个语句卡住的: > > * loss_dict = model(images, targets),卡在这可能是数据集的问题 > *...

> 题主后面没和我联系,我也没复现出来这个问题😢能不能提供下更详细的信息,例如输出报错、train_config.py文件、pytorch版本之类的。 > > 我用的pytorch版本是1.12.0和2.1.1,这两个版本目前都没遇到过这个问题,可以尝试用这个pytorch版本跑试一试 我的pytorch版本是1.11.0,train_config.py文件只改动了coco数据集的存放位置,输出报错和题主是一样的,只不过因为用了tmux窗口,没有办法完全复制过来。感谢解答!我去试试pytorch==1.12.0。大概明天能得到是否可行的结果~

> 题主后面没和我联系,我也没复现出来这个问题😢能不能提供下更详细的信息,例如输出报错、train_config.py文件、pytorch版本之类的。 > > 我用的pytorch版本是1.12.0和2.1.1,这两个版本目前都没遇到过这个问题,可以尝试用这个pytorch版本跑试一试 您好!我使用pytorch 2.1.1尝试了双卡并行,还是同样的报错。我想也许不是pytorch版本的原因。如果需要的话,我还可以用pytorch1.12.0再跑一遍。 由于使用tmux窗口,能得到的报错信息只有如下几行(和题主完全一样): in launch_agent raise ChildFailedError( torch.distributed.elastic.multiprocessing.errors.ChildFailedError: ============================================================ main.py FAILED ------------------------------------------------------------ Failures: ------------------------------------------------------------ Root Cause (first observed failure): [0]: time : 2024-07-19_23:53:45 host :...

> tmux窗口可以向上滚动,先按`ctrl+b`,再按`[`符号,这样应该可以看到上面更全面的报错信息。 > > 请问每次报错位置都是在第二个epoch吗,是不是每次都是训练到同一个步数的时候报错? > > 不知道你方便加个好友进一步沟通吗? 感谢教学!我现在已经用pytorch1.12.0跑上了,如果还报错会用您教的方法复制报错信息的。 根据training.log,每次报错位置确实都是在第二个epoch刚开始的时候。(还没开始就断了) 我的vx是LCWHU-0823,非常欢迎您跟我进一步沟通!

如果已经训练了58epoch,有没有断点续训的办法呢?

非常非常感谢您的解答!我想还想问一下,在训练完成后的结果文件夹里,best_stg1.pth和best_stg2.pth,这两个哪一个适合用来做模型性能的对比呢?它们有什么区别呢?