CoreML自动将int转换为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")

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...