Тип uint8
Тип uint8 в TensorFlow - это 8-битный беззнаковый целочисленный тип данных.
Он позволяет хранить значения от 0 до 255 и занимает всего один байт памяти.
Этот тип часто применяется для представления пикселей изображений, где каждый канал
(красный, зеленый, синий) кодируется значением от 0 до 255.
В TensorFlow тип доступен через tf.uint8 и может быть передан в функции
создания тензоров вторым параметром - dtype.
Синтаксис
tf.uint8
Пример
Давайте создадим тензор с типом uint8 из списка чисел:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5], dtype=tf.uint8)
print(t)
Результат выполнения кода:
tf.Tensor([1 2 3 4 5], shape=(5,), dtype=uint8)
Пример
Давайте проверим диапазон типа uint8 и посмотрим,
как происходит переполнение при превышении максимального значения:
import tensorflow as tf
t = tf.constant([0, 255, 256, 300], dtype=tf.uint8)
print(t)
Результат выполнения кода:
tf.Tensor([ 0 255 0 44], shape=(4,), dtype=uint8)
Пример
Давайте создадим двумерный тензор с типом uint8
и проверим его атрибуты:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.uint8)
print(t)
print(t.dtype)
print(t.shape)
Результат выполнения кода:
tf.Tensor(
[[1 2 3]
[4 5 6]], shape=(2, 3), dtype=uint8)
<dtype: 'uint8'>
(2, 3)
Пример
Давайте преобразуем тензор с типом uint8 в тип int32
с помощью метода cast:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5], dtype=tf.uint8)
res = tf.cast(t, dtype=tf.int32)
print(t.dtype)
print(res.dtype)
Результат выполнения кода:
<dtype: 'uint8'>
<dtype: 'int32'>