如何在 CoreML 神经网络中使用半浮点数?

How can I use half floats with CoreML neural nets?

我已将 Keras 模型转换为 CoreML。我想确保 CoreML 对其所有纹理使用半浮点数而不是全浮点数。我怎样才能做到这一点?

更新: 如何确保网络的输出是半浮点数或至少是 Float(或任何其他类型)而不是 Double?

如果您 运行 GPU 上的 CoreML 模型,则无需为此做任何事情。 MPS(金属性能着色器)将自动使用半浮点数。如果您 运行 在您的 CoreML 模型上进行 GPU 帧捕获,您可以看到这一点。

我写了一篇博客 post 关于 CoreML 如何在幕后工作,实际上演示了它使用半浮点数:http://machinethink.net/blog/peek-inside-coreml/