PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.88k stars 2.9k forks source link

Process finished with exit code -1073741819 (0xC0000005) #5590

Open Wei-JL opened 2 years ago

Wei-JL commented 2 years ago

复现yolov4 在计算iou损失的时候 代码调试 什么也没做 内存暴涨 直到报 Process finished with exit code -1073741819 (0xC0000005) 的错 非常奇怪 调试时 运行完paddle.argmax(self.calculate_iou(gt_box, anchor_shapes), axis=-1) 找到iou最大下标后 for循环完 卡主 什么也没见到执行 内存一直上涨到爆 知道是内存溢出 也看了复现指南https://github.com/PaddlePaddle/models/blob/release%2F2.2/tutorials/article-implementation/ArticleReproduction_CV.md 里面的几个方法 试过了 都没用

zoooo0820 commented 2 years ago

这部分代码是自己写的吗?如果确定问题出在IOULoss相关的部分,可以尝试下其他使用相同Loss的模型,对比验证下具体问题的来源。

Wei-JL commented 2 years ago

这部分代码是自己写的吗?如果确定问题出在IOULoss相关的部分,可以尝试下其他使用相同Loss的模型,对比验证下具体问题的来源。

没太明白诶~ 其实在之前2个月前 我这个还能train起来 但是 中间有些轮次loss是nan 我找了很久没找出来 就先搁置了 现在知道官方有复现指南 我再打开了 发现train不起来了 内存暴涨 我也没改过代码

zoooo0820 commented 2 years ago

之前的训练和当前的区别在哪里,是代码做了改动,还是更新了Paddle版本或是PaddleDetection的版本呢。可以控制变量做一下对比

Wei-JL commented 2 years ago

之前的训练和当前的区别在哪里,是代码做了改动,还是更新了Paddle版本或是PaddleDetection的版本呢。可以控制变量做一下对比

没有升级 我刚刚发现我c盘满了 全是python.exe.1168.dmp 这种文件 占几个G 系统缓存 应该就是我跑这个代码的问题 请问有见过吗

Wei-JL commented 2 years ago

请问我可以把项目给您看一下吗 我调试他都没见有问题 一直卡主 确实不知道怎么解决了 第一次遇见这样的问题 卡2天了 一般报错我还是能很快解决的 这个确实不知道问题在哪

zoooo0820 commented 2 years ago

上面格式已经乱了,另外从代码很难直接看出问题在哪里。能否尽量给出最小化可复现这个问题的代码呢?另外可以提供一下具体的运行环境(paddle/paddledet版本,系統、cuda版本等等)

Wei-JL commented 2 years ago

系统win11 paddle版本如下 import paddle print("paddleversion", paddle.version) paddle.utils.run_check()

输出: paddleversion 0.0.0 Running verify PaddlePaddle program ... W0406 18:21:44.535634 18644 device_context.cc:479] Please NOTE: device: 0, GPU Compute Capability: 8.6, Driver API Version: 11.6, Runtime API Version: 11.2 W0406 18:21:44.543635 18644 device_context.cc:497] device: 0, cuDNN Version: 8.2. PaddlePaddle works well on 1 GPU. PaddlePaddle works well on 1 GPUs. PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.

最小复现的话,这次估计很难 因为我也不知道哪出了问题,我现在正在尝试上传到BML上跑。

Wei-JL commented 2 years ago

paddle 1.0.2 pypi_0 pypi
paddlepaddle 2.2.0 pypi_0 pypi
paddlepaddle-gpu 0.0.0.post112 pypi_0 pypi
这是我刚刚在anaconda上复制的

Wei-JL commented 2 years ago

您好,我把代码上传到了BML上,会报错 。不太清楚为什么自己电脑上不会 。可能跟python版本有关系 我试了3.6版本也会报错。我这个是3.8版本。

