Преобразование Float в BFloat: округление с помощью умножения - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь реализовать преобразование FP32 в BFloat16 в Tensorflow, и здесь я наткнулся на очень полезный поток StackOverflow: Преобразование FP32 в Bfloat16 в C ++

В нем верхОтвет достигает округления путем умножения на магическую константу (1.001957), прежде чем усечь 32-битное значение до 16 старших разрядов.

Я пытаюсь понять, откуда взялась эта «магическая» константа. Я понимаю, что он используется для попытки округления до ближайшего значения, "проталкивая" младшие биты в старшие 7 бит. Однако я не знаю, как бы я сам придумал значение 1.001957. Любая помощь будет принята с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...