【问题标题】:CoreML automatic cast int to floatCoreML 自动将 int 转换为浮点数
【发布时间】:2021-01-05 06:01:02
【问题描述】:
我是 coremltool 的新用户,目前我可以转换我的 TF 模型,并在 python 中运行它。然而,我的模型的输出层是 automatically converted 浮动而不是 int32。我必须在 python 中执行自己的回滚转换。
model.predict({"Input": image}).astype(int)
有人知道如何取消这种自动转换吗?并将我的输出保持为多维数组 - int ?
谢谢,
++t
【问题讨论】:
标签:
swift
coreml
coremltools
【解决方案1】:
您可以使用 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")
这不是自动完成的原因是因为通常浮点数是正确的数据类型。