coreML失败验证输入

时间:2017-12-28 05:40:16

标签: swift vector 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]输入input1是排名为2的数组,但仅限此模型   支持单向量输入(等级1)或一系列批次   矢量(排名3)。 [coreml]验证输入失败。

input1是MultiArray(Double 7)的类型

我是否通过将MultiArray of double转换为单向量输入/批量向量来修复“验证输入失败”错误?如果是这样,我如何将MultiArray of double转换为单个矢量输入或批量矢量?

1 个答案:

答案 0 :(得分:2)

当您编写shape:[1,7]时,MLMultiArray的等级为2. Core ML表示此模型不支持2级输入。因此,shape:[7](使其排名为1)或shape:[1,1,7](使其排名为3)。