Spec-Zone.ru › PyTorch 2.14

torch.frombuffer

torch.frombuffer(buffer, *, dtype, count=-1, offset=0, requires_grad=False) → Tensor

Создает одномерный Tensor из объекта, реализующего буферный протокол Python.

Пропускает первые offset байт буфера и интерпретирует оставшиеся необработанные байты как одномерный тензор типа dtype с count элементами.

Обратите внимание, что должно выполняться одно из следующих условий:

1. count — положительное ненулевое число, а общее количество байт в буфере больше, чем offset плюс count, умноженное на размер (в байтах) dtype.

2. count — отрицательное число, а длина буфера (в байтах) за вычетом offset кратна размеру (в байтах) dtype.

Возвращаемый тензор и буфер используют одну и ту же память. Изменения тензора отражаются в буфере, и наоборот. Размер возвращаемого тензора нельзя изменить.

Примечание

Эта функция увеличивает счетчик ссылок на объект, которому принадлежит общая память. Поэтому такая память не будет освобождена, пока возвращаемый тензор не выйдет из области видимости.

Предупреждение

Поведение этой функции не определено, если ей передан объект, реализующий буферный протокол, данные которого находятся не в памяти CPU. Это может привести к ошибке сегментации.

Предупреждение

Эта функция не пытается определить dtype (поэтому этот аргумент не является необязательным). Передача значения dtype, отличного от типа исходных данных, может привести к неожиданному поведению.

Параметры:

buffer (object) – объект Python, предоставляющий интерфейс буфера.

Именованные аргументы:
  • dtype (torch.dtype) – желаемый тип данных возвращаемого тензора.
  • count (int, optional) – количество считываемых элементов. Если значение отрицательное, будут считаны все элементы (до конца буфера). По умолчанию: -1.
  • offset (int, optional) – количество байт, пропускаемых в начале буфера. По умолчанию: 0.
  • requires_grad (bool, optional) – следует ли autograd записывать операции над возвращаемым тензором. По умолчанию: False.

Пример:

>>> import array
>>> a = array.array('i', [1, 2, 3])
>>> t = torch.frombuffer(a, dtype=torch.int32)
>>> t
tensor([ 1,  2,  3])
>>> t[0] = -1
>>> a
array([-1,  2,  3])

>>> # Interprets the signed char bytes as 32-bit integers.
>>> # Each 4 signed char elements will be interpreted as
>>> # 1 signed 32-bit integer.
>>> import array
>>> a = array.array('b', [-1, 0, 0, 0])
>>> torch.frombuffer(a, dtype=torch.int32)
tensor([255], dtype=torch.int32)

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.frombuffer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API