【问题标题】:coreML Failure Verifying InputscoreML 失败验证输入
【发布时间】:2018-06-08 16:29:58
【问题描述】:
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] 输入 input1 是一个 rank 2 的数组,但是这个模型只 支持单个向量输入(排名 1)或一系列批次的 向量(排名 3)。 [coreml] 验证输入失败。

input1 是 MultiArray (Double 7) 的类型

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

【问题讨论】:

  • 请考虑将代码编辑到问题本身中,而不是发布它的图像。这样可以更轻松地对其进行测试,并且屏幕阅读器无法访问图像。

标签: swift vector coreml


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-09-27
    • 2019-03-28
    • 2014-11-25
    • 2016-05-21
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多