Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
The count is coded into a one-octet number using the following
formula:
#define EXPBIAS 6
count = ((Int32)16 + (c & 15)) << ((c >> 4) + EXPBIAS);
The above formula is in C, where "Int32" is a type for a 32-bit
integer, and the variable "c" is the coded count, Octet 10.
Стандарт PHGP, набайтоёблено где не ждали. Казалось бы, в чем сложность отвести один октет на базу, а другой на сдвиг? Но сишнику проще даже не объяснить происходящее в стандарте, а просто кинуть код, типа, и так понятно же.
Есть «IEEE half-precision 16-bit float» с 10-битной мантиссой, есть «bfloat16» с семибитной мантиссой.
Помимо этого есть 18-битный «NVidia's TensorFloat» с 10-битной мантиссой, есть кодек «G.711» с 8-битным цыплёнком с четырёхбитной мантиссой, есть «Khronos» с 11-битным цыплёнком с 6-битной мантиссой и с 10-битным цыплёнком с 5-битной мантиссой...
Кстати, в системах с обратной связью высокая точность не требуется. Например, у зенитно-ракетных комплексов разрешающая способность канала связи между станцией наведения и ракетой очень низкая. Однако, там все ошибки корректируются «на следующей итерации»: если ракета полетела немного не туда, ей прилетает команда коррекции направления, чтобы уменьшить ошибку. Высокая разрешающая способность канала никаких преимуществ не даст: всё равно через какие-то промежутки времени траекторию нужно корректировать, потому что окружающая обстановка меняется непредсказуемо.
В мышином обучении просто не нужна особая точность, плюс обычно все параметры нормируются в [0; 1]. К тому же, урезание плавающих петухов в два раза позволяет делать (и умещать в оперативку видеокарты) ИНС с в два раза бо́льшим количеством нейронов/синапсов.
Это диапазон из ℝ. UPD: А, понял тебя. Плавающие питухи там для весов, их-то нормировать не получится. Причём скатывание весов в NaN/Inf — распространённая проблема.
Да я понимаю, что из R. Вопрос скорее о том, почему флоаты с их нелинейной плотностью а не фикседы с равномерной. Для нейронок так важны сигналы слабее 0.000015?
Из-за нативной поддержки, наверное. Эмуляция фиксированных питухов будет слишком медленной, а нативно она разве что в каких-нибудь специализированных ASCII-ах есть.
Ну и бульмень стабильная относительная погрешность тоже наверняка играет роль, веса могут вылезать далеко-высоко.
bormand # 0
nemyx # 0 ⇈
https://ru.wikipedia.org/wiki/Число_половинной_точности
https://en.wikipedia.org/wiki/Half-precision_floating-point_format
Я не знаю, что им можно считать. Там же погрешность набегает шопипец.
Это говно даже в «IEEE 754» внесли. Хорошо, что в 8087 его реализовывать не стали.
bormand # 0 ⇈
nemyx # 0 ⇈
https://en.wikipedia.org/wiki/Bfloat16_floating-point_format
Есть «IEEE half-precision 16-bit float» с 10-битной мантиссой, есть «bfloat16» с семибитной мантиссой.
Помимо этого есть 18-битный «NVidia's TensorFloat» с 10-битной мантиссой, есть кодек «G.711» с 8-битным цыплёнком с четырёхбитной мантиссой, есть «Khronos» с 11-битным цыплёнком с 6-битной мантиссой и с 10-битным цыплёнком с 5-битной мантиссой...
Вот тут ещё немного питушни:
http://www.mrob.com/pub/math/floatformats.html
gost # 0 ⇈
nemyx # 0 ⇈
В мышином обучении что-то подобное?
bormand # 0 ⇈
gost # 0 ⇈
bormand # 0 ⇈
А зачем тогда флоаты?
gost # 0 ⇈
UPD: А, понял тебя. Плавающие питухи там для весов, их-то нормировать не получится. Причём скатывание весов в NaN/Inf — распространённая проблема.
bormand # 0 ⇈
UPD: Понятно.
gost # 0 ⇈
Ну и бульмень стабильная относительная погрешность тоже наверняка играет роль, веса могут вылезать далеко-высоко.
bormand # 0 ⇈
Fike # 0 ⇈
fixed that for you
3.14159265 # 0 ⇈
Кроме FP16, там есть INT8 и даже INT4.
> Each T4 comes with 16GB of GPU memory, offers the widest precision support (FP32, FP16, INT8 and INT4), includes NVIDIA Tensor Core and RT
> когда флоаты работают быстрее царских интов...
А вот и хуй.
260 TOPs INT4 performance, 130 TOPs INT8, 65 TFLOPS FP16, 8.1 TFLOPS FP32
https://cloud.google.com/blog/products/ai-machine-learning/nvidia-tesla-t4-gpus-now-available-in-beta
bormand # 0 ⇈
> 130 для 8 бит
> 65 для 16 бит
Хм, т.е. они все с одинаковой скоростью работают. Просто мелких чисел больше обрабатывается за раз.
guest # 0 ⇈