2017-12-28 34 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.") 
     } 

Ich verwende Swift 4 und Core ML.coreML Fehler bei der Überprüfung der Eingänge

Kompilieren aber nicht während der Laufzeit mit:

[coreml] Eingang input1 ist ein Array von Rang 2, aber dieses Modell nur unterstützt einzelne Vektor Eingänge (Rang 1) oder eine Abfolge von Chargen von Vektoren (Rang 3). [coreml] Fehler beim Überprüfen der Eingaben.

input1 ist Art von Multiarray (Doppel 7)

Habe ich die „failure Verifizieren Eingänge“ Fehler zu beheben, indem Sie den Multiarray von Doppel zu einzelnen Vektor Ein-/Chargen von Vektoren konvertieren? Wenn ja, wie konvertiere ich ein MultiArray von Doubles in einzelne Vektoreingaben oder Vektorchargen?

+0

Bitte denken Sie daran, den Code in die Frage selbst zu schreiben, anstatt ein Bild davon zu posten. Das macht es viel einfacher, es zu testen, und Bilder sind für Bildschirmleser nicht zugänglich. –

Antwort

1

Wenn Sie schreiben shape:[1,7] der MLMultiArray ist von Rang 2. Core ML sagt, dieses Modell unterstützt keine Rang 2-Eingaben. Also entweder shape:[7] (um es auf Platz 1 zu setzen) oder shape:[1,1,7] (um es auf Rang 3 zu bringen).

Verwandte Themen