Spec-Zone.ru › PyTorch 1

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.

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

Примечание

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

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

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

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

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

Параметры:

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

Ключевые аргументы:
  • dtype (torch.dtype) – желаемый тип данных возвращаемого тензора.
  • count (целое число, необязательно) – количество желаемых элементов для чтения. Если отрицательное, будут прочитаны все элементы (до конца буфера). По умолчанию: -1.
  • offset (целое число, необязательно) – количество байтов, которые нужно пропустить в начале буфера. По умолчанию: 0.
  • requires_grad (логическое значение, необязательно) – Если 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)

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

Spec-Zone.ru

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