torch.Tensor
A torch.Tensor is a multi-dimensional matrix containing elements of a single data type.
Типы данных
Torch определяет 10 типов тензоров с вариантами для CPU и GPU, которые представлены следующим образом:
Тип данных | dtype | Тензор CPU | Тензор GPU |
|---|---|---|---|
32-битное число с плавающей точкой |
|
|
|
64-битное число с плавающей точкой |
|
|
|
16-битное число с плавающей точкой [1] |
|
|
|
16-битное число с плавающей точкой [2] |
|
|
|
32-битное комплексное число |
| ||
64-битное комплексное число |
| ||
128-битное комплексное число |
| ||
8-битное целое число (без знака) |
|
|
|
8-битное целое число (со знаком) |
|
|
|
16-битное целое число (со знаком) |
|
|
|
32-битное целое число (со знаком) |
|
|
|
64-битное целое число (со знаком) |
|
|
|
Булево |
|
|
|
Квантованное 8-битное целое число (без знака) |
|
| / |
Квантованное 8-битное целое число (со знаком) |
|
| / |
Квантованное 32-битное целое число (со знаком) |
|
| / |
Квантованное 4-битное целое число (без знака) [3] |
|
| / |
torch.Tensor — псевдоним для типа тензора по умолчанию (torch.FloatTensor).
Инициализация и основные операции
Тензор можно создать из Python-списка или последовательности, используя конструктор torch.tensor():
>>> torch.tensor([[1., -1.], [1., -1.]])
tensor([[ 1.0000, -1.0000],
[ 1.0000, -1.0000]])
>>> torch.tensor(np.array([[1, 2, 3], [4, 5, 6]]))
tensor([[ 1, 2, 3],
[ 4, 5, 6]])
Предупреждение
torch.tensor() всегда копирует data. Если у вас есть тензор data и вы хотите изменить только флаг requires_grad, используйте requires_grad_() или detach(), чтобы избежать копирования. Если у вас есть массив NumPy и вы хотите избежать копирования, используйте torch.as_tensor().
Тензор определенного типа можно создать, передав torch.dtype и/или torch.device в конструктор или операцию создания тензора:
>>> torch.zeros([2, 4], dtype=torch.int32)
tensor([[ 0, 0, 0, 0],
[ 0, 0, 0, 0]], dtype=torch.int32)
>>> cuda0 = torch.device('cuda:0')
>>> torch.ones([2, 4], dtype=torch.float64, device=cuda0)
tensor([[ 1.0000, 1.0000, 1.0000, 1.0000],
[ 1.0000, 1.0000, 1.0000, 1.0000]], dtype=torch.float64, device='cuda:0')
Дополнительную информацию о создании тензоров см. в разделе Операции создания
Содержание тензора можно получить и изменить с помощью индексации и срезов Python:
>>> x = torch.tensor([[1, 2, 3], [4, 5, 6]])
>>> print(x[1][2])
tensor(6)
>>> x[0][1] = 8
>>> print(x)
tensor([[ 1, 8, 3],
[ 4, 5, 6]])
Используйте torch.Tensor.item(), чтобы получить число Python из тензора, содержащего одно значение:
>>> x = torch.tensor([[1]]) >>> x tensor([[ 1]]) >>> x.item() 1 >>> x = torch.tensor(2.5) >>> x tensor(2.5000) >>> x.item() 2.5
Дополнительную информацию об индексации см. в разделе Операции индексации, срезов, объединения, изменения
Тензор можно создать с requires_grad=True, чтобы torch.autograd записывал операции над ним для автоматического дифференцирования.
>>> x = torch.tensor([[1., -1.], [1., 1.]], requires_grad=True)
>>> out = x.pow(2).sum()
>>> out.backward()
>>> x.grad
tensor([[ 2.0000, -2.0000],
[ 2.0000, 2.0000]])
Каждый тензор имеет связанный torch.Storage, который хранит его данные. Класс тензора также предоставляет многомерный, сдвинутый вид хранилища и определяет числовые операции над ним.
Примечание
Дополнительную информацию о представлениях тензоров см. в разделе Представления тензоров.
Примечание
Дополнительную информацию об атрибутах torch.dtype, torch.device и torch.layout тензора torch.Tensor см. в разделе Атрибуты тензора.
Примечание
Методы, которые изменяют тензор на месте, помечены суффиксом подчеркивания. Например, torch.FloatTensor.abs_() вычисляет абсолютное значение на месте и возвращает измененный тензор, а torch.FloatTensor.abs() вычисляет результат в новом тензоре.
Примечание
Чтобы изменить устройство (torch.device) и/или тип данных (torch.dtype) существующего тензора, используйте метод to() тензора.
Предупреждение
Текущая реализация torch.Tensor вводит избыточное использование памяти, поэтому она может привести к неожиданно высокому использованию памяти в приложениях с множеством мелких тензоров. Если это ваш случай, рассмотрите возможность использования одной большой структуры.
Ссылка на класс тензора
-
class torch.Tensor -
Существует несколько основных способов создания тензора, в зависимости от вашего случая использования.
- Чтобы создать тензор с предварительно существующими данными, используйте
torch.tensor(). - Чтобы создать тензор с заданным размером, используйте
torch.*операции создания тензоров (см. Операции создания). - Чтобы создать тензор с таким же размером (и аналогичными типами) как другой тензор, используйте
torch.*_likeоперации создания тензоров (см. Операции создания). - Чтобы создать тензор с похожим типом, но другим размером, чем другой тензор, используйте
tensor.new_*операции создания.
- Чтобы создать тензор с предварительно существующими данными, используйте
-
Tensor.T -
Возвращает представление этого тензора с обратным порядком измерений.
Если
nявляется числом измерений вx,x.Tэквивалентноx.permute(n-1, n-2, ..., 0).Предупреждение
Использование
Tensor.T()для тензоров размерности, отличной от 2, для изменения их формы устарело и в будущей версии вызовет ошибку. Рассмотрите использованиеmTдля транспонирования партий матриц илиx.permute(*torch.arange(x.ndim - 1, -1, -1))для изменения порядка измерений тензора.
-
Tensor.H -
Возвращает представление матрицы (двумерного тензора) с сопряжением и транспонированием.
x.Hэквивалентноx.transpose(0, 1).conj()для комплексных матриц иx.transpose(0, 1)для вещественных матриц.См. также
mH: Атрибут, также работающий с партиями матриц.
-
Tensor.mT -
Возвращает представление этого тензора с транспонированными двумя последними измерениями.
x.mTэквивалентноx.transpose(-2, -1).
-
Tensor.mH -
Обращение к этому свойству эквивалентно вызову
adjoint().
Возвращает новый тензор с | |
Возвращает тензор размера | |
Возвращает тензор размера | |
Возвращает тензор размера | |
Возвращает тензор размера | |
Истина, если тензор хранится на GPU, | |
Истина, если тензор квантован, | |
Истина, если тензор является мета-тензором, | |
Это | |
Этот атрибут по умолчанию | |
Псевдоним для | |
Возвращает новый тензор, содержащий действительные значения тензора | |
Возвращает новый тензор, содержащий мнимые значения тензора | |
См. | |
Внутрипроцессная версия | |
Псевдоним для | |
Внутрипроцессная версия | |
См. | |
Внутрипроцессная версия | |
См. | |
Внутрипроцессная версия | |
Добавить скаляр или тензор к тензору | |
Внутрипроцессная версия | |
См. | |
Внутрипроцессная версия | |
См. | |
Внутрипроцессная версия | |
См. | |
Внутрипроцессная версия | |
См. | |
Внутрипроцессная версия | |
См. | |
См. | |
Внутрипроцессная версия | |
См. | |
Внутрипроцессная версия |
Псевдоним для | |
См. | |
См. | |
См. | |
См. | |
См. | |
Применяет функцию | |
См. | |
См. | |
См. | |
См. | |
См. | |
Метод для выполнения операции | |
См. | |
Метод для выполнения операции | |
См. | |
Метод для выполнения операции | |
См. | |
Метод для выполнения операции | |
См. | |
Метод для выполнения операции | |
См. | |
atan2_(other) -> Tensor | |
См. | |
См. | |
Вычисляет градиент текущего тензора по отношению к | |
См. | |
Метод для выполнения операции | |
Возвращает тензор результата, где каждый независимо сэмплируется из . | |
Заполняет каждое место в | |
| |
См. |
Функция замены на месте для | |
Функция замены на месте для | |
Функция замены на месте для | |
Функция замены на месте для | |
Функция замены на месте для | |
Функция замены на месте для | |
См. | |
Эквивалентно | |
Эквивалентно | |
См. | |
Заполняет тензор числами, сгенерированными из распределения Коши: | |
См. | |
Функция замены на месте для | |
Эквивалентно | |
См. | |
См. | |
См. | |
Функция замены на месте для | |
Псевдоним для | |
Псевдоним для | |
См. | |
Возвращает непрерывный в памяти тензор, содержащий те же данные, что и тензор | |
Копирует элементы из | |
См. | |
Функция замены на месте для |
См. | |
Реализация метода | |
См. | |
Реализация метода | |
См. | |
Реализация метода | |
См. | |
См. | |
См. | |
Реализация метода | |
acosh() -> Тензор | |
acosh_() -> Тензор | |
Возвращает копию объекта в оперативной памяти процессора. | |
См. | |
Возвращает копию объекта в памяти CUDA. | |
См. | |
См. | |
См. | |
Реализация метода | |
См. | |
Реализация метода | |
| |
| |
| |
Возвращает адрес первого элемента тензора | |
См. | |
Для квантованного тензора, деквантизует его и возвращает деквантизованный плавающий тензор. | |
См. | |
Возвращает количество плотных измерений в разреженном тензоре | |
Возвращает новый тензор, откреплённый от текущей графы. | |
Открепляет тензор от графы, которая его создала, делая его листом. | |
См. | |
См. |
См. | |
Заполняет главную диагональ тензора, имеющего по крайней мере 2 измерения. | |
См. | |
См. | |
См. | |
См. | |
Реализация метода | |
Возвращает количество измерений тензора | |
См. | |
См. | |
Реализация метода | |
См. | |
Реализация метода | |
См. | |
Эквивалентно | |
См. | |
Возвращает размер одного элемента в байтах. | |
См. | |
Реализация метода | |
См. | |
См. | |
Реализация метода | |
См. | |
Реализация метода | |
См. | |
Реализация метода | |
См. | |
Реализация метода | |
См. | |
Реализация метода | |
Возвращает новую версию тензора | |
Расширяет этот тензор до размера, совпадающего с размером | |
Заполняет тензор | |
См. | |
Реализация метода | |
Заполняет тензор |
См. | |
См. | |
См. | |
См. | |
Эквивалентно | |
Метод по месту для | |
См. | |
Метод по месту для | |
Метод по месту для | |
См. | |
Метод по месту для | |
См. | |
Метод по месту для | |
См. | |
См. | |
См. | |
Метод по месту для | |
См. | |
Метод по месту для | |
Метод по месту для | |
Заполняет | |
См. | |
См. | |
Для тензоров CUDA эта функция возвращает порядковый номер устройства GPU, на котором находится тензор. | |
См. | |
Метод по месту для | |
См. | |
Метод по месту для | |
Эквивалентно | |
См. | |
См. | |
См. | |
Реализация в режиме «на месте» для | |
См. | |
Реализация в режиме «на месте» для | |
См. | |
Реализация в режиме «на месте» для | |
См. | |
Реализация в режиме «на месте» для | |
Накопление элементов | |
Вариант вне «на места» для | |
Копирует элементы из | |
Вариант вне «на места» для | |
Заполняет элементы тензора | |
Вариант вне «на места» для | |
Размещает значения из тензора | |
Вариант вне «на места» для | |
Накопление элементов | |
Возвращает индексный тензор разреженного тензора COO. | |
См. | |
| |
Для квантованного тензора | |
См. | |
См. | |
См. | |
См. | |
См. | |
См. | |
См. | |
Возвращает True, если тензор | |
Возвращает True, если тип данных | |
Возвращает True, если бит сопряжения для |
Возвращает True, если тип данных | |
См. | |
Все тензоры, у которых | |
Возвращает true, если этот тензор находится в закреплённой памяти. | |
Возвращает True, если оба тензора указывают на одну и ту же память (тот же хранилище, смещение, размер и шаг). | |
Проверяет, находится ли тензор в общей памяти. | |
Возвращает True, если тип данных | |
Является | |
См. | |
См. | |
Возвращает значение этого тензора как стандартное число Python. | |
См. | |
См. | |
Метод замены для | |
См. | |
Метод замены для | |
См. | |
Метод замены для | |
См. | |
Метод замены для | |
См. | |
Метод замены для | |
См. | |
Метод замены для | |
См. | |
Метод замены для | |
См. | |
См. | |
Метод замены для | |
См. | |
Метод замены для | |
См. | |
Метод замены для | |
Заполняет | |
Метод замены местами, соответствующий | |
Метод замены местами, соответствующий | |
Метод замены местами, соответствующий | |
Метод замены местами, соответствующий | |
См. | |
Метод замены местами, соответствующий | |
Эквивалентно | |
См. | |
Метод замены местами, соответствующий | |
lt(other) -> Tensor | |
Метод замены местами, соответствующий | |
См. | |
См. | |
Создаёт экземпляр | |
Применяет | |
Копирует элементы из тензора | |
Версия без замены местами метода | |
Заполняет элементы тензора | |
Версия без замены местами метода | |
См. | |
|
Примечание
| |
См. | |
См. | |
См. | |
См. |
См. | |
См. | |
См. | |
См. | |
См. | |
См. | |
См. | |
См. | |
См. | |
См. | |
Метод-модификатор для | |
См. | |
Метод-модификатор для | |
См. | |
См. | |
Метод-модификатор для | |
См. | |
См. | |
См. | |
Псевдоним для | |
См. | |
Метод-модификатор для | |
См. | |
Метод-модификатор для | |
См. | |
Метод-модификатор для | |
См. | |
Метод-модификатор для | |
См. | |
Метод-модификатор для | |
Псевдоним для | |
Метод-модификатор для |
См. | |
См. | |
Заполняет тензор | |
См. | |
Возвращает тензор в виде массива NumPy | |
См. | |
См. | |
См. | |
См. | |
Копирует тензор в закреплённую память, если он не закреплён. | |
См. | |
Функция с заменой в месте для | |
См. | |
См. | |
Функция с заменой в месте для | |
См. | |
Копирует элементы из | |
См. | |
Возвращает схему квантования данного QТензора. | |
См. | |
Для тензора, квантованного линейным (аффинным) квантованием, возвращает масштаб базового квантозатора. | |
Для тензора, квантованного линейным (аффинным) квантованием, возвращает значение zero_point базового квантозатора. | |
Для тензора, квантованного линейным (аффинным) канальным квантованием, возвращает тензор масштабов базового квантозатора. | |
Для тензора, квантованного линейным (аффинным) канальным квантованием, возвращает тензор значений zero_point базового квантозатора. | |
Для тензора, квантованного линейным (аффинным) канальным квантованием, возвращает индекс измерения, по которому применяется канальное квантование. | |
См. | |
Заполняет тензор | |
см. | |
Функция с заменой в месте для | |
Гарантирует, что память тензора не будет повторно использована для другого тензора, пока не завершится вся текущая работа, помещённая в | |
Регистрирует обратную функцию. | |
Функция с заменой в месте для |
См. | |
Встроенная версия | |
Повторяет этот тензор вдоль указанных измерений. | |
Равен | |
Изменяет, если автограду следует записывать операции над этим тензором: устанавливает атрибут | |
Возвращает тензор с теми же данными и количеством элементов, что и | |
Возвращает этот тензор в той же форме, что и | |
Изменяет размер тензора | |
Изменяет размер тензора | |
Включает возможность заполнения | |
Равен | |
См. | |
См. | |
См. | |
Встроенная версия | |
См. | |
Встроенная версия | |
Внешняя версия | |
Записывает все значения из тензора | |
Добавляет все значения из тензора | |
Внешняя версия | |
Применяет уменьшение к всем значениям из тензора | |
Внешняя версия | |
См. | |
Устанавливает базовое хранилище, размер и шаги. | |
Перемещает базовое хранилище в общую память. | |
| |
См. | |
Встроенная версия | |
См. | |
Встроенная версия | |
См. |
См. | |
Операция | |
См. | |
Операция | |
См. | |
Операция | |
См. | |
Операция | |
См. | |
Операция | |
См. | |
Операция | |
Возвращает размер | |
См. | |
См. | |
См. | |
Возвращает новый разреженный тензор со значениями из строченного тензора | |
Возвращает количество разреженных измерений в разреженном тензоре | |
См. | |
Операция | |
См. | |
Операция | |
См. | |
Операция | |
См. | |
См. | |
Возвращает базовое хранилище. | |
Возвращает смещение тензора в базовом хранилище в терминах элементов хранилища (а не байтов). | |
Возвращает тип базового хранилища. | |
Возвращает шаг | |
См. | |
Операция | |
См. | |
Операция | |
См. |
Суммирование тензора к заданному размеру. | |
См. | |
См. | |
См. | |
См. | |
См. | |
Метод для изменения тензора на месте (in-place) аналогично | |
См. | |
Преобразование типа и/или устройства тензора. | |
Возвращает копию тензора в формате | |
См. | |
См. | |
Метод для изменения тензора на месте (in-place) аналогично | |
См. | |
Метод для изменения тензора на месте (in-place) аналогично | |
См. | |
Метод для изменения тензора на месте (in-place) аналогично | |
См. | |
Метод для изменения тензора на месте (in-place) аналогично | |
Возвращает тензор в виде (вложенного) списка. | |
См. | |
Создаёт копию тензора в плотной форме (strided), если | |
Возвращает копию тензора в разреженной форме. | |
Преобразует тензор в формат сжатого хранения строк (CSR). | |
Преобразует тензор в формат сжатого хранения столбцов (CSC). | |
Преобразует тензор CSR в формат сжатого хранения блочных строк (BSR) заданного размера блока. | |
Преобразует тензор CSR в формат сжатого хранения блочных столбцов (BSC) заданного размера блока. | |
См. | |
Метод для изменения тензора на месте (in-place) аналогично | |
См. | |
Метод для изменения тензора на месте (in-place) аналогично | |
См. | |
Метод для изменения тензора на месте (in-place) аналогично |
Встроенная версия | |
См. | |
Встроенная версия | |
Возвращает тип, если | |
Возвращает этот тензор, преобразованный к типу заданного тензора. | |
См. | |
См. | |
Возвращает представление исходного тензора, содержащего все срезы размером | |
Заполняет тензор | |
Возвращает уникальные элементы входного тензора. | |
Удаляет все, кроме первого элемента, из каждой последовательной группы эквивалентных элементов. | |
Встроенная версия | |
Возвращает тензор значений разреженного тензора COO. | |
См. | |
См. | |
Возвращает новый тензор с теми же данными, что и тензор | |
Представляет этот тензор таким же размером, как | |
См. | |
| |
См. | |
Встроенная версия | |
Заполняет тензор |
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/tensors.html