Входные данные проверки отказа coreML

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 и ядро ​​ML.

Компилируется, но не работает во время выполнения с:

[coreml] Input input1 - это массив ранга 2, но эта модель поддерживает только одиночные векторные входы (ранг 1) или последовательность пакетов векторов (ранг 3). [coreml] Ошибка проверки входных данных.

input1 - это тип MultiArray (Double 7)

Исправить ли ошибку "проверка входных данных при сбое", преобразовав MultiArray, состоящий из двойных чисел, в отдельные векторные входы / пакеты векторов? Если да, то как мне преобразовать MultiArray из двойных чисел в одиночные векторные входы или пакеты векторов?

1 ответ

Решение

Когда ты пишешь shape:[1,7] MLMultiArray имеет ранг 2. Core ML говорит, что эта модель не поддерживает входы ранга 2. Так что либо делай shape:[7] (чтобы сделать это рангом 1) или shape:[1,1,7] (чтобы сделать это рангом 3).

Другие вопросы по тегам