Справочное руководство PyTorch torch
Пакет PyTorch содержит структуры данных для многомерных тензоров и определяет математические операции, выполняемые над этими тензорами. Кроме того, он предоставляет множество служебных инструментов для эффективной сериализации тензоров и произвольных типов данных, а также другие полезные утилиты.
Он также имеет версию для CUDA, которая позволяет выполнять тензорные вычисления на графических процессорах NVIDIA с вычислительной способностью >= 3.0.
Руководство по API torch PyTorch
Проверки типов тензоров
| Функция | Описание |
|---|---|
torch.is_tensor(obj) |
Проверитьobjявляется ли он тензором PyTorch. |
torch.is_storage(obj) |
Проверитьobjявляется ли он объектом хранилища PyTorch. |
torch.is_complex(input) |
Проверитьinputявляется ли тип данных комплексным типом. |
torch.is_conj(input) |
Проверитьinputявляется ли он сопряжённым тензором. |
torch.is_floating_point(input) |
Проверитьinputявляется ли тип данных типом с плавающей запятой. |
torch.is_nonzero(input) |
Проверитьinputявляется ли он ненулевым одноэлементным тензором. |
torch.set_default_dtype(d) |
Установить тип данных с плавающей запятой по умолчанию вd。 |
torch.get_default_dtype() |
Получить текущий тип данных с плавающей запятой по умолчаниюtorch.dtype。 |
torch.set_default_device(device) |
Установить по умолчаниюtorch.Tensorвыделенное устройство наdevice。 |
torch.get_default_device() |
Получить по умолчаниюtorch.Tensorвыделенное устройство. |
torch.set_default_tensor_type(tensor_type) |
Установить тип тензора по умолчанию вtensor_type。 |
torch.numel(input) |
Returninputобщее число элементов в тензоре. |
torch.set_printoptions(...) |
Установить параметры печати тензоров. |
Создание тензоров
| Функция | Описание |
|---|---|
torch.tensor(data, dtype, device, requires_grad) |
Создать тензор из данных, копируя данные, без истории autograd. |
torch.as_tensor(data, dtype, device) |
Преобразовать данные в тензор, совместно используя данные и сохраняя историю autograd. |
torch.asarray(data, dtype, device) |
Преобразовать данные в тензорный массив. |
torch.from_numpy(ndarray) |
Создать тензор из массива NumPy (общая память). |
torch.from_dlpack(ext_tensor) |
Создать тензор PyTorch из тензора dlpack. |
torch.frombuffer(buffer, dtype, count, offset) |
Создать 1-D тензор из буфера. |
torch.zeros(*size, dtype, device, requires_grad) |
Создать тензор, заполненный нулями. |
torch.zeros_like(input, dtype, device, requires_grad) |
Создать тензор из всех нулей с той же формой, что и вход. |
torch.ones(*size, dtype, device, requires_grad) |
Создать тензор, заполненный единицами. |
torch.ones_like(input, dtype, device, requires_grad) |
Создать тензор из всех единиц с той же формой, что и вход. |
torch.empty(*size, dtype, device, requires_grad) |
Создать неинициализированный тензор. |
torch.empty_like(input, dtype, device, requires_grad) |
Создать неинициализированный тензор с той же формой, что и вход. |
torch.empty_strided(size, stride, dtype, device) |
Создать неинициализированный тензор с указанными шагами. |
torch.arange(start, end, step, dtype, device, requires_grad) |
Создать тензор арифметической последовательности. |
torch.range(start, end, step, dtype, device, requires_grad) |
Создать тензор арифметической последовательности, включающий конечное значение. |
torch.linspace(start, end, steps, dtype, device, requires_grad) |
Создать тензор равномерно распределённой последовательности. |
torch.logspace(start, end, steps, base, dtype, device, requires_grad) |
Создать тензор логарифмически распределённой последовательности. |
torch.eye(n, m, dtype, device, requires_grad) |
Создать единичную матрицу. |
torch.full(size, fill_value, dtype, device, requires_grad) |
Создать тензор, заполненный указанным значением. |
torch.full_like(input, fill_value, dtype, device, requires_grad) |
Создать тензор, заполненный значением и имеющий ту же форму, что и входной. |
torch.rand(*size, dtype, device, requires_grad) |
Создать равномерно распределённый случайный тензор (диапазон [0, 1)). |
torch.rand_like(input, dtype, device, requires_grad) |
Создать равномерно распределённый случайный тензор с той же формой, что и входной. |
torch.randn(*size, dtype, device, requires_grad) |
Создать случайный тензор со стандартным нормальным распределением. |
torch.randn_like(input, dtype, device, requires_grad) |
Создать случайный тензор со стандартным нормальным распределением с той же формой, что и входной. |
torch.randint(low, high, size, dtype, device, requires_grad) |
Создать случайный целочисленный тензор. |
torch.randint_like(input, low, high, dtype, device, requires_grad) |
Создать случайный целочисленный тензор с той же формой, что и входной. |
torch.randperm(n, dtype, device, requires_grad) |
Создать случайную перестановку чисел от 0 до n-1. |
torch.sparse_coo_tensor(indices, values, size, dtype, device, requires_grad) |
В указаннойindicesпозиции построить разреженный тензор COO. |
torch.sparse_csr_tensor(crow_indices, col_indices, values, size, dtype, device) |
Построить разреженный тензор CSR. |
torch.sparse_csc_tensor(ccol_indices, row_indices, values, size, dtype, device) |
Построить разреженный тензор CSC. |
torch.quantize_per_tensor(input, scale, zero_point, dtype) |
Создать квантованный тензор (по тензору). |
torch.quantize_per_channel(input, scales, zero_points, axis, dtype) |
Создать квантованный тензор (по каналам). |
torch.dequantize(input) |
Деквантовать тензор. |
torch.complex(real, imag) |
Создать комплексный тензор из действительной и мнимой частей. |
torch.polar(abs, angle) |
Создать комплексный тензор из полярных координат. |
torch.heaviside(input, values) |
Вычислить функцию Хевисайда. |
Операции индексации, срезов, объединения и изменения
| Функция | Описание |
|---|---|
torch.cat(tensors, dim, out) |
Конкатенировать тензоры вдоль указанной размерности. |
torch.concat(tensors, dim, out) |
Конкатенировать тензоры вдоль указанной размерности (то же, что cat). |
torch.concatenate(tensors, dim, out) |
Конкатенировать тензоры вдоль указанной размерности (то же, что cat). |
torch.stack(tensors, dim, out) |
Объединить тензоры в стек вдоль новой размерности. |
torch.split(tensor, split_size, dim) |
Разбить тензор вдоль указанной размерности. |
torch.chunk(tensor, chunks, dim) |
Разбить тензор на части вдоль указанной размерности. |
torch.reshape(input, shape) |
Изменить форму тензора. |
torch.transpose(input, dim0, dim1) |
Поменять местами два измерения тензора. |
torch.t(input) |
Транспонировать 2-D тензор. |
torch.squeeze(input, dim) |
Удалить измерение размера 1. |
torch.unsqueeze(input, dim) |
Вставить измерение размера 1 в указанную позицию. |
torch.permute(input, dims) |
Переставить измерения тензора. |
torch.movedim(input, source, destination) |
Переместить измерение тензора на новую позицию. |
torch.moveaxis(input, source, destination) |
Переместить ось тензора на новую позицию. |
torch.narrow(input, dim, start, length) |
Вернуть срез тензора. |
torch.narrow_copy(input, dim, start, length) |
Вернуть копию среза тензора. |
torch.select(input, dim, index) |
Выбрать срезы, соответствующие индексам вдоль указанного измерения. |
torch.slice_scatter(input, src, dim, start, end) |
Разбросать src по срезам input. |
torch.select_scatter(input, src, dim, index) |
Разбросать src в указанные индексные позиции. |
torch.diagonal_scatter(input, src, offset, dim1, dim2) |
Разбросать значения в диагональные позиции. |
torch.expand(input, size) |
Расширить размер тензора (копия представления). |
torch.expand_as(input, other) |
Расширить тензор до того же размера, что и other. |
torch.masked_select(input, mask) |
Выбрать элементы согласно логической маске. |
torch.index_select(input, dim, index) |
Выбрать элементы, соответствующие индексам вдоль указанного измерения. |
torch.gather(input, dim, index, sparse_grad) |
Собрать элементы по указанным индексам вдоль указанного измерения. |
torch.scatter(input, dim, index, src, reduce) |
будетsrcразбросать значения ... вinputуказанные позиции ... |
torch.scatter_add(input, dim, index, src) |
Добавить значения src в указанные позиции. |
torch.scatter_reduce(input, dim, index, src, reduce, include_self) |
Агрегировать значения src в указанные позиции указанным способом. |
torch.index_add(input, dim, index, source, alpha) |
Добавить source в позиции, заданные index. |
torch.index_copy(input, dim, index, source) |
Скопировать источник в позиции, указанные индексом. |
torch.index_reduce(input, dim, index, source, reduce, include_self) |
Агрегировать источник в позиции, указанные индексом, указанным способом. |
torch.take(input, index) |
Получить элемент в заданной позиции индекса. |
torch.take_along_dim(input, indices, dim) |
Получить элементы в позициях индекса вдоль указанного измерения. |
torch.nonzero(input) |
Вернуть индексы ненулевых элементов. |
torch.argwhere(input) |
Вернуть индексы элементов, удовлетворяющих условию. |
torch.where(condition, input, other) |
Вернуть элементы в соответствии с условием. |
torch.unbind(tensor, dim) |
Разделить на кортеж вдоль указанного измерения. |
torch.split_with_sizes(tensor, split_sizes, dim) |
Разделить тензор по размерам. |
torch.tensor_split(tensor, indices_or_sections, dim) |
Разделить тензор по индексам или по количеству сегментов. |
torch.hsplit(tensor, indices_or_sections) |
Разделить тензор по горизонтали. |
torch.vsplit(tensor, indices_or_sections) |
Разделить тензор по вертикали. |
torch.dsplit(tensor, indices_or_sections) |
Разделить тензор по глубине. |
torch.hstack(tensors, dim, out) |
Объединить тензоры по горизонтали. |
torch.vstack(tensors, out) |
Объединить тензоры по вертикали. |
torch.dstack(tensors, out) |
Объединить тензоры по глубине. |
torch.column_stack(tensors, out) |
Объединить тензоры по столбцам. |
torch.row_stack(tensors, out) |
Объединить тензоры по строкам (то же, что vstack). |
torch.tile(input, dims) |
Повторить тензор несколько раз. |
torch.repeat_interleave(input, repeats, dim) |
Повторить элементы вдоль указанного измерения. |
torch.flip(input, dims) |
Перевернуть тензор вдоль указанного измерения. |
torch.fliplr(input) |
Перевернуть тензор слева направо. |
torch.flipud(input) |
Перевернуть тензор сверху вниз. |
torch.rot90(input, k, dims) |
Повернуть тензор на 90 градусов. |
torch.linalg.matrix_transpose(input) |
Транспонирование матрицы. |
torch.adjoint(input) |
Возвращает сопряжённый тензор. |
torch.resolve_conj(input) |
Разрешает сопряжённый тензор. |
torch.resolve_neg(input) |
Разрешает отрицательный тензор. |
torch.view_as_real(input) |
Рассматривает комплексный тензор как вещественный тензор. |
torch.view_as_complex(input) |
Рассматривает вещественный тензор как комплексный тензор. |
torch.unravel_index(indices, shape) |
Преобразует плоские индексы в многомерные индексы. |
Генерация случайных чисел
| Функция | Описание |
|---|---|
torch.manual_seed(seed) |
Устанавливает начальное значение генератора случайных чисел (CPU). |
torch.seed() |
Устанавливает начальное значение генератора случайных чисел и возвращает новое начальное значение. |
torch.initial_seed() |
Возвращает текущее начальное значение генератора случайных чисел. |
torch.get_rng_state() |
Возвращает состояние генератора случайных чисел. |
torch.set_rng_state(state) |
Устанавливает состояние генератора случайных чисел. |
torch.rand(*size, dtype, device, requires_grad) |
Создать равномерно распределённый случайный тензор (диапазон [0, 1)). |
torch.rand_like(input, dtype, device, requires_grad) |
Создать равномерно распределённый случайный тензор с той же формой, что и входной. |
torch.randn(*size, dtype, device, requires_grad) |
Создать случайный тензор со стандартным нормальным распределением. |
torch.randn_like(input, dtype, device, requires_grad) |
Создать случайный тензор со стандартным нормальным распределением с той же формой, что и входной. |
torch.randint(low, high, size, dtype, device, requires_grad) |
Создать случайный целочисленный тензор. |
torch.randint_like(input, low, high, dtype, device, requires_grad) |
Создать случайный целочисленный тензор с той же формой, что и входной. |
torch.randperm(n, dtype, device, requires_grad) |
Создать случайную перестановку чисел от 0 до n-1. |
torch.bernoulli(input, *, generator) |
Генерирует случайные числа из распределения Бернулли. |
torch.multinomial(input, num_samples, replacement, generator) |
Мультиномиальная выборка. |
torch.normal(mean, std, out) |
Сгенерировать случайные числа из нормального распределения. |
torch.poisson(input, generator) |
Сгенерировать случайные числа из распределения Пуассона. |
Сериализация
| Функция | Описание |
|---|---|
torch.save(obj, f, pickle_module, pickle_protocol) |
Сохранить объект в файл. |
torch.load(f, map_location, pickle_module, weights_only) |
Загрузить объект из файла. |
Управление градиентами
| Функция | Описание |
|---|---|
torch.no_grad() |
Контекстный менеджер, отключающий вычисление градиентов. |
torch.enable_grad() |
Контекстный менеджер, включающий вычисление градиентов. |
torch.set_grad_enabled(grad) |
Установить, включено ли вычисление градиентов. |
torch.is_grad_enabled() |
Проверить, включено ли вычисление градиентов. |
torch.inference_mode() |
Контекстный менеджер для режима инференса (отключает градиенты и autograd). |
torch.is_inference_mode_enabled() |
Проверить, включен ли режим инференса. |
Математические операции - поэлементные операции
| Функция | Описание |
|---|---|
torch.abs(input, out) |
Поэлементное абсолютное значение. |
torch.absolute(input, out) |
Поэлементное абсолютное значение (то же, что abs). |
torch.acos(input, out) |
Поэлементный арккосинус. |
torch.arccos(input, out) |
Поэлементный арккосинус (то же, что acos). |
torch.acosh(input, out) |
Поэлементный обратный гиперболический косинус. |
torch.arccosh(input, out) |
Поэлементный обратный гиперболический косинус (то же, что acosh). |
torch.add(input, other, alpha, out) |
Поэлементное сложение (с необязательным масштабированием alpha). |
torch.addcdiv(input, tensor1, tensor2, value, out) |
Выполняет input + value * (tensor1 / tensor2). |
torch.addcmul(input, tensor1, tensor2, value, out) |
Выполняет input + value * (tensor1 * tensor2). |
torch.angle(input, out) |
Возвращает фазовый угол комплексного тензора. |
torch.asin(input, out) |
Поэлементный арксинус. |
torch.arcsin(input, out) |
Поэлементный арксинус (то же, что asin). |
torch.asinh(input, out) |
Поэлементный обратный гиперболический синус. |
torch.arcsinh(input, out) |
Поэлементный обратный гиперболический синус (то же, что asinh). |
torch.atan(input, out) |
Поэлементный арктангенс. |
torch.arctan(input, out) |
Поэлементный арктангенс (то же, что atan). |
torch.atan2(input, other, out) |
Поэлементный арктангенс с двумя аргументами. |
torch.arctan2(input, other, out) |
Поэлементный арктангенс с двумя аргументами (то же, что atan2). |
torch.atanh(input, out) |
Поэлементный обратный гиперболический тангенс. |
torch.arctanh(input, out) |
Поэлементный обратный гиперболический тангенс (то же, что atanh). |
torch.bitwise_not(input, out) |
Поэлементное побитовое НЕ. |
torch.bitwise_and(input, other, out) |
Поэлементное побитовое И. |
torch.bitwise_or(input, other, out) |
Поэлементное побитовое ИЛИ. |
torch.bitwise_xor(input, other, out) |
Поэлементный побитовый XOR. |
torch.bitwise_left_shift(input, other, out) |
Поэлементный сдвиг влево. |
torch.bitwise_right_shift(input, other, out) |
Поэлементный сдвиг вправо. |
torch.ceil(input, out) |
Поэлементное округление вверх. |
torch.clamp(input, min, max, out) |
Ограничивает значения тензора указанным диапазоном. |
torch.clip(input, min, max, out) |
Ограничивает значения тензора указанным диапазоном (то же, что clamp). |
torch.conj_physical(input, out) |
Поэлементное физическое сопряжение. |
torch.copysign(input, other, out) |
Поэлементное копирование знака. |
torch.cos(input, out) |
Поэлементный косинус. |
torch.cosh(input, out) |
Поэлементный гиперболический косинус. |
torch.deg2rad(input, out) |
Преобразует углы из градусов в радианы. |
torch.div(input, other, rounding_mode, out) |
Поэлементное деление. |
torch.divide(input, other, rounding_mode, out) |
Поэлементное деление (то же, что div). |
torch.digamma(input, out) |
Поэлементная дигамма-функция (логарифмическая производная). |
torch.erf(input, out) |
Поэлементная функция ошибок. |
torch.erfc(input, out) |
Поэлементная дополнительная функция ошибок. |
torch.erfinv(input, out) |
Поэлементная обратная функция ошибок. |
torch.exp(input, out) |
Поэлементная экспоненциальная функция. |
torch.exp2(input, out) |
Поэлементное возведение 2 в степень. |
torch.expm1(input, out) |
Поэлементное exp(x) - 1. |
torch.fake_quantize_per_channel_affine(input, scale, zero_point, axis, quant_min, quant_max) |
Имитирует поканальное квантование. |
torch.fake_quantize_per_tensor_affine(input, scale, zero_point, quant_min, quant_max) |
Имитирует по-тензорное квантование. |
torch.fix(input, out) |
Поэлементная целая часть (усечение в сторону нуля). |
torch.float_power(input, exponent, out) |
Поэлементное возведение в степень для чисел с плавающей запятой. |
torch.floor(input, out) |
Поэлементное округление вниз. |
torch.floor_divide(input, other, out) |
Поэлементное целочисленное деление. |
torch.fmod(input, other, out) |
Поэлементный остаток по модулю (остаток). |
torch.frac(input, out) |
Поэлементная дробная часть. |
torch.frexp(input, out) |
Разлагает числа с плавающей запятой на мантиссу и экспоненту. |
torch.gradient(input, dim, spacing, edge_order) |
Вычисляет градиент тензора. |
torch.imag(input, out) |
Возвращает мнимую часть комплексного тензора. |
torch.ldexp(input, other, out) |
Поэлементно вычисляет input * 2**other. |
torch.lerp(input, end, weight, out) |
Поэлементная линейная интерполяция. |
torch.lgamma(input, out) |
Поэлементный логарифм гамма-функции. |
torch.log(input, out) |
Поэлементный натуральный логарифм. |
torch.log10(input, out) |
Поэлементный логарифм по основанию 10. |
torch.log1p(input, out) |
Поэлементно вычисляет log(1 + x). |
torch.log2(input, out) |
Поэлементно вычисляет логарифм по основанию 2. |
torch.logaddexp(input, other, out) |
Поэлементно вычисляет log(exp(input) + exp(other)). |
torch.logaddexp2(input, other, out) |
Поэлементно вычисляет log2(2**input + 2**other). |
torch.logical_and(input, other, out) |
Поэлементное логическое И. |
torch.logical_not(input, out) |
Поэлементное логическое НЕ. |
torch.logical_or(input, other, out) |
Поэлементное логическое ИЛИ. |
torch.logical_xor(input, other, out) |
Поэлементное логическое исключающее ИЛИ. |
torch.logit(input, eps, out) |
Поэлементная функция logit. |
torch.hypot(input, other, out) |
Поэлементная функция hypot sqrt(input^2 + other^2). |
torch.i0(input, out) |
Поэлементная модифицированная функция Бесселя (первого рода, порядка 0). |
torch.igamma(input, other, out) |
Поэлементная неполная гамма-функция. |
torch.igammac(input, other, out) |
Поэлементная дополнительная неполная гамма-функция. |
torch.mul(input, other, out) |
Поэлементное умножение. |
torch.multiply(input, other, out) |
Поэлементное умножение (то же, что mul). |
torch.mvlgamma(input, p, out) |
Поэлементный логарифм многомерной гамма-функции. |
torch.nan_to_num(input, nan, posinf, neginf, out) |
Заменяет NaN указанным значением. |
torch.neg(input, out) |
Поэлементное отрицание. |
torch.negative(input, out) |
Поэлементное отрицание (то же, что neg). |
torch.nextafter(input, other, out) |
Поэлементно возвращает следующее представимое число с плавающей запятой. |
torch.polygamma(input, n, out) |
Поэлементная полигамма-функция. |
torch.positive(input, out) |
Поэлементное положительное значение. |
torch.pow(input, exponent, out) |
Поэлементное возведение в степень. |
torch.quantized_batch_norm(input, weight, bias, mean, var, eps, output_scale, output_zero_point) |
Квантованная пакетная нормализация. |
torch.quantized_max_pool1d(input, kernel_size, stride, padding, dilation, ceil_mode) |
Квантованный max pooling (1D). |
torch.quantized_max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode) |
Квантованный max pooling (2D). |
torch.rad2deg(input, out) |
Преобразует углы из радиан в градусы. |
torch.real(input, out) |
Возвращает вещественную часть комплексного тензора. |
torch.reciprocal(input, out) |
Поэлементная обратная величина. |
torch.remainder(input, other, out) |
Поэлементный остаток. |
torch.round(input, decimals, out) |
Поэлементное округление до ближайшего целого. |
torch.rsqrt(input, out) |
Поэлементный обратный квадратный корень. |
torch.sigmoid(input, out) |
Поэлементная сигмоидная функция. |
torch.sign(input, out) |
Поэлементно возвращает знак (-1, 0, 1). |
torch.sgn(input, out) |
Поэлементно возвращает вектор знаков. |
torch.signbit(input, out) |
Поэлементно проверяет знаковый бит. |
torch.sin(input, out) |
Поэлементный синус. |
torch.sinc(input, out) |
Поэлементная функция sinc sin(pi*x)/(pi*x). |
torch.sinh(input, out) |
Поэлементный гиперболический синус. |
torch.softmax(input, dim, dtype) |
Поэлементная функция softmax. |
torch.sqrt(input, out) |
Поэлементный квадратный корень. |
torch.square(input, out) |
Поэлементное возведение в квадрат. |
torch.sub(input, other, alpha, out) |
Поэлементное вычитание. |
torch.subtract(input, other, alpha, out) |
Поэлементное вычитание (то же, что sub). |
torch.tan(input, out) |
Поэлементный тангенс. |
torch.tanh(input, out) |
Поэлементный гиперболический тангенс. |
torch.true_divide(input, other, out) |
Поэлементное истинное деление. |
torch.trunc(input, out) |
Поэлементное усечение (целая часть). |
torch.xlogy(input, other, out) |
Поэлементно вычисляет input * log(other). |
Математические операции — операции редукции
| Функция | Описание |
|---|---|
torch.argmax(input, dim, keepdim) |
Возвращает индекс максимального значения вдоль измерения. |
torch.argmin(input, dim, keepdim) |
Возвращает индекс минимального значения вдоль измерения. |
torch.amax(input, dim, keepdim, out) |
Возвращает максимальное значение вдоль измерения. |
torch.amin(input, dim, keepdim, out) |
Возвращает минимальное значение вдоль измерения. |
torch.aminmax(input, dim, keepdim, out) |
Возвращает минимальное и максимальное значения вдоль измерения. |
torch.all(input, dim, keepdim, out) |
Проверяет, все ли элементы равны True. |
torch.any(input, dim, keepdim, out) |
Проверяет, есть ли элементы, равные True. |
torch.max(input, dim, keepdim, out) |
Вычисляет максимум вдоль указанного измерения. |
torch.min(input, dim, keepdim, out) |
Вычисляет минимум вдоль указанного измерения. |
torch.dist(input, other, p) |
Вычисляет расстояние по p-норме между двумя тензорами. |
torch.logsumexp(input, dim, keepdim, out) |
Вычисляет log-sum-exp. |
torch.mean(input, dim, keepdim, out) |
Вычисляет среднее по указанной размерности. |
torch.nanmean(input, dim, keepdim, out) |
Вычисляет среднее по указанной размерности (игнорируя NaNs). |
torch.median(input, dim, keepdim, out) |
Вычисляет медиану по указанной размерности. |
torch.nanmedian(input, dim, keepdim, out) |
Вычисляет медиану по указанной размерности (игнорируя NaNs). |
torch.mode(input, dim, keepdim, out) |
Вычисляет моду по указанной размерности. |
torch.norm(input, p, dim, keepdim, out) |
Вычисляет p-норму. |
torch.nansum(input, dim, keepdim, out) |
Вычисляет сумму по указанной размерности (игнорируя NaNs). |
torch.prod(input, dim, keepdim, dtype, out) |
Вычисляет произведение по указанной размерности. |
torch.quantile(input, q, dim, keepdim, out, method) |
Вычисляет квантиль. |
torch.nanquantile(input, q, dim, keepdim, out, method) |
Вычисляет квантиль (игнорируя NaNs). |
torch.std(input, dim, unbiased, keepdim, out) |
Вычисляет стандартное отклонение. |
torch.std_mean(input, dim, unbiased, keepdim) |
Вычисляет стандартное отклонение и среднее. |
torch.sum(input, dim, keepdim, dtype, out) |
Вычисляет сумму вдоль указанной размерности. |
torch.unique(input, sorted, return_inverse, return_counts, dim) |
Возвращает уникальные элементы. |
torch.unique_consecutive(input, sorted, return_inverse, return_counts, dim) |
Возвращает последовательные уникальные элементы. |
torch.var(input, dim, unbiased, keepdim, out) |
Вычисляет дисперсию. |
torch.var_mean(input, dim, unbiased, keepdim) |
Вычисляет дисперсию и среднее. |
torch.count_nonzero(input, dim) |
Подсчитывает количество ненулевых элементов. |
torch.hash_tensor(input) |
Вычисляет хеш-значение тензора. |
Математические операции — операции сравнения
| Функция | Описание |
|---|---|
torch.allclose(input, other, rtol, atol, equal_nan) |
Проверяет, близки ли два тензора (все элементы). |
torch.argsort(input, dim, descending, stable) |
Возвращает индексы, которые сортируют тензор. |
torch.eq(input, other, out) |
Поэлементное сравнение на равенство. |
torch.equal(input, other) |
Проверяет, являются ли два тензора точно равными. |
torch.ge(input, other, out) |
Поэлементное сравнение «больше или равно». |
torch.greater_equal(input, other, out) |
Поэлементное сравнение «больше или равно» (то же, что ge). |
torch.gt(input, other, out) |
Поэлементное сравнение «больше». |
torch.greater(input, other, out) |
Поэлементное сравнение «больше» (то же, что gt). |
torch.isclose(input, other, rtol, atol, equal_nan) |
Проверяет, близки ли два тензора (поэлементно). |
torch.isfinite(input, out) |
Проверяет, являются ли значения конечными. |
torch.isin(elements, test_elements, assume_unique, invert) |
Проверяет, принадлежат ли элементы множеству. |
torch.isinf(input, out) |
Проверяет, являются ли значения бесконечными. |
torch.isposinf(input, out) |
Проверяет, являются ли значения положительной бесконечностью. |
torch.isneginf(input, out) |
Проверяет, являются ли значения отрицательной бесконечностью. |
torch.isnan(input, out) |
Проверяет, являются ли значения NaN. |
torch.isreal(input, out) |
Проверяет, являются ли значения вещественными. |
torch.kthvalue(input, k, dim, keepdim, out) |
Возвращает k-й наименьший элемент и его индекс. |
torch.le(input, other, out) |
Поэлементное сравнение на меньше или равно. |
torch.less_equal(input, other, out) |
Поэлементное сравнение на меньше или равно (то же, что le). |
torch.lt(input, other, out) |
Поэлементное сравнение на меньше. |
torch.less(input, other, out) |
Поэлементное сравнение на меньше (то же, что lt). |
torch.maximum(input, other, out) |
Поэлементный максимум. |
torch.minimum(input, other, out) |
Поэлементный минимум. |
torch.fmax(input, other, out) |
Поэлементный максимум (игнорируя NaN). |
torch.fmin(input, other, out) |
Поэлементный минимум (игнорируя NaN). |
torch.ne(input, other, out) |
Поэлементное сравнение на неравенство. |
torch.not_equal(input, other, out) |
Поэлементное сравнение на неравенство (то же, что ne). |
torch.sort(input, dim, descending, stable, out) |
Сортирует вдоль указанного измерения. |
torch.topk(input, k, dim, largest, sorted, out) |
Возвращает k наибольших элементов и их индексы. |
torch.msort(input, out) |
Сортирует вдоль последнего измерения (возвращает отсортированный тензор). |
Математические операции — спектральные операции
| Функция | Описание |
|---|---|
torch.stft(input, n_fft, hop_length, win_length, window, center, normalized, onesided, return_complex) |
Кратковременное преобразование Фурье. |
torch.istft(input, n_fft, hop_length, win_length, window, center, normalized, onesided, length, return_complex) |
Обратное кратковременное преобразование Фурье. |
torch.bartlett_window(window_length, periodic, dtype, device) |
Окно Бартлетта. |
torch.blackman_window(window_length, periodic, dtype, device) |
Окно Блэкмана. |
torch.hamming_window(window_length, periodic, alpha, beta, dtype, device) |
Окно Хэмминга. |
torch.hann_window(window_length, periodic, dtype, device) |
Окно Ханна. |
torch.kaiser_window(window_length, periodic, beta, dtype, device) |
Окно Кайзера. |
Математические операции — другие операции
| Функция | Описание |
|---|---|
torch.atleast_1d(*tensors) |
Преобразует вход в тензор как минимум с 1 измерением. |
torch.atleast_2d(*tensors) |
Преобразует вход в тензор как минимум с 2 измерениями. |
torch.atleast_3d(*tensors) |
Преобразует вход в тензор как минимум с 3 измерениями. |
torch.bincount(input, weights, minlength) |
Подсчитывает количество вхождений неотрицательных целых чисел. |
torch.block_diag(*tensors) |
Строит блочно-диагональную матрицу из входного тензора. |
torch.broadcast_tensors(*tensors) |
Транслирует вход к общей форме. |
torch.broadcast_to(input, shape) |
Транслирует тензор к указанной форме. |
torch.broadcast_shapes(*shapes) |
Транслирует формы, чтобы они были совместимы для операций. |
torch.bucketize(input, boundaries, right) |
Сопоставляет вход индексам корзин. |
torch.cartesian_prod(*tensors) |
Вычисляет декартово произведение. |
torch.cdist(x1, x2, p, compute_mode) |
Вычисляет попарные расстояния. |
torch.clone(input, memory_format) |
Возвращает копию тензора. |
torch.combinations(input, r, with_replacement) |
Вычисляет сочетания. |
torch.corrcoef(input) |
Вычисляет матрицу коэффициентов корреляции. |
torch.cov(input, correction, fweights, aweights) |
Вычисляет ковариационную матрицу. |
torch.cross(input, dim, out) |
Вычисляет векторное произведение. |
torch.cummax(input, dim, out) |
Вычисляет накопленный максимум вдоль измерения. |
torch.cummin(input, dim, out) |
Вычисляет накопленный минимум вдоль измерения. |
torch.cumprod(input, dim, out) |
Вычисляет накопленное произведение вдоль измерения. |
torch.cumsum(input, dim, out, dtype) |
Вычисляет накопленную сумму вдоль измерения. |
torch.diag(input, diagonal, out) |
Создаёт диагональную матрицу или извлекает диагональ. |
torch.diag_embed(input, offset, dim1, dim2, out) |
Встраивает входные данные как диагональ. |
torch.diagflat(input, offset, out) |
Создаёт диагональную матрицу (уплощённый вход). |
torch.diagonal(input, offset, dim1, dim2, out) |
Извлекает диагональные элементы. |
torch.diff(input, n, dim, prepend, append, out) |
Вычисляет разность. |
torch.einsum(equation, *operands) |
Соглашение о суммировании Эйнштейна. |
torch.flatten(input, start_dim, end_dim, out) |
Разворачивает тензор. |
torch.ravel(input, out) |
Разворачивает в одномерный тензор. |
torch.kron(input, other, out) |
Вычисляет произведение Кронекера. |
torch.meshgrid(*tensors, indexing) |
Создаёт сетку. |
torch.lcm(input, other, out) |
Поэлементное наименьшее общее кратное. |
torch.logcumsumexp(input, dim, out) |
Кумулятивная log-sum-exp по измерению. |
torch.renorm(input, p, dim, maxnorm, out) |
Перенормирует к заданной норме. |
torch.roll(input, shifts, dims) |
Прокручивает элементы тензора. |
torch.searchsorted(sorted_sequence, values, side, sorter) |
Ищет позиции в отсортированной последовательности. |
torch.tensordot(a, b, dims) |
Вычисляет скалярное произведение тензоров. |
torch.trace(input, out) |
Вычисляет след матрицы. |
torch.tril(input, diagonal, out) |
Извлекает нижнюю треугольную матрицу. |
torch.tril_indices(row, column, offset, dtype, device, layout) |
Генерирует индексы нижнего треугольника. |
torch.triu(input, diagonal, out) |
Извлекает верхнюю треугольную матрицу. |
torch.triu_indices(row, column, offset, dtype, device, layout) |
Генерирует индексы верхнего треугольника. |
torch.unflatten(input, dim, sizes) |
Разворачивает тензор. |
torch.vander(x, N, increasing, out) |
Создаёт матрицу Вандермонда. |
Линейная алгебра (BLAS и LAPACK)
| Функция | Описание |
|---|---|
torch.addbmm(input, batch1, batch2, beta, alpha, out) |
Пакетное умножение-сложение матриц. |
torch.addmm(input, mat1, mat2, beta, alpha, out) |
Умножение-сложение матриц. |
torch.addmv(input, mat, vec, beta, alpha, out) |
Умножение-сложение матрицы и вектора. |
torch.addr(input, vec1, vec2, beta, alpha, out) |
Добавление внешнего произведения векторов. |
torch.baddbmm(input, batch1, batch2, beta, alpha, out) |
Пакетное матричное умножение-сложение (bmm + add). |
torch.bmm(input, mat2, out) |
Пакетное матричное умножение. |
torch.chain_matmul(*matrices) |
Цепочное матричное умножение. |
torch.cholesky(input, upper, out) |
Разложение Холецкого. |
torch.cholesky_inverse(input, upper, out) |
Обратная матрица через разложение Холецкого. |
torch.cholesky_solve(input, input2, upper, out) |
Решение линейных уравнений с помощью разложения Холецкого. |
torch.dot(input, other, out) |
Вычисляет скалярное произведение двух векторов. |
torch.geqrf(input, out) |
QR-разложение (geqrf). |
torch.ger(input, other, out) |
Вычисляет внешнее произведение векторов. |
torch.inner(input, other, out) |
Вычисляет внутреннее произведение. |
torch.inverse(input, out) |
Вычисляет обратную матрицу. |
torch.det(input, out) |
Вычисляет определитель матрицы. |
torch.logdet(input, out) |
Вычисляет логарифм определителя. |
torch.slogdet(input, out) |
Вычисляет знак и логарифм абсолютной величины определителя. |
torch.lu(input, pivot, get_infos, out) |
LU-разложение. |
torch.lu_solve(input, LU_data, LU_pivots, out) |
Решение с использованием LU-разложения. |
torch.lu_unpack(LU_data, LU_pivots, unpack_data, unpack_pivots) |
Распаковывает результат LU-разложения. |
torch.matmul(input, other, out) |
Умножение матриц (поддерживает разные размерности). |
torch.matrix_power(input, n, out) |
Возведение матрицы в степень. |
torch.matrix_exp(input, out) |
Матричная экспонента. |
torch.mm(input, mat2, out) |
Умножение матриц (2D). |
torch.mv(input, vec, out) |
Умножение матрицы на вектор. |
torch.orgqr(input, q, out) |
Восстанавливает Q из QR-разложения. |
torch.ormqr(input, mat, vec, left, transpose, out) |
Операция ormqr. |
torch.outer(input, other, out) |
Вычисляет внешнее произведение векторов. |
torch.pinverse(input, rcond, out) |
Вычисляет псевдообратную матрицу Мура — Пенроуза. |
torch.qr(input, out) |
QR-разложение. |
torch.svd(input, some, compute_uv, out) |
Сингулярное разложение. |
torch.svd_lowrank(input, q, niter, M) |
Низкоранговая SVD-аппроксимация. |
torch.pca_lowrank(input, q, center, niter) |
Низкоранговая PCA-аппроксимация. |
torch.lobpcg(input, K, B, X, M, P, max_iter, tol, debug, ortho_iparams, fpfloor) |
Решатель задачи на собственные значения LOBPCG. |
torch.trapz(y, x, dim, out) |
Трапециевидное интегрирование (устарело, используйте trapezoid). |
torch.trapezoid(y, x, dim, out) |
Трапециевидное интегрирование. |
torch.cumulative_trapezoid(y, x, dim, out) |
Кумулятивное трапециевидное интегрирование. |
torch.triangular_solve(input, A, upper, transpose, unitriangular, out) |
Решение системы с треугольной матрицей. |
torch.vdot(input, other, out) |
Вычисляет скалярное произведение векторов (с поддержкой комплексных чисел). |
Управление устройством
| Функция | Описание |
|---|---|
torch.cuda.is_available() |
Проверяет, доступна ли CUDA. |
torch.cuda.device_count() |
Возвращает количество устройств CUDA. |
torch.cuda.current_device() |
Возвращает индекс текущего устройства CUDA. |
torch.cuda.device(name) |
Создаёт объект устройства. |
torch.cuda.device_context(device) |
Создаёт контекст устройства. |
torch.device(device) |
Создаёт объект устройства (например,'cpu'или'cuda:0')。 |
torch.Tensor.to(device) |
Перемещает тензор на указанное устройство. |
torch.get_device_module(device_type) |
Получает модуль устройства (например, cuda, mps). |
Параллельные вычисления
| Функция | Описание |
|---|---|
torch.get_num_threads() |
Получает общее количество потоков для операций CPU. |
torch.set_num_threads(int) |
Задаёт количество потоков для операций CPU. |
torch.get_num_interop_threads() |
Получает количество потоков межоперационного параллелизма. |
torch.set_num_interop_threads(int) |
Задаёт количество потоков межоперационного параллелизма. |
Вспомогательные функции
| Функция | Описание |
|---|---|
torch.compiled_with_cxx11_abi() |
Проверяет, скомпилировано ли с ABI C++11. |
torch.result_type(tensor, other) |
Возвращает dtype результата операции. |
torch.can_cast(from_dtype, to_dtype) |
Проверяет, можно ли преобразовать типы данных. |
torch.promote_types(type1, type2) |
Возвращает повышенный тип данных. |
torch.use_deterministic_algorithms(mode, warn_only) |
Включает/выключает детерминированные алгоритмы. |
torch.are_deterministic_algorithms_enabled() |
Проверяет, включены ли детерминированные алгоритмы. |
torch.is_deterministic_algorithms_warn_only_enabled() |
Проверяет, находятся ли детерминированные алгоритмы в режиме предупреждения. |
torch.set_deterministic_debug_mode(debug_mode) |
Задаёт режим отладки детерминизма. |
torch.get_deterministic_debug_mode() |
Возвращает режим отладки детерминизма. |
torch.set_float32_matmul_precision(precision) |
Задаёт точность для умножения матриц float32. |
torch.get_float32_matmul_precision() |
Возвращает точность для умножения матриц float32. |
torch.set_warn_always(enabled) |
Задаёт, всегда ли отображать предупреждения. |
torch.is_warn_always_enabled() |
Проверяет, всегда ли отображаются предупреждения. |
torch.vmap(fn, in_dims, out_dims, randomness, chunk_size) |
Векторизованное отображение. |
torch._assert(condition, message) |
Проверка утверждений (внутреннее использование). |
torch.typename(t) |
Возвращает строковое представление типа. |
Оптимизация компиляции
| Функция | Описание |
|---|---|
torch.compile(model, backend, options, dynamic) |
Компилирует модель PyTorch для оптимизации. |
Пример
Пример
import torch
# Создайте тензор
x = torch.tensor([1, 2, 3])
y = torch.zeros(2, 3)
# Математические операции
z = torch.add(x, 1) # Поэлементное сложение 1
print(z)
# Индексация и срезы
mask = x > 1
selected = torch.masked_select(x, mask)
print(selected)
# Управление устройствами
if torch.cuda.is_available():
device = torch.device('cuda')
x = x.to(device)
print(x.device)
# Операции с матрицами
a = torch.randn(3, 4)
b = torch.randn(4, 5)
c = torch.matmul(a, b)
print(c.shape)
# Вычисление градиента
x = torch.tensor([1., 2., 3.], requires_grad=True)
y = x.sum()
y.backward()
print(x.grad)
# Создайте тензор
x = torch.tensor([1, 2, 3])
y = torch.zeros(2, 3)
# Математические операции
z = torch.add(x, 1) # Поэлементное сложение 1
print(z)
# Индексация и срезы
mask = x > 1
selected = torch.masked_select(x, mask)
print(selected)
# Управление устройствами
if torch.cuda.is_available():
device = torch.device('cuda')
x = x.to(device)
print(x.device)
# Операции с матрицами
a = torch.randn(3, 4)
b = torch.randn(4, 5)
c = torch.matmul(a, b)
print(c.shape)
# Вычисление градиента
x = torch.tensor([1., 2., 3.], requires_grad=True)
y = x.sum()
y.backward()
print(x.grad)
Вывод:
tensor([2, 3, 4]) tensor([2, 3])
Для получения более подробной информации, пожалуйста, обратитесь кОфициальной документации PyTorch。
Другие расширения