2017-10-13 2 views
1

プロジェクト用にCoreMLの容量があります。ここで私はやって管理するものです:動的にmlmodelをロードしています

  1. は.mlmodelファイルに変換するPythonの
  2. にscikit-学ぶ使用の.pklファイルの作成coremltoolsパッケージを使用して
  3. 私のiOSアプリケーション
  4. にそれをダウンロードします実行時に、それをコンパイルします。

    let classifierName = "classifier1" 
    let fileName = NSString(format:"%@.mlmodel",classifierName) 
    let documentsUrl:URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL! 
    let destinationFileUrl = documentsUrl.appendingPathComponent(fileName as String) 
    
    let compiledModelUrl = try? MLModel.compileModel(at: destinationFileUrl) 
    let model = try? MLModel(contentsOf: compiledModelUrl!) 
    

を今、私が私のモデルを使用したいと思います予測する。 、

let multiArr = try? MLMultiArray.init(shape: [1], dataType: .double) 
let input = classifier1Input(input: multiArr!) 
let output = try? model.prediction(input: input) 

しかし、私は、実行時にサーバーからファイルをダウンロードしていますので、私は直接XCodeの入力をインスタンス化するビルド時にラッパークラスを作成することができ.mlmodelファイルを埋め込むために、サンプルアプリで試してみました私はこの種のラッパークラスにアクセスすることはできません。

let predict = model?.prediction(from: <MLFeatureProvider>) 

答えて

2

最も簡単な解決策:Xcodeで生成されたラッパークラスをSwiftファイルにコピーしてプロジェクトに追加します。 (このラッパークラスは、MLFeatureProviderなどの作成方法も示しています)

関連する問題