РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
147 of 769 menu

Тип uint8

Тип данных torch.uint8 (unsigned 8-bit integer) представляет беззнаковые целые числа в диапазоне от 0 до 255 включительно. Этот тип часто используется для хранения изображений в градациях серого, масок, а также для работы с бинарными данными. В PyTorch этот тип обозначается как torch.uint8 или сокращённо torch.uint8. При создании тензора с этим типом важно помнить, что значения за пределами допустимого диапазона будут обрезаны или обёрнуты в зависимости от операции.

Синтаксис

torch.tensor(data, dtype=torch.uint8)

Пример

Создадим тензор с типом uint8 из списка чисел:

import torch t = torch.tensor([10, 20, 30, 40, 50], dtype=torch.uint8) print(t)

Результат выполнения кода:

tensor([10, 20, 30, 40, 50], dtype=torch.uint8)

Пример

Попробуем создать тензор с числом вне допустимого диапазона. Обратите внимание, что значения больше 255 обрезаются:

import torch t = torch.tensor([100, 256, 300], dtype=torch.uint8) print(t)

Результат выполнения кода:

tensor([100, 255, 255], dtype=torch.uint8)

Как видим, все значения больше 255 были обрезаны до 255.

Пример

Преобразуем тензор другого типа в uint8 с помощью метода to:

import torch t = torch.tensor([1.5, 2.7, 3.9], dtype=torch.float32) t_uint8 = t.to(torch.uint8) print(t_uint8)

Результат выполнения кода:

tensor([1, 2, 3], dtype=torch.uint8)

При преобразовании из вещественного типа дробная часть отбрасывается.

Пример

Используем тип uint8 для создания тензора из изображения. Часто изображения в градациях серого хранятся как значения от 0 до 255:

import torch # Эмуляция данных изображения 3x3 pixel_data = [ [0, 128, 255], [64, 192, 32], [16, 240, 80], ] image = torch.tensor(pixel_data, dtype=torch.uint8) print(image)

Результат выполнения кода:

tensor([ [ 0, 128, 255], [ 64, 192, 32], [ 16, 240, 80] ], dtype=torch.uint8)

Пример

Арифметические операции с uint8 могут приводить к переполнению. Рассмотрим сложение двух тензоров:

import torch t1 = torch.tensor([200, 50], dtype=torch.uint8) t2 = torch.tensor([100, 100], dtype=torch.uint8) res = t1 + t2 print(res)

Результат выполнения кода:

tensor([44, 150], dtype=torch.uint8)

Первое значение 44 появилось из-за переполнения (200 + 100 = 300, 300 - 256 = 44). Второе значение 150 вычислено корректно (50 + 100 = 150).

Смотрите также

  • тип int8,
    который представляет 8-битные целые числа со знаком
  • тип int16,
    который представляет 16-битные целые числа со знаком
  • тип int32,
    который представляет 32-битные целые числа со знаком
  • тип bool,
    который представляет булевы значения (True/False)
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить