【问题标题】:Model object has no attribute save while reducing size of CoreML?模型对象在减小 CoreML 大小的同时没有属性保存?
【发布时间】:2019-02-19 22:12:10
【问题描述】:

我正在减小 CoreML 的大小。我用 Python Turicate 制作了这个 CoreML,但我收到了一个错误 Model object has no attribute save。在执行 python 文件之前,我有 Python 2.7pip install coremltools==2.0b1。这是我的代码 -

import coremltools
from coremltools.models.neural_network.quantization_utils import *
model = coremltools.models.MLModel('/Users/Desktop/MLClassifier/animals.mlmodel')
lin_quant_model = quantize_weights(model, 16, "linear")
lin_quant_model.save('/Users/Desktop/animals2.mlmodel')

【问题讨论】:

    标签: python coreml


    【解决方案1】:

    我的猜测是您不在 macOS 10.14 或更高版本 (Mojave) 上,在这种情况下,当您调用 quantize_weights() 时,您不会获得 MLModel,而是模型规范(根据文档)。不知道为什么,但就是这么说的。

    【讨论】:

    • 我也返回这个警告警告!由于 OS != macOS 10.14 或更高版本,无法返回量化的 MLModel 实例,而是返回量化的模型规范
    • 谢谢你的回答
    【解决方案2】:

    我也遇到过这个问题,在 Ubuntu 上运行模型量化(Python 3.8,coremltools==4.1)。

    我不知道究竟为什么会发生这个错误(也许它应该在 macOS 上运行),但是当您获得规范时,您可以按如下方式获取和保存模型:

        model_fp16_specs = quantization_utils.quantize_weights(model_fp32, nbits=16)
        model_fp16 = ct.models.MLModel(model_fp16_specs)
    
        model_fp16.save("model_quantized.mlmodel")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      • 2023-03-10
      • 2021-10-29
      • 1970-01-01
      • 2013-10-01
      相关资源
      最近更新 更多