模型对象没有属性保存,同时减小了CoreML的大小?

时间:2018-09-15 08:39:55

标签: python coreml

我正在减少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')

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我也遇到过这个问题,在 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")