我在使用Objective-C创建苹果的CoreML
时遇到了一些问题。我已经使用python
创建了一个非常简单的模型文件,现在工作得相当顺利:
coreml_model_svm = coremltools.models.MLModel("svm.mlmodel")
test_x = [1.0 for x in range(160)]
predictions_coreml_svm = coreml_model_svm.predict({"input":test_x})
我想用Objective-C
来复制上面的三行代码。我知道我的数据必须是一个MLMultiArray
,模型需要加载到MLModel
中。我一直在尝试查找有关语法的信息,但似乎我不理解文档如何工作,而所有示例都使用Swift。以下是我的代码。注释掉MLMultiArray
会导致初始化MLModel
时出现未捕获的异常。当不注释MLMultiArray
时,我得到了no known class method for selector 'initWithShape:dataType:error'
。
#import <Foundation/Foundation.h>
#import <CoreML/CoreML.h>
//clang -framework Foundation coremltest.m -o coremltest
int main (int argc, const char * argv[])
{
NSLog(@"start");
NSArray * shape = [[NSArray alloc] init];
MLMultiArrayDataType dataType = MLMultiArrayDataTypeDouble;
NSError * error = nil;
MLMultiArray * input = [MLMultiArray initWithShape:(NSArray*) shape
dataType:(MLMultiArrayDataType ) dataType
error:(NSError **) error];
MLModel * mymodel = [[MLModel init] initWithContentsOfFile:@"svm.mlmodel"];
return 0;
}
我会非常感激任何对此的帮助。
MLMultiArray *input = [MLMultiArray initWithShape:@[@10, @10] dataType: MLMultiArrayDataTypeDouble error:&error];
和MLModel *model = [[MLModel alloc] initWithContentsOfFile: @"name"];
- Matthijs Hollemans