Результаты вывода coreml различаются для CPU и GPU - PullRequest
0 голосов
/ 21 января 2020

ОС: Macos Catalina 10.15.2
xcode: 11.3
coreml3.0

Я даю ту же модель ввода для той же mlmodel. Но результаты логического вывода различаются при использовании процессора и графического процессора.

Результаты следующие: левый файл - это результат вывода (второй столбец) с использованием процессора, а правый файл - результат вывода (второй столбец) с использованием CpuAndGpu. Я использую не поддающееся сравнению сравнение двух файлов, и данные, помеченные красным цветом, являются разницей.

Кто-нибудь знает о проблеме и как ее исправить?

введите изображение описание здесь

1 Ответ

1 голос
/ 22 января 2020

Это не проблема как таковая. На графическом процессоре используются 16-разрядные числа с плавающей запятой, тогда как на процессоре используются 32-разрядные числа с плавающей запятой. 16-разрядные числа с плавающей точкой имеют меньшую точность, что объясняет различные результаты, которые вы получаете.

Некоторые числа будут немного больше, некоторые будут немного меньше, но обычно эти эффекты отменяются, и вы не заметите разницу.

(Однако, если ваша модель генерирует изображения, вы можете заметить пиксельные артефакты с более низкой точностью, обеспечиваемой 16-разрядными числами с плавающей запятой.)

...