0

操作系统:macos Catalina 10.15.2
xcode:11.3
coreml3.0

我将相同的模型输入提供给相同的 mlmodel。但是使用 cpu 设备和 gpu 设备的推理结果是不同的。

结果如下,左边文件是使用cpu的推理结果(第二列),右边文件是使用CpuAndGpu的推理结果(第二列)。我用beyond compare来比较两个文件,红色标注的数据就是区别。

有谁知道这个问题以及如何解决它?

在此处输入图像描述

4

1 回答 1

1

这本身不是问题。在 GPU 上使用 16 位浮点数,而在 CPU 上使用 32 位浮点数。16 位浮点数的精度较低,这解释了您得到的不同结果。

有些数字会稍大,有些会稍小,但通常这些影响会抵消,您不会注意到差异。

(但是,如果您的模型生成图像,您可能会注意到 16 位浮点数提供的较低精度造成的像素伪影。)

于 2020-01-21T21:45:24.310 回答