CoreML 自动将 int 转换为 float

CoreML automatic cast int to float

我是 coremltool 的新用户,目前我可以转换我的 TF 模型,并且 运行 它在 python 中。然而,我的模型的输出层是 automatically converted 浮动而不是 int32。我必须自己执行 python 回滚转换。

model.predict({"Input": image}).astype(int)

有人知道如何取消这个自动转换吗?并将我的输出保存为多维数组 - int ?

谢谢,

++t

您可以使用 coremltools Python 库将模型输出的数据类型更改为 INT32。这会自动将这些数字从浮点数转换为整数。

像这样:

import coremltools
model = coremltools.models.MLModel("YourModel.mlmodel")
spec = model._spec
spec.description.output[0].type.multiArrayType.dataType = coremltools.proto.FeatureTypes_pb2.ArrayFeatureType.INT32
coremltools.models.utils.save_spec(spec, "YourNewModel.mlmodel")

之所以没有自动完成,是因为浮点数通常是正确的数据类型。