首页 文章

为什么我会收到错误:p roblem解码CoreML文档?

提问于
浏览
8

我在Xcode 9 Beta上使用CoreML和Swift 4.0 .

如果在项目导航器中选择文件 VGG16.mlmodel ,则会收到错误: There was an problem decoding this document CoreML

另外,在代码中我得到错误 Use of unresolved identifier 'VGG16'Use of undeclared type 'VGG16'

VGG16.mlmodel 从这里下载https://developer.apple.com/machine-learning/

可能是什么问题呢?

适用于型号的PS205-GoogLeNet,ResNet50和Inception v3一切正常 .

3 回答

  • 1

    根据要求,我会将我的评论充实为答案 .

    其他人已经提到了这一点,但你很可能有一个损坏的下载或模型本身已经破坏 . 首先,我强烈建议不要在移动设备上使用VGG16型号或相关型号,因为它们的尺寸很大(VGG16为500 MB) . 只需加载模型,你就会耗尽iPhone 6上的内存,你的应用程序大小将会很大,并且在加载这些权重时你会有一个很长的初始化时间 .

    我建议使用类似SqueezeNet变体的东西,它很小(约5 MB),在ImageNet上训练时可以更准确,并且不像Inception系列那样计算成本高 . Apple提到在其中一个Core ML WWDC会话中使用其中一个 .

    将模型添加到Xcode项目时,请确保它实际上已在目标中注册 . Xcode的当前测试版偶尔会忘记将其添加到目标中,因此请突出显示模型并检入文件检查器以确保它是应用程序目标的一部分 . 如果模型不在您的目标中,Xcode将不会为其自动生成Swift标头 .

  • 8
    • 请运行 ./setup.sh

    • VGG16.mlmodel 选择目标,见screenshot

  • 0

    对于有Dropout的模型,我得到同样的东西 . 尝试通过将权重复制到没有它们的新模型来删除这些图层 .

相关问题