CoreML: иногда возникает ошибка «Неожиданная модель обработки ошибок» - PullRequest
1 голос
/ 30 октября 2019

Контекст: Я использую собственную модель CoreML, созданную специалистом по обработке данных. Модель представляет собой конвейер, использующий модель Apple SoundAnalysisPreprocessing в качестве первой модели. За моделью SoundAnalysisPreprocessing следует пользовательская модель, которая содержит различные слои свертки и softmax.

Проблема: При запуске прогноза я иногда получаю Unexpected error processing model. При точно таком же вводе я иногда получаю правильный результат, а иногда и эту ошибку.

Вопрос: Я понятия не имею, что делать с этой ошибкой. Это проблема памяти с плохо распределенным вводом? Это проблема с самой моделью? Ты хоть представляешь, что я могу сделать, чтобы понять, что происходит?

Полный журнал ошибок:

[DSPGraph] throwing DSPGraph::Exception with backtrace:
0       0x7fff2bcf5df9  DSPGraph::Graph::processMultiple(DSPGraph::GraphIOData*, DSPGraph::GraphIOData*) + 249
1       0x7fff2bc3b570  processThroughGraph(id<MLFeatureProvider>, MLMultiArrayConstraint*, MLMultiArray*, NSString*, DSPGraph::Graph&, std::__1::vector<float, DSPGraph::Graph&::allocator<float> >&, void (DSPGraph::Graph, NSString*::GraphIOData&) block_pointer, NSError* __autoreleasing*) + 979
2       0x7fff2bc3c573  -[SNDSPGraphCustomModel predictionFromFeatures:options:error:] + 195
3       0x7fff2bc3ca49  -[_SNVGGishFrontEndProcessingCustomModel predictionFromFeatures:options:error:] + 98
4       0x7fff2496ac30  -[MLAppleSoundAnalysisPreprocessing predictionFromFeatures:options:error:] + 132
5       0x7fff248d345c  -[MLPipeline predictionFromFeatures:options:error:] + 178
6       0x7fff24923f76  -[MLModel predictionFromFeatures:error:] + 92
7          0x104b89a68  $s10TestCoreML17AudioFileAnalyzerC019previsionWithManualD3Cut33_1966162A0510E69792A8D979B37CC177LL3for10completiony10Foundation3URLV_ySo12MLMultiArrayCSgXEtF + 5992
8          0x104b87850  $s10TestCoreML17AudioFileAnalyzerC05startF03for10completiony10Foundation3URLV_yyXEtF + 80
9          0x104bb360c  $s10TestCoreML23ClassificationViewModelC14startRecognize4word8mockData11resultBlock06finishM0ySS_SbySb_SaySo16SNClassificationCGSgtcSgyyctF + 3436
10         0x104bad21c  $s10TestCoreML18ReadViewControllerC010collectionE0_15didSelectItemAtySo012UICollectionE0C_10Foundation9IndexPathVtFyycfU_ + 220
11         0x104b923fd  $sIeg_IeyB_TR + 45
12         0x104f79d64  _dispatch_client_callout + 8
13         0x104f7c6d6  _dispatch_continuation_pop + 552
14         0x104f8fa8f  _dispatch_source_invoke + 2205
15         0x104f87c53  _dispatch_main_queue_callback_4CF + 1043
[truncated?]
2019-10-30 20:33:04.209693+0100 TestCoreML[5024:191792] [] Caught graph exception 1718775073 !mrf fromBytePos (0) + numBytesToCopy (61440) > mABL->mBuffers[0].mDataByteSize (2112) in /BuildRoot/Library/Caches/com.apple.xbs/Sources/Listen_Sim/Listen-35/CoreAudioUtility/Source/CADSP/DSPGraph/DSPGraph_Utils.cpp:742

1 Ответ

0 голосов
/ 11 ноября 2019

Я считаю, что вам нужно обновить некоторые библиотеки в вашем коде. Основанный на этом GitHub, связанном с вашей ошибкой.

Github

исключение графа 1718775073 является ключом.

На форуме они сказали, что это исправление, из-застранная разница между входящим вызовом и переменными исходящего вызова.

if (-0.01f <= hw_srate || hw_srate >= 0.1.f)
{
fmt.mSampleRate = prm->state;
fat->sample_rate = 1.0f;
}
...