Traceback (most recent call last): File "train.py", line 231, in epoch_step, epoch_step_val, gen, gen_val, end_epoch, Cuda) File "/home/aistudio/yolov4/utils/utils_fit.py", line 42, in fit_one_epoch loss_item, num_pos = yolo_loss(l, outputs[l], targets) File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/layers.py", line 917, in call return self._dygraph_call_func(*inputs, *kwargs) File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/layers.py", line 907, in _dygraph_call_func outputs = self.forward(inputs, *kwargs) File "/home/aistudio/yolov4/nets/yolo_training.py", line 213, in forward ciou = (1 - self.box_ciou(pred_boxes[y_true[..., 4] == 1], y_true[..., :4][y_true[..., 4] == 1])) \ File "/home/aistudio/yolov4/nets/yolo_training.py", line 87, in box_ciou intersect_mins = paddle.max(paddle.stack([b1_mins, b2_mins], axis=0), axis=0) File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/tensor/manipulation.py", line 798, in stack return layers.stack(x, axis, name) File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/nn.py", line 10184, in stack return _C_ops.stack(x, 'axis', axis) ValueError: (InvalidArgument) x dim number should greater than 0, but received value is: 0 [Hint: Expected x_dim > 0, but received x_dim:0 <= 0:0.] (at /paddle/paddle/fluid/platform/gpu_launch_config.h:107) [operator < stack > error]

zoooo0820 commented 2 years ago

理论上python版本不会影响的,0.0.0通常是develop包无法确定paddle的版本情况,优先保证paddle版本一致。也可以先根据当前的报错信息debug。

Wei-JL commented 2 years ago

非常感谢~~ 还有一个问题 就是我电脑一买来 对着视频安装了cuda11.4 最新的 然后发现paddle那时候最多出了11.2吧? 这样安装会有什么问题出现吗

zoooo0820 commented 2 years ago

目前官方支持的版本如下 https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/windows-pip.html

从前述信息来看,win11,cuda11.4不在列表中,虽然仍然可以运行,但是并没有经过严格测试,可能会有未知的错误。

Wei-JL commented 2 years ago

目前官方支持的版本如下 https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/windows-pip.html 从前述信息来看,win11,cuda11.4不在列表中,虽然仍然可以运行,但是并没有经过严格测试,可能会有未知的错误。

非常感谢~~~ 我重新建了一个anaconda仓库 ,现在能报错了 不再是内存溢出异常终止了 paddleversion 2.2.2 Running verify PaddlePaddle program ... W0406 18:49:31.769846 21912 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 8.6, Driver API Version: 11.6, Runtime API Version: 11.2 W0406 18:49:32.035907 21912 device_context.cc:465] device: 0, cuDNN Version: 8.2. PaddlePaddle works well on 1 GPU. PaddlePaddle works well on 1 GPUs. PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.

Wei-JL commented 2 years ago

正好还有个问题~ 我可以一起问了吗

torch : fg_mask[fg_mask.clone()] = fg_mask_inboxes paddle : fg_mask[fg_mask.clone()] = fg_mask_inboxes

File "D:\PyCharm\YOLO\paddle_fuxian\yolox_paddle\nets\yolo_training.py", line 447, in dynamic_k_matching fg_mask[fg_mask.clone()] = fg_mask_inboxes File "D:\Anaconda3\envs\paddle2-2-2g\lib\site-packages\paddle\fluid\dygraph\varbase_patch_methods.py", line 637, in setitem return _setitemimpl(self, item, value) File "D:\Anaconda3\envs\paddle2-2-2g\lib\site-packages\paddle\fluid\variable_index.py", line 584, in _setitemimpl return set_value_for_bool_tensor(var, slice_item, value) File "D:\Anaconda3\envs\paddle2-2-2g\lib\site-packages\paddle\fluid\variable_index.py", line 683, in set_value_for_bool_tensor "but received {}.".format(var.dtype)) TypeError: Only support float and double tensor for bool index, but received paddle.bool.

就是复现的时候 发现torch的里面"tensor[ ]"里面可以写另一个bool类型索引,paddle不行 这个该怎么复现

zoooo0820 commented 2 years ago

2.2 的paddle应该是支持这种写法的,麻烦再确认一下版本是否对得上呢。如果还不行,请给出各变量具体的值供复现问题。

Wei-JL commented 2 years ago

好嘞~ 我试试 刚刚试了不行的 看能不能最小化复现