我正在开发一个iOS 11
应用程序,以利用新的CoreML框架。想法是使用不同的.mlmodel
文件来处理视频输入,并允许用户选择所需的模型进行分类。
我遇到了两个问题:
- 无法在Xcode项目中添加多个模型。Xcode停止生成强类型模型,我无法实例化它们
- 无法动态加载
.mlmodel
(假设我按需下载了它)。有没有办法动态加载.mlmodel
?
回答:
Xcode中有一个错误,有时会阻止在存在多个模型时进行代码生成。作为解决方法,你可以在项目设置中明确设置“CoreML代码生成语言”(而不是Automatic
)。
关于动态加载模型:他们在iOS 11 Beta 4中刚刚添加了一个新API,允许通过空中加载模型并在设备上编译,详见这里。
你不需要生成的类来执行模型,你可以自己从编译后的模型文件初始化它们,虽然这会带来一些小麻烦。只要检查生成的类,看看它们是如何做的即可。