2017-08-28 50 views
0

我有Objective-C(成千上萬行)製作的機器視覺項目。爲了完成它,我需要導入我的機器My_model.mlmodel與最新的coreML庫。 (因爲在Python中使用coremltools創建了離題My_model.mlmodel) 我正在嘗試實例化它,但沒有任何工作,我無法找到任何教程或幫助解決此主題。當然,我將我的模型導入純Swift項目,並且工作。 所以我將Swift類附加到了我的項目中,希望能夠以這種方式工作,但Xcode再次將模型轉換爲「Objective-C爲模型生成的接口」,並且該模型在Swift類中不可見。如何在Objective-C中使用機器學習模型CoreML

下圖顯示Xcode自動將.mlmodel導入爲Objective-C類。

Xcode imports mlmodel as Objective-C class

我需要把向量模型,並得到響應。

請幫幫我;我在完成這個項目時堆了幾行。 如何在Objective-C中使用My_model.mlmodel是否有任何解決方法或者可能像Swift一樣簡單方便

非常感謝。

+0

如果你點擊linear_model旁邊的小箭頭(它表示「Objective-C生成的模型接口」),那麼Xcode會告訴你這個Obj-C代碼是什麼樣的。 –

+0

我做到了。我試圖拉這個選項,但我做錯了什麼。該模型甚至得到我的代碼,但我不知道如何將數據放入或退出。如果我將它放入我的代碼中,編譯器會發出警告: 「表達式結果未使用」 –

+0

您可能在Objective-C中有任何示例嗎?我嘗試在蘋果文檔網站上找到所有可能的組合實例化模型。 Swift版本要簡單得多,但該項目太大而無法將其轉換爲Swift。我試圖通過我的項目中的Swift代碼來完成它,但Xcode會自動將模型轉換爲Objective-C,所以我回到了原點。 –

回答

0

也許,在OBJ-C這個項目將幫助您: https://github.com/freedomtan/SimpleInceptionV3-ObjC/tree/continuous-mobilenet/SimpleInceptionV3-ObjC

在項目中,我用這個方法來初始化我的模型

#import "my_model.h" 

@property (nonatomic, strong) my_model *model; 

- (void)configureModel { 
    NSURL *modelUrl = [[NSBundle mainBundle] URLForResource:@"my_model" withExtension:@"mlmodelc"]; 
    NSError *error; 
    self.model = [[my_model alloc] initWithContentsOfURL:modelUrl error:&error]; 
    if (error) { 
     NSLog(@"cover search error: model not configure"); 
    } 
} 

爲什麼 「mlmodelc」 的幾點說明: https://blog.zedge.net/developers-blog/hotswapping-machine-learning-models-in-coreml-for-iphone