PaddlePaddle / PaddleX

All-in-One Development Tool based on PaddlePaddle(飞桨低代码开发工具)
Apache License 2.0
4.87k stars 958 forks source link

树莓派4B中部署YoloV3_MobilenetV3,出现double free or corruption (fasttop)错误 #473

Open angang20 opened 3 years ago

angang20 commented 3 years ago

问题类型:模型部署

我使用的是这篇文档中提供的测试成功的模型。并按照文章中的提示,yml中输入大小调整到 320*320,在树莓派4B中执行detect,出现如下错误。包括我自己在paddleX中训练并导出的模型,也是同样的错误。 https://aistudio.baidu.com/aistudio/projectdetail/1227445

与文章中的区别: 1,文章中是树莓派3B,armv7hf, 我的平台是4B,armv7l 2,文章中是Raspberry Pi OS 64位操作系统。我的系统如下, $ uname -a Linux raspberrypi 5.4.79-v7l+ #1373 SMP Mon Nov 23 13:27:40 GMT 2020 armv7l GNU/Linux $ file /bin/ls /bin/ls: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0 gcc version 8.4.0 (Ubuntu/Linaro 8.4.0-3ubuntu1)

3,文章中重新编译了预编译库。我使用的是下载的inference_lite_2.6.1_armlinux.tar.bz2。这里包含full版共享库。 4,我使用了2.6.1版本opt,把文章中提供的模型转成Paddle-Lite模型。 sudo ./opt_261 --model_file=yolov3_mobilenetv3/model \ --param_file=yolov3_mobilenetv3/params \ --valid_targets=arm \ --optimize_out_type=naive_buffer \ --optimize_out=yolov3_mobilenetv3_opt261

root@raspberrypi:/home/pi/projects/PaddleX-develop/deploy/raspberry/data# ../build/detector --model_dir=yolov3_mobilenetv3_opt261.nb --image=0200.jpg --cfg_file=model.yml [I 12/21 18: 5: 3. 36 ...wsy/Paddle-Lite/lite/core/device_info.cc:1055 Setup] ARM multiprocessors name: MODEL NAME : ARMV7 PROCESSOR REV 3 (V7L) HARDWARE : BCM2711

[I 12/21 18: 5: 3. 36 ...wsy/Paddle-Lite/lite/core/device_info.cc:1056 Setup] ARM multiprocessors number: 4 [I 12/21 18: 5: 3. 36 ...wsy/Paddle-Lite/lite/core/device_info.cc:1058 Setup] ARM multiprocessors ID: 0, max freq: 1500, min freq: 1500, cluster ID: 0, CPU ARCH: A72 [I 12/21 18: 5: 3. 36 ...wsy/Paddle-Lite/lite/core/device_info.cc:1058 Setup] ARM multiprocessors ID: 1, max freq: 1500, min freq: 1500, cluster ID: 0, CPU ARCH: A72 [I 12/21 18: 5: 3. 36 ...wsy/Paddle-Lite/lite/core/device_info.cc:1058 Setup] ARM multiprocessors ID: 2, max freq: 1500, min freq: 1500, cluster ID: 0, CPU ARCH: A72 [I 12/21 18: 5: 3. 36 ...wsy/Paddle-Lite/lite/core/device_info.cc:1058 Setup] ARM multiprocessors ID: 3, max freq: 1500, min freq: 1500, cluster ID: 0, CPU ARCH: A72 [I 12/21 18: 5: 3. 36 ...wsy/Paddle-Lite/lite/core/device_info.cc:1064 Setup] L1 DataCache size is: [I 12/21 18: 5: 3. 36 ...wsy/Paddle-Lite/lite/core/device_info.cc:1066 Setup] 32 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1066 Setup] 32 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1066 Setup] 32 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1066 Setup] 32 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1068 Setup] L2 Cache size is: [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1070 Setup] 512 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1070 Setup] 512 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1070 Setup] 512 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1070 Setup] 512 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1072 Setup] L3 Cache size is: [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1074 Setup] 0 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1074 Setup] 0 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1074 Setup] 0 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1074 Setup] 0 KB [I 12/21 18: 5: 3. 37 ...wsy/Paddle-Lite/lite/core/device_info.cc:1076 Setup] Total memory: 8064948KB double free or corruption (fasttop) Aborted

syyxsxx commented 3 years ago

@angang20 您好,问题原因是,目前code里面在编译yaml的时候没有通过-march参数指定ARM的architecture,导致在load yaml文件时会出现double free的错误 此PR修复了这个问题 https://github.com/PaddlePaddle/PaddleX/pull/474 您拉取最新的代码,可以解决此问题