CoreML 初始化失败:MTLTextureDescriptor 的宽度大于最大允许大小

CoreML initialization fails: MTLTextureDescriptor has width greater than the maximum allowed size

我有一个 Keras CNN 模型,我使用 coremltools 将其转换为 CoreML。它在模拟器上完美运行,但在 iPhone X 上运行不佳。它仅在初始化时崩溃:

let cnn = MyCnn()

…错误:

MTLTextureDescriptor has width (44100) greater than the maximum allowed size of 16384.

在阅读了类似错误的 SO 帖子后,我认为这可能是 GPU 问题,所以我尝试设置

usesCPUOnly = true 

但是,我只能在预测时间内发送选项,而且似乎没有办法在初始化之前设置它——发生崩溃的地方。

有什么想法吗?

可以在初始化期间通过传入MLModelConfiguration对象来设置它。

但缩小模型可能是个好主意。听起来这对于移动设备来说太大了 phone。