2017-12-28 41 views
0
let model = test2() 
     var data = [1.0, 2.0,2.0,2.0,2.0,2.0,2.0] 

     guard let mlMultiArray = try? MLMultiArray(shape:[1,7], dataType:MLMultiArrayDataType.double) else { 
      fatalError("Unexpected runtime error. MLMultiArray") 
     } 

     for (index, element) in data.enumerated() { 
      mlMultiArray[index] = NSNumber(floatLiteral: element) 
     } 





     guard let markupOut = try? model.prediction(input1: mlMultiArray) else { 
      fatalError("Unexpected runtime error.") 
     } 

私はswift 4とcore MLを使用しています。coreML入力の確認に失敗しました

コンパイルしかしと、実行時に失敗:

[coreml】入力INPUT1ランク2の配列であるが、このモデルは唯一 単一のベクトル入力(ランク1)又は のバッチのシーケンスをサポートベクトル(ランク3)。 [coreml]入力の検証に失敗しました。

INPUT1は、私はベクトルの単一ベクトル入力/バッチに倍のマルチアレイを変換して「失敗の検証の入力」エラーを修正くださいマルチアレイのタイプ(ダブル7)

のですか?もしそうなら、私はダブルスのマルチアレイを単一のベクトル入力またはベクトルのバッチに変換するにはどうすればよいですか?

+0

コードを投稿するのではなく、質問自体にコードを編集することを検討してください。それはそれをテストすることをはるかに簡単にし、イメージは読者をスクリーニングすることができません。 –

答えて

1

shape:[1,7]と書くと、MLMultiArrayはランク2になります。コアMLは、このモデルはランク2の入力をサポートしていないと言います。したがって、shape:[7](ランク1にする)またはshape:[1,1,7](ランク3にする)のいずれかを実行します。

関連する問題