在ATLAS 200I DK A2开发板上,采用多进程编程,无法加载深度学习om模型,但是同样的代码在主进程或者多线程的线程中都没有问题。
yolov5_model_path = "models/2023_11_9_yolov5s_keypoints.om"
yolov5_model = base.model(modelPath=yolov5_model_path, deviceId=DEVICE_ID)
上面是我们两句程序,一个是指定路径,一个是加载模型,进程采用multiprocessing的Process创建一个新的进程,
pro1=Process(target=get_rtsp,args=(q_input,),daemon=True)
上述代码如果写在在pro1(get_rtsp)进程中,会报错
E20240326 17:31:41.383137 1375929 MxOmModelDesc.cpp:1340] [245000][Error code unknown] Failed to load offline model data.
E20240326 17:31:41.387660 1375929 MxOmModelDesc.cpp:315] [545008][Error code unknown] Failed to obtain the model description.
E20240326 17:31:41.387769 1375929 Model.cpp:49] MxModel init failed. ret is: 545008
E20240326 17:31:41.410805 1375929 MxOmModelDesc.cpp:329] [145003][Error code unknown] Failed to unload model.
E20240326 17:31:41.411020 1375929 PyModel.cpp:31] Failed to create model_ object.
但是同样的代码在主进程中,以及通过threading.Thread(target=get_rtsp),创建的线程中,都没有问题,只是在创建的进程中有问题。
在ATLAS 200I DK A2开发板上,采用多进程编程,无法加载深度学习om模型,但是同样的代码在主进程或者多线程的线程中都没有问题。
yolov5_model_path = "models/2023_11_9_yolov5s_keypoints.om"
yolov5_model = base.model(modelPath=yolov5_model_path, deviceId=DEVICE_ID)
上面是我们两句程序,一个是指定路径,一个是加载模型,进程采用multiprocessing的Process创建一个新的进程,
pro1=Process(target=get_rtsp,args=(q_input,),daemon=True)
上述代码如果写在在pro1(get_rtsp)进程中,会报错
E20240326 17:31:41.383137 1375929 MxOmModelDesc.cpp:1340] [245000][Error code unknown] Failed to load offline model data.
E20240326 17:31:41.387660 1375929 MxOmModelDesc.cpp:315] [545008][Error code unknown] Failed to obtain the model description.
E20240326 17:31:41.387769 1375929 Model.cpp:49] MxModel init failed. ret is: 545008
E20240326 17:31:41.410805 1375929 MxOmModelDesc.cpp:329] [145003][Error code unknown] Failed to unload model.
E20240326 17:31:41.411020 1375929 PyModel.cpp:31] Failed to create model_ object.
但是同样的代码在主进程中,以及通过threading.Thread(target=get_rtsp),创建的线程中,都没有问题,只是在创建的进程中有问题。