I’m attempting to run a YOLO ONNX pose detection mannequin on iOS 17. Works high-quality in CPU inference. Nevertheless it’s tremendous gradual. 10x slower than the CoreML transformed mannequin. So I figured that is working solely on CPU and added the next
let ortCoreMlSessionOptions = ORTCoreMLExecutionProviderOptions()
strive ortSessionOptions.appendCoreMLExecutionProvider(with: ortCoreMlSessionOptions)
Nevertheless I get this error when the mannequin runs.
[E:onnxruntime:, sequential_executor.cc:514 ExecuteKernel] Non-zero standing code returned whereas working CoreML_12572311578788037559_16 node. Identify:'CoreMLExecutionProvider_CoreML_12572311578788037559_16_16'
Standing Message: coreml_execution_provider.cc:168 operator() Enter (_ppp9_nmsbox) has a dynamic form ({-1,3}) however the runtime form ({0,3}) has zero parts. This isn't supported by the CoreML EP.
I’m tremendous new to ONNX and any assist in resolving this might be enormously appreciated. What I figured from the ONNX github boards is that the dynamic shapes at the moment are supported.
This mannequin makes use of Microsoft ONNX extensions for pre and publish processing steps. Unsure if that has any affect on the dynamic shapes.
Right here is my Podfile
# Uncomment the subsequent line to outline a world platform on your challenge
platform :ios, '15.0'
goal 'YOLO' do
# Remark the subsequent line if you happen to do not wish to use dynamic frameworks
use_frameworks!
# Pods for onnx
#pod 'onnxruntime-objc', '~> 1.17.0-dev+20231211010.8f2b5a6'
pod 'onnxruntime-objc'
pod 'onnxruntime-extensions-c'
finish