Тип bfloat16
Тип bfloat16 представляет собой 16-битный формат чисел с плавающей точкой, разработанный компанией Google. Он имеет 8 бит для экспоненты (как у float32) и 7 бит для мантиссы (в отличие от 23 бит у float32). Это позволяет сохранить динамический диапазон, близкий к float32, но с меньшей точностью. Тип bfloat16 доступен как tf.bfloat16 и может использоваться при создании тензоров, в слоях Keras и в операциях, требующих экономии памяти или ускорения на специализированном оборудовании (например, TPU).
Синтаксис
tf.bfloat16
Пример
Давайте создадим тензор с типом bfloat16 из списка чисел:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5], dtype=tf.bfloat16)
print(t)
Результат выполнения кода:
tf.Tensor([1. 2. 3. 4. 5.], shape=(5,), dtype=bfloat16)
Пример
Давайте преобразуем тензор из float32 в bfloat16 и обратно:
import tensorflow as tf
t = tf.constant([1.5, 2.5, 3.5], dtype=tf.float32)
t_bf16 = tf.cast(t, dtype=tf.bfloat16)
print(t_bf16)
t_back = tf.cast(t_bf16, dtype=tf.float32)
print(t_back)
Результат выполнения кода:
tf.Tensor([1.5 2.5 3.5], shape=(3,), dtype=bfloat16)
tf.Tensor([1.5 2.5 3.5], shape=(3,), dtype=float32)
Пример
Давайте проверим размер в байтах для тензора с типом bfloat16:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5], dtype=tf.bfloat16)
print(tf.size(t).numpy() * t.dtype.size)
Результат выполнения кода:
10
Смотрите также
-
тип
float32,
который является 32-битным форматом с плавающей точкой -
тип
float16,
который является 16-битным форматом с плавающей точкой с меньшим динамическим диапазоном -
тип
float64,
который является 64-битным форматом с плавающей точкой двойной точности -
тип
int32,
который является 32-битным целочисленным типом