目录

Torch

torch包包含了多维张量的数据结构,并定义了在这些张量上进行的数学运算。此外,它还提供了许多实用工具,用于高效地序列化张量和任意类型,以及其他有用的工具。

它有一个CUDA版本,可以让你在计算能力 >= 3.0 的 NVIDIA GPU 上运行你的张量计算。

张量

is_tensor

如果 obj 是一个 PyTorch 张量,则返回 True。

is_storage

如果obj是PyTorch存储对象,则返回True。

is_complex

如果数据类型是复数数据类型,即其中之一input,则返回 True torch.complex64torch.complex128

is_conj

如果 input 是一个共轭张量,则返回 True,即其共轭位被设置为 True

is_floating_point

如果数据类型为 input 是浮点数据类型,即 torch.float64, torch.float32, torch.float16, 和 torch.bfloat16 之一,则返回 True。

is_nonzero

如果input在类型转换后是一个不等于零的单元素张量,则返回True。

set_default_dtype

将默认浮点数类型设置为 d

get_default_dtype

获取当前默认的浮点数 torch.dtype

set_default_device

将默认 torch.Tensor 设置为在 device 上分配。

get_default_device

获取默认的 torch.Tensor 以分配在 device

set_default_tensor_type

numel

返回input张量中的元素总数。

set_printoptions

设置打印选项。

set_flush_denormal

禁用CPU上的非正规浮点数。

创建操作

注意

随机采样创建操作列在 随机采样 下,包括: torch.rand() torch.rand_like() torch.randn() torch.randn_like() torch.randint() torch.randint_like() torch.randperm() 你也可以使用 torch.empty()原地随机采样 方法来创建从更广泛的分布中采样的 torch.Tensor

tensor

通过复制data,构建一个没有自动求导历史的张量(也称为“叶张量”,详见自动求导机制)。

sparse_coo_tensor

使用指定的值在给定的indices处构造一个COO(坐标)格式的稀疏张量

sparse_csr_tensor

使用指定的值在给定的crow_indicescol_indices处构造一个CSR(压缩稀疏行)格式的稀疏张量

sparse_csc_tensor

使用指定的值在给定的ccol_indicesrow_indices处构造一个CSC(压缩稀疏列)格式的稀疏张量

sparse_bsr_tensor

构造一个BSR(块压缩稀疏行)中的稀疏张量,在给定的crow_indicescol_indices位置具有指定的二维块。

sparse_bsc_tensor

使用指定的二维块在给定的ccol_indicesrow_indices处构造一个BSC(块压缩稀疏列)中的稀疏张量

asarray

obj 转换为张量。

as_tensor

data 转换为张量,共享数据并在可能的情况下保留自动梯度历史。

as_strided

创建一个现有torch.Tensor input的视图,并指定sizestridestorage_offset

from_file

创建一个由内存映射文件支持的存储的CPU张量。

from_numpy

numpy.ndarray创建一个Tensor

from_dlpack

将外部库中的张量转换为torch.Tensor

frombuffer

从实现Python缓冲协议的对象创建一个一维的 Tensor

zeros

返回一个用标量值0填充的张量,其形状由变量参数size定义。

zeros_like

返回一个与标量值0相同且大小与input相同的张量。

ones

返回一个用标量值1填充的张量,其形状由变量参数size定义。

ones_like

返回一个与标量值1相同且大小与input相同的张量。

arange

返回大小为 endstartstep\left\lceil \frac{\text{end} - \text{start}}{\text{step}} \right\rceil 的 1-D 张量,值从区间 [start, end) 中以公差 step 开始取自 start

range

返回大小为 endstartstep+1\left\lfloor \frac{\text{end} - \text{start}}{\text{step}} \right\rfloor + 1 的一维张量,值从 startend,步长为 step

linspace

创建一个大小为steps的一维张量,其值从startend均匀分布,包括边界值。

logspace

创建一个大小为steps的一维张量,其值在对数尺度(底数为base)上从basestart{{\text{{base}}}}^{{\text{{start}}}}baseend{{\text{{base}}}}^{{\text{{end}}}}均匀分布,包括两端。

eye

返回一个二维张量,对角线上为1,其他位置为0。

empty

返回一个填充了未初始化数据的张量。

empty_like

返回一个与input大小相同的未初始化张量。

empty_strided

创建一个具有指定 sizestride 并填充未定义数据的张量。

full

创建一个大小为 size 并填充 fill_value 的张量。

full_like

返回一个与 input 大小相同的张量,填充有 fill_value

quantize_per_tensor

将一个浮点张量转换为具有给定缩放因子和零点的量化张量。

quantize_per_channel

将一个浮点张量转换为具有给定比例尺和零点的按通道量化张量。

dequantize

返回一个通过反量化量化张量得到的fp32张量

complex

构建一个复数张量,其实部等于 real,虚部等于 imag

polar

构建一个复数张量,其元素是极坐标对应的笛卡尔坐标,绝对值为 abs,角度为 angle

heaviside

input中的每个元素计算Heaviside阶跃函数。

索引、切片、连接、变异操作

adjoint

返回一个张量的视图,该视图经过共轭处理并且最后两个维度进行了转置。

argwhere

返回一个包含input中所有非零元素索引的张量。

cat

在给定的维度上连接给定的seq张量序列。

concat

别名为 torch.cat()

concatenate

别名为 torch.cat()

conj

返回一个视图,其中 input 的共轭位被翻转。

chunk

尝试将张量分割成指定数量的块。

dsplit

input,一个具有三个或更多维度的张量,根据 indices_or_sections 按深度分割成多个张量。

column_stack

通过水平堆叠tensors中的张量来创建一个新的张量。

dstack

沿序列深度(沿第三个轴)堆叠张量。

gather

沿由dim指定的轴收集值。

hsplit

input,一个具有一个或多个维度的张量,根据 indices_or_sections 水平分割成多个张量。

hstack

按序列水平(列方向)堆叠张量。

index_add

请参阅 index_add_() 以获取函数描述。

index_copy

请参阅 index_add_() 以获取函数描述。

index_reduce

请参阅 index_reduce_() 以获取函数描述。

index_select

返回一个新的张量,该张量沿维度dim使用index中的条目索引input张量,其中index是一个LongTensor

masked_select

返回一个新的1-D张量,该张量根据布尔掩码maskinput张量进行索引,其中BoolTensor是一个布尔掩码。

movedim

将维度input在位置source处移动到位置destination处。

moveaxis

别名为 torch.movedim()

narrow

返回一个新的张量,它是input张量的缩小版本。

narrow_copy

Tensor.narrow() 相同,但返回的是副本而不是共享存储。

nonzero

permute

返回原始张量 input 的视图,其维度已重新排列。

reshape

返回一个与 input 具有相同数据和元素数量的张量,但具有指定的形状。

row_stack

别名为 torch.vstack()

select

沿选定维度在给定索引处切片input张量。

scatter

非原位版本的 torch.Tensor.scatter_()

diagonal_scatter

src张量的值嵌入到input中,沿着input的对角元素,相对于dim1dim2

select_scatter

src张量的值嵌入到给定索引处的input中。

slice_scatter

src张量的值嵌入到给定维度的input中。

scatter_add

非原位版本的 torch.Tensor.scatter_add_()

scatter_reduce

非原位版本的 torch.Tensor.scatter_reduce_()

split

将张量分割成块。

squeeze

返回一个移除了所有大小为1且指定维度为input的张量。

stack

沿着新维度连接一系列张量。

swapaxes

别名为 torch.transpose()

swapdims

别名为 torch.transpose()

t

期望 input 为 <= 2-D 张量,并转置维度 0 和 1。

take

返回一个新张量,其中包含在给定索引处的input元素。

take_along_dim

input中选择在给定的dim维度上,位于indices的一维索引处的值。

tensor_split

将张量沿维度dim根据由indices_or_sections指定的索引或分段数量,拆分为多个子张量,所有子张量都是input的视图。

tile

通过重复input的元素来构建一个张量。

transpose

返回一个张量,它是input的转置版本。

unbind

移除一个张量维度。

unravel_index

将一个扁平索引的张量转换为一个坐标张量元组,该元组可以对指定形状的任意张量进行索引。

unsqueeze

返回一个新的张量,在指定位置插入一个大小为一的维度。

vsplit

input, 一个具有两个或更多维度的张量,根据 indices_or_sections 垂直分割成多个张量。

vstack

按垂直顺序(逐行)堆叠张量。

where

根据condition,返回从inputother中选择的元素张量。

生成器

Generator

创建并返回一个生成器对象,该对象管理生成伪随机数的算法的状态。

随机采样

seed

为所有设备上的随机数生成设置种子,以一个非确定性的随机数。

manual_seed

为所有设备生成随机数设置种子。

initial_seed

返回生成随机数的初始种子作为Python long

get_rng_state

返回随机数生成器的状态为torch.ByteTensor

set_rng_state

设置随机数生成器的状态。

torch.default_generator Returns the default CPU torch.Generator

bernoulli

从伯努利分布中抽取二进制随机数(0 或 1)。

multinomial

返回一个张量,其中每一行包含从多项式(更严格的定义是多变量,请参阅 torch.distributions.multinomial.Multinomial 以获取更多详细信息)概率分布中采样的 num_samples 个索引,该分布位于张量 input 的相应行中。

normal

返回一个张量,其中包含从具有给定均值和标准差的独立正态分布中抽取的随机数。

poisson

返回一个与 input 大小相同的张量,其中每个元素从泊松分布中采样,其速率参数由 input 中对应的元素给出,即,

rand

返回一个用区间[0,1)[0, 1)上的均匀分布随机数填充的张量

rand_like

返回一个与 input 大小相同的张量,该张量由区间 [0,1)[0, 1) 上的均匀分布随机数填充。

randint

返回一个填充了在 low(包含)和 high(不包含)之间均匀生成的随机整数的张量。

randint_like

返回一个与张量 input 形状相同的张量,其中填充了在 low(包含)和 high(不包含)之间均匀生成的随机整数。

randn

返回一个填充有来自均值为0和方差为1(也称为标准正态分布)的正态分布随机数的张量。

randn_like

返回一个与 input 大小相同的张量,该张量填充了来自均值为0和方差为1的正态分布的随机数。

randperm

返回从 0n - 1 的整数的随机排列。

原地随机采样

还有一些在张量上定义的原地随机采样函数。点击链接以参考它们的文档:

准随机采样

quasirandom.SobolEngine

The torch.quasirandom.SobolEngine 是一个生成(打乱的)Sobol序列的引擎。

序列化

save

将一个对象保存到磁盘文件中。

load

从文件中加载使用 torch.save() 保存的对象。

并行处理

get_num_threads

返回用于并行化CPU操作的线程数

set_num_threads

设置用于CPU上操作内并行性的线程数。

get_num_interop_threads

返回用于CPU上跨操作并行性的线程数(例如:

set_num_interop_threads

设置用于互操作并行性的线程数(例如。

局部禁用梯度计算

上下文管理器 torch.no_grad(), torch.enable_grad()torch.set_grad_enabled() 对于局部禁用和启用 梯度计算非常有用。有关其用法的更多详细信息,请参阅 局部禁用梯度计算。这些上下文管理器是线程本地的,因此如果您使用 threading 模块将工作发送到另一个线程,则它们将不起作用。

Examples:

>>> x = torch.zeros(1, requires_grad=True)
>>> with torch.no_grad():
...     y = x * 2
>>> y.requires_grad
False

>>> is_train = False
>>> with torch.set_grad_enabled(is_train):
...     y = x * 2
>>> y.requires_grad
False

>>> torch.set_grad_enabled(True)  # this can also be used as a function
>>> y = x * 2
>>> y.requires_grad
True

>>> torch.set_grad_enabled(False)
>>> y = x * 2
>>> y.requires_grad
False

no_grad

禁用梯度计算的上下文管理器。

enable_grad

启用梯度计算的上下文管理器。

autograd.grad_mode.set_grad_enabled

上下文管理器,用于设置梯度计算的开启或关闭。

is_grad_enabled

如果当前启用了梯度模式,则返回True。

autograd.grad_mode.inference_mode

上下文管理器,用于启用或禁用推理模式。

is_inference_mode_enabled

如果当前启用了推理模式,则返回True。

数学运算

逐元素运算

abs

计算 input 中每个元素的绝对值。

absolute

别名为 torch.abs()

acos

计算 input 中每个元素的反余弦值。

arccos

别名为 torch.acos()

acosh

返回一个新的张量,其中包含input元素的反双曲余弦值。

arccosh

别名为 torch.acosh()

add

other 乘以 alpha 后加到 input 上。

addcdiv

tensor1tensor2 进行逐元素除法运算,将结果乘以标量 value 并将其加到 input 上。

addcmul

tensor1tensor2 进行元素级乘法运算,将结果乘以标量 value 并将其加到 input 上。

angle

计算给定input张量的元素角度(以弧度为单位)。

asin

返回一个新的张量,其中包含input元素的反正弦值。

arcsin

别名为 torch.asin()

asinh

返回一个新的张量,其中包含input元素的反双曲正弦值。

arcsinh

别名为 torch.asinh()

atan

返回一个新的张量,其中包含input元素的反正切值。

arctan

别名为 torch.atan()

atanh

返回一个新的张量,其中包含input元素的反双曲正切值。

arctanh

别名为 torch.atanh()

atan2

逐元素反正切值计算inputi/otheri\text{input}_{i} / \text{other}_{i},并考虑象限。

arctan2

别名为 torch.atan2()

bitwise_not

计算给定输入张量的按位NOT。

bitwise_and

计算 inputother 的按位与。

bitwise_or

计算 inputother 的按位或。

bitwise_xor

计算 inputother 的按位异或。

bitwise_left_shift

计算 input 向左算术移位 other 位。

bitwise_right_shift

计算 input 向右算术移位 other 位。

ceil

返回一个新的张量,其中包含input元素的ceil值,即每个元素的大于或等于其的最小整数。

clamp

将所有元素在input限制在范围[ minmax ]之间。

clip

别名为 torch.clamp()

conj_physical

计算给定input张量的逐元素共轭。

copysign

创建一个新的浮点张量,其大小为input,符号为other,逐元素。

cos

返回一个新的张量,其中包含input元素的余弦值。

cosh

返回一个新的张量,其中包含input元素的双曲余弦值。

deg2rad

返回一个新的张量,其中input的每个元素都从角度转换为弧度。

div

将输入 input 的每个元素除以 other 中对应的元素。

divide

别名为 torch.div()

digamma

别名为 torch.special.digamma()

erf

别名为 torch.special.erf()

erfc

别名为 torch.special.erfc()

erfinv

别名为 torch.special.erfinv()

exp

返回一个新的张量,其中包含输入张量 input 元素的指数。

exp2

别名为 torch.special.exp2()

expm1

别名为 torch.special.expm1()

fake_quantize_per_channel_affine

返回一个新的张量,其中的数据在input中按通道进行假量化,使用scalezero_pointquant_minquant_max,在由axis指定的通道上。

fake_quantize_per_tensor_affine

返回一个新的张量,其中的数据使用 input, scale, zero_point, quant_minquant_max 进行了假量化。

fix

别名为 torch.trunc()

float_power

input 提升到 exponent 的幂,逐元素地,在双精度中。

floor

返回一个新的张量,其中包含input元素的下取整值,即小于或等于每个元素的最大整数。

floor_divide

fmod

逐元素应用C++的 std::fmod 函数。

frac

计算input中每个元素的小数部分。

frexp

input分解为尾数和指数张量,使得input=mantissa×2exponent\text{input} = \text{mantissa} \times 2^{\text{exponent}}

gradient

估计函数在一维或多维中的梯度 g:RnRg : \mathbb{R}^n \rightarrow \mathbb{R} 使用 二阶精确中心差分法 以及边界处的一阶或二阶估计。

imag

返回一个新的张量,包含self张量的虚部值。

ldexp

input 乘以 2 ** other

lerp

对两个张量 start(由 input 给出)和 end 进行线性插值,基于标量或张量 weight,并返回结果的 out 张量。

lgamma

计算伽玛函数绝对值的自然对数在 input 上。

log

返回一个新的张量,其中包含input元素的自然对数。

log10

返回一个新的张量,其中包含input元素的以10为底的对数。

log1p

返回一个新的张量,其中包含 (1 + input) 的自然对数。

log2

返回一个新的张量,其中包含input元素的以2为底的对数。

logaddexp

输入的指数和的对数。

logaddexp2

以2为底的输入指数和的对数。

logical_and

计算给定输入张量的元素级逻辑与。

logical_not

计算给定输入张量的元素级逻辑非。

logical_or

计算给定输入张量的元素级逻辑或。

logical_xor

计算给定输入张量的元素级逻辑异或。

logit

别名为 torch.special.logit()

hypot

给定一个直角三角形的两条直角边,返回其斜边。

i0

别名为 torch.special.i0()

igamma

别名为 torch.special.gammainc()

igammac

别名为 torch.special.gammaincc()

mul

input 乘以 other

multiply

别名为 torch.mul()

mvlgamma

别名为 torch.special.multigammaln()

nan_to_num

NaN、正无穷和负无穷值在 input 中替换为由 nanposinfneginf 分别指定的值。

neg

返回一个新的张量,其中包含input元素的负值。

negative

别名为 torch.neg()

nextafter

返回input之后的下一个浮点值,逐元素地朝向other

polygamma

别名为 torch.special.polygamma()

positive

返回 input

pow

input 中的每个元素使用 exponent 的幂,并返回一个包含结果的张量。

quantized_batch_norm

对4D(NCHW)量化张量应用批归一化。

quantized_max_pool1d

对由多个输入平面组成的输入量化张量应用一维最大池化。

quantized_max_pool2d

对由多个输入平面组成的输入量化张量应用2D最大池化。

rad2deg

返回一个新的张量,其中input的每个元素都从弧度转换为角度。

real

返回一个包含self张量实数值的新张量。

reciprocal

返回一个新的张量,其元素是input中元素的倒数

remainder

计算 Python的取模运算 逐元素。

round

input的元素四舍五入到最接近的整数。

rsqrt

返回一个新的张量,其中每个元素是input中对应元素平方根的倒数。

sigmoid

别名为 torch.special.expit()

sign

返回一个新的张量,其中元素的符号与 input 中元素的符号相同。

sgn

此函数是torch.sign()对复数张量的扩展。

signbit

测试input的每个元素是否设置了符号位。

sin

返回一个新的张量,其中包含input元素的正弦值。

sinc

别名为 torch.special.sinc()

sinh

返回一个新的张量,其中包含input元素的双曲正弦值。

softmax

别名为 torch.nn.functional.softmax()

sqrt

返回一个新的张量,其中包含input元素的平方根。

square

返回一个新的张量,其中包含input元素的平方。

sub

input 中减去 other,并乘以 alpha

subtract

别名为 torch.sub()

tan

返回一个新的张量,其中包含input元素的正切值。

tanh

返回一个新的张量,其中包含input元素的双曲正切值。

true_divide

别名为 torch.div(),具有 rounding_mode=None

trunc

返回一个新的张量,其中包含元素 input 的截断整数值。

xlogy

别名为 torch.special.xlogy()

减少操作

argmax

返回所有元素在input张量中的最大值的索引。

argmin

返回展平张量或沿某个维度的最小值的索引。

amax

返回给定维度 dim 中每个切片的 input 张量的最大值。

amin

返回给定维度的input张量每个切片的最小值dim

aminmax

计算input张量的最小值和最大值。

all

测试input中的所有元素是否评估为True

any

检查input中的任一元素是否评估为True

max

返回input张量中所有元素的最大值。

min

返回input张量中所有元素的最小值。

dist

返回 (input - other) 的 p-范数

logsumexp

返回给定维度diminput张量的每一行的指数和的对数。

mean

返回 input 张量中所有元素的平均值。

nanmean

计算指定维度上所有 non-NaN 元素的平均值。

median

返回 input 中值的中位数。

nanmedian

返回 input 中值的中位数,忽略 NaN 个值。

mode

返回一个命名元组 (values, indices),其中 values 是给定维度 dim 中的 input 张量每一行的众数值,即在该行中出现最频繁的值,而 indices 是找到的每个众数值的索引位置。

norm

返回给定张量的矩阵范数或向量范数。

nansum

返回所有元素的总和,将非数字(NaNs)视为零处理。

prod

返回input张量中所有元素的乘积。

quantile

计算input张量沿维度dim的每一行的q-th分位数。

nanquantile

这是 torch.quantile() 的一个变体,它“忽略”NaN 值,计算分位数 q 时就像 NaNinput 中不存在一样。

std

在指定的维度dim上计算标准差。

std_mean

计算在由dim指定的维度上的标准差和均值。

sum

返回input张量中所有元素的总和。

unique

返回输入张量的唯一元素。

unique_consecutive

消除每个连续相同元素组中的所有元素,只保留第一个元素。

var

计算在由 dim 指定的维度上的方差。

var_mean

计算在由dim指定的维度上的方差和均值。

count_nonzero

计算张量 input 沿给定 dim 的非零值的数量。

比较运算符

allclose

此函数检查inputother是否满足条件:

argsort

返回沿给定维度按值升序排序的张量的索引。

eq

计算元素级别的相等性

equal

True 如果两个张量具有相同的大小和元素,则为 False 否则。

ge

计算每个inputother\text{input} \geq \text{other}元素。

greater_equal

别名为 torch.ge()

gt

计算每个input>other\text{input} > \text{other}元素。

greater

别名为 torch.gt()

isclose

返回一个新的张量,其中的布尔元素表示input中的每个元素是否与other中对应的元素“接近”。

isfinite

返回一个包含布尔元素的新张量,表示每个元素是否为finite

isin

测试 elements 的每个元素是否在 test_elements 中。

isinf

测试 input 的每个元素是否为无穷大(正无穷或负无穷)。

isposinf

测试 input 的每个元素是否为正无穷大。

isneginf

测试 input 的每个元素是否为负无穷大。

isnan

返回一个新的张量,其中的布尔元素表示input中的每个元素是否为NaN。

isreal

返回一个新的张量,其中的布尔元素表示input中的每个元素是否为实数值。

kthvalue

返回一个命名元组 (values, indices),其中 values 是给定维度 diminput 张量的每一行的第 k 小元素。

le

计算每个inputother\text{input} \leq \text{other}元素。

less_equal

别名为 torch.le()

lt

计算每个input<other\text{input} < \text{other}元素。

less

别名为 torch.lt()

maximum

计算 inputother 的逐元素最大值。

minimum

计算 inputother 的逐元素最小值。

fmax

计算 inputother 的逐元素最大值。

fmin

计算 inputother 的逐元素最小值。

ne

计算每个inputother\text{input} \neq \text{other}元素。

not_equal

别名为 torch.ne()

sort

按值对input张量沿给定维度的元素进行升序排序。

topk

返回给定维度上最大的 k 个元素,这些元素来自给定的 input 阶张量。

msort

按值对 input 张量沿其第一维度的元素进行升序排序。

谱运算

stft

短时傅里叶变换(STFT)。

istft

短时傅里叶逆变换。

bartlett_window

巴特利特窗函数。

blackman_window

布莱克曼窗函数。

hamming_window

汉明窗函数。

hann_window

汉明窗函数。

kaiser_window

计算长度为window_length和形状参数为beta的Kaiser窗口。

其他操作

atleast_1d

返回每个输入张量的零维视图的一维表示。

atleast_2d

返回每个输入张量的二维视图,其中维度为零。

atleast_3d

返回每个输入张量的三维视图,其中维度为零。

bincount

计算非负整数数组中每个值的频率。

block_diag

从提供的张量创建一个块对角矩阵。

broadcast_tensors

根据广播语义广播给定的张量。

broadcast_to

input 广播到形状 shape

broadcast_shapes

类似于 broadcast_tensors() 但用于形状。

bucketize

返回每个值在input中所属的桶的索引,其中桶的边界由boundaries设置。

cartesian_prod

对给定的张量序列进行笛卡尔积运算。

cdist

计算两个行向量集合中每对之间的批量p-范数距离。

clone

返回 input 的副本。

combinations

计算给定张量长度为rr的所有组合。

corrcoef

估计由input矩阵给出的变量的皮尔逊积矩相关系数矩阵,其中行是变量,列是观测值。

cov

估计由input矩阵给出的变量的协方差矩阵,其中行是变量,列是观测值。

cross

返回维度为dim的向量inputother的叉积。

cummax

返回一个命名元组 (values, indices),其中 valuesinput 在维度 dim 上的累积最大值。

cummin

返回一个命名元组 (values, indices),其中 values 是维度 diminput 的元素的累积最小值。

cumprod

返回维度diminput的元素的累积乘积。

cumsum

返回维度diminput元素的累积和。

diag

  • 如果 input 是一个向量(1-D 张量),则返回一个 2-D 方形张量

diag_embed

创建一个张量,其特定2D平面(由dim1dim2指定)的对角线被input填充。

diagflat

  • 如果 input 是一个向量(1-D 张量),则返回一个 2-D 方形张量

diagonal

返回一个部分视图,其中包含input的对角线元素,并将这些元素相对于dim1dim2附加为形状末尾的一个维度。

diff

计算给定维度上的第n阶前向差分。

einsum

根据爱因斯坦求和约定的表示法,沿指定维度对输入 operands 的元素乘积进行求和。

flatten

input 展平,将其重塑为一维张量。

flip

沿着给定的维度轴反转n维张量的顺序。

fliplr

在左/右方向上翻转张量,返回一个新的张量。

flipud

在上下方向上翻转张量,返回一个新的张量。

kron

计算克罗内克积,记作\otimesinputother的。

rot90

将一个n维张量在由dims轴指定的平面上旋转90度。

gcd

计算 inputother 的元素级最大公约数(GCD)。

histc

计算张量的直方图。

histogram

计算张量中值的直方图。

histogramdd

计算张量中值的多维直方图。

meshgrid

创建由1D输入在attr:张量指定的坐标网格。

lcm

计算 inputother 的元素级最小公倍数(LCM)。

logcumsumexp

返回维度diminput元素的指数累加和的对数。

ravel

返回一个连续的展平张量。

renorm

返回一个张量,其中沿着维度dim的每个子张量input被归一化,使得子张量的p范数小于值maxnorm

repeat_interleave

重复张量的元素。

roll

沿给定维度滚动张量 input

searchsorted

找到sorted_sequence最内层维度中的索引,使得如果将values中对应的值插入到这些索引之前,排序后,sorted_sequence中对应的最内层维度的顺序将被保留。

tensordot

返回a和b在多个维度上的收缩结果。

trace

返回输入2-D矩阵对角线元素的和。

tril

返回矩阵(2-D张量)或矩阵批次的下三角部分input,结果张量的其他元素out被设置为0。

tril_indices

返回一个 rowcol 列矩阵的下三角部分的索引,结果是一个 2 行 N 列的张量,其中第一行包含所有索引的行坐标,第二行包含列坐标。

triu

返回矩阵(2-D张量)或一批矩阵的上三角部分input,结果张量的其他元素out被设置为0。

triu_indices

返回一个2乘3矩阵的上三角部分的索引,在一个2乘N的张量中,其中第一行包含所有索引的行坐标,第二行包含列坐标。

unflatten

在多个维度上扩展输入张量的一个维度。

vander

生成一个范德蒙矩阵。

view_as_real

返回 input 作为实数张量的视图。

view_as_complex

返回 input 的视图作为复数张量。

resolve_conj

如果input的共轭位设置为True,则返回一个新的张量,其中包含具体化的共轭;否则返回input

resolve_neg

如果input的负位被设置为True,则返回一个新的张量,其中包含具体化的否定;否则返回input

BLAS和LAPACK操作

addbmm

对存储在batch1batch2中的矩阵执行批量矩阵-矩阵乘积,并进行简化加法步骤(所有矩阵乘法沿第一个维度累积)。

addmm

对矩阵 mat1mat2 进行矩阵乘法运算。

addmv

执行矩阵mat和向量vec的矩阵-向量乘积。

addr

执行向量vec1vec2的外积,并将其加到矩阵input上。

baddbmm

batch1batch2 中的矩阵执行批量矩阵-矩阵乘积。

bmm

对存储在 inputmat2 中的矩阵执行批量矩阵-矩阵乘积。

chain_matmul

返回 NN 个二维张量的矩阵乘积。

cholesky

计算对称正定矩阵的Cholesky分解AA或一批对称正定矩阵的Cholesky分解。

cholesky_inverse

计算给定其Cholesky分解的复数Hermitian矩阵或实对称正定矩阵的逆。

cholesky_solve

计算具有复数Hermitian或实对称正定左侧的线性方程组的解,给定其Cholesky分解。

dot

计算两个一维张量的点积。

geqrf

这是一个用于直接调用LAPACK的geqrf的低级函数。

ger

别名为 torch.outer()

inner

计算一维张量的点积。

inverse

别名为 torch.linalg.inv()

det

别名为 torch.linalg.det()

logdet

计算一个方阵或一批方阵的对数行列式。

slogdet

别名为 torch.linalg.slogdet()

lu

计算矩阵或矩阵批次的LU分解A

lu_solve

返回使用部分旋转的LU分解从lu_factor()中得到的线性系统的LU解 Ax=bAx = b

lu_unpack

将由lu_factor()返回的LU分解解包为P, L, U个矩阵。

matmul

两个张量的矩阵乘积。

matrix_power

别名为 torch.linalg.matrix_power()

matrix_exp

别名为 torch.linalg.matrix_exp()

mm

对矩阵 inputmat2 进行矩阵乘法运算。

mv

执行矩阵input和向量vec的矩阵-向量乘积。

orgqr

别名为 torch.linalg.householder_product()

ormqr

计算豪斯霍尔德矩阵乘积与一般矩阵的矩阵-矩阵乘法。

outer

2和3的外积。

pinverse

别名为 torch.linalg.pinv()

qr

计算一个矩阵或一批矩阵的QR分解 input,并返回一个命名元组 (Q, R),其中包含张量 input=QR\text{input} = Q R,且 QQ 是一个正交矩阵或一批正交矩阵,RR 是一个上三角矩阵或一批上三角矩阵。

svd

计算矩阵或矩阵批次的奇异值分解 input

svd_lowrank

返回矩阵、矩阵批次或稀疏矩阵的奇异值分解 (U, S, V),使得 AA AUdiag(S)VHA \approx U \operatorname{diag}(S) V^{\text{H}}

pca_lowrank

对低秩矩阵、此类矩阵的批次或稀疏矩阵执行线性主成分分析(PCA)。

lobpcg

找到对称正定广义特征值问题的k个最大(或最小)特征值及其对应的特征向量,使用无矩阵LOBPCG方法。

trapz

别名为 torch.trapezoid()

trapezoid

计算沿dim梯形法则

cumulative_trapezoid

累计计算梯形法则沿dim

triangular_solve

使用一个平方的上三角或下三角可逆矩阵 AA 和多个右侧项 bb 解决方程组。

vdot

计算两个一维向量沿一个维度的点积。

逐元素操作

警告

此API处于测试阶段,未来可能会有变动。 不支持前向模式自动微分。

_foreach_abs

torch.abs() 应用于输入列表中的每个 Tensor。

_foreach_abs_

torch.abs() 应用于输入列表中的每个 Tensor。

_foreach_acos

torch.acos() 应用于输入列表中的每个 Tensor。

_foreach_acos_

torch.acos() 应用于输入列表中的每个 Tensor。

_foreach_asin

torch.asin() 应用于输入列表中的每个 Tensor。

_foreach_asin_

torch.asin() 应用于输入列表中的每个 Tensor。

_foreach_atan

torch.atan() 应用于输入列表中的每个 Tensor。

_foreach_atan_

torch.atan() 应用于输入列表中的每个 Tensor。

_foreach_ceil

torch.ceil() 应用于输入列表中的每个 Tensor。

_foreach_ceil_

torch.ceil() 应用于输入列表中的每个 Tensor。

_foreach_cos

torch.cos() 应用于输入列表中的每个 Tensor。

_foreach_cos_

torch.cos() 应用于输入列表中的每个 Tensor。

_foreach_cosh

torch.cosh() 应用于输入列表中的每个 Tensor。

_foreach_cosh_

torch.cosh() 应用于输入列表中的每个 Tensor。

_foreach_erf

torch.erf() 应用于输入列表中的每个 Tensor。

_foreach_erf_

torch.erf() 应用于输入列表中的每个 Tensor。

_foreach_erfc

torch.erfc() 应用于输入列表中的每个 Tensor。

_foreach_erfc_

torch.erfc() 应用于输入列表中的每个 Tensor。

_foreach_exp

torch.exp() 应用于输入列表中的每个 Tensor。

_foreach_exp_

torch.exp() 应用于输入列表中的每个 Tensor。

_foreach_expm1

torch.expm1() 应用于输入列表中的每个 Tensor。

_foreach_expm1_

torch.expm1() 应用于输入列表中的每个 Tensor。

_foreach_floor

torch.floor() 应用于输入列表中的每个 Tensor。

_foreach_floor_

torch.floor() 应用于输入列表中的每个 Tensor。

_foreach_log

torch.log() 应用于输入列表中的每个 Tensor。

_foreach_log_

torch.log() 应用于输入列表中的每个 Tensor。

_foreach_log10

torch.log10() 应用于输入列表中的每个 Tensor。

_foreach_log10_

torch.log10() 应用于输入列表中的每个 Tensor。

_foreach_log1p

torch.log1p() 应用于输入列表中的每个 Tensor。

_foreach_log1p_

torch.log1p() 应用于输入列表中的每个 Tensor。

_foreach_log2

torch.log2() 应用于输入列表中的每个 Tensor。

_foreach_log2_

torch.log2() 应用于输入列表中的每个 Tensor。

_foreach_neg

torch.neg() 应用于输入列表中的每个 Tensor。

_foreach_neg_

torch.neg() 应用于输入列表中的每个 Tensor。

_foreach_tan

torch.tan() 应用于输入列表中的每个 Tensor。

_foreach_tan_

torch.tan() 应用于输入列表中的每个 Tensor。

_foreach_sin

torch.sin() 应用于输入列表中的每个 Tensor。

_foreach_sin_

torch.sin() 应用于输入列表中的每个 Tensor。

_foreach_sinh

torch.sinh() 应用于输入列表中的每个 Tensor。

_foreach_sinh_

torch.sinh() 应用于输入列表中的每个 Tensor。

_foreach_round

torch.round() 应用于输入列表中的每个 Tensor。

_foreach_round_

torch.round() 应用于输入列表中的每个 Tensor。

_foreach_sqrt

torch.sqrt() 应用于输入列表中的每个 Tensor。

_foreach_sqrt_

torch.sqrt() 应用于输入列表中的每个 Tensor。

_foreach_lgamma

torch.lgamma() 应用于输入列表中的每个 Tensor。

_foreach_lgamma_

torch.lgamma() 应用于输入列表中的每个 Tensor。

_foreach_frac

torch.frac() 应用于输入列表中的每个 Tensor。

_foreach_frac_

torch.frac() 应用于输入列表中的每个 Tensor。

_foreach_reciprocal

torch.reciprocal() 应用于输入列表中的每个 Tensor。

_foreach_reciprocal_

torch.reciprocal() 应用于输入列表中的每个 Tensor。

_foreach_sigmoid

torch.sigmoid() 应用于输入列表中的每个 Tensor。

_foreach_sigmoid_

torch.sigmoid() 应用于输入列表中的每个 Tensor。

_foreach_trunc

torch.trunc() 应用于输入列表中的每个 Tensor。

_foreach_trunc_

torch.trunc() 应用于输入列表中的每个 Tensor。

_foreach_zero_

torch.zero() 应用于输入列表中的每个Tensor。

实用工具

compiled_with_cxx11_abi

返回PyTorch是否在编译时使用了_GLIBCXX_USE_CXX11_ABI=1。

result_type

返回对提供的输入张量执行算术运算后将得到的 torch.dtype

can_cast

根据类型提升文档中描述的PyTorch类型转换规则,确定是否允许类型转换。

promote_types

返回具有最小大小和标量类型的 torch.dtype,该类型不小于且不低于 type1type2 的类型。

use_deterministic_algorithms

设置PyTorch操作是否必须使用“确定性”算法。

are_deterministic_algorithms_enabled

如果全局确定性标志已开启,则返回True。

is_deterministic_algorithms_warn_only_enabled

如果全局确定性标志仅设置为警告,则返回True。

set_deterministic_debug_mode

设置确定性操作的调试模式。

get_deterministic_debug_mode

返回确定性操作的调试模式当前值。

set_float32_matmul_precision

设置浮点数矩阵乘法的内部精度为float32。

get_float32_matmul_precision

返回当前的float32矩阵乘法精度值。

set_warn_always

当此标志为 False(默认值)时,某些 PyTorch 警告可能在每个进程中仅出现一次。

get_device_module

返回与给定设备(例如,torch.device('cuda'),"mtia:0","xpu",...)关联的模块。

is_warn_always_enabled

如果全局warn_always标志被打开,则返回True。

vmap

vmap 是向量化映射;vmap(func) 返回一个新的函数,该函数在输入的某个维度上对 func 进行映射。

_assert

Python的assert语句的一个包装器,该包装器在符号上是可追踪的。

符号数字

class torch.SymInt(node)[source]

像一个整数(包括魔术方法),但将所有操作重定向到包装的节点。这在符号形状工作流程中特别用于符号记录操作。

class torch.SymFloat(node)[source]

类似于浮点数(包括魔术方法),但将所有操作重定向到包装的节点。这在符号形状工作流程中特别用于符号记录操作。

is_integer()[source]

如果浮点数是整数,则返回True。

class torch.SymBool(node)[source]

类似于布尔值(包括魔术方法),但将所有操作重定向到包装的节点。这在符号形状工作流程中特别用于符号记录操作。

与常规布尔值不同,常规的布尔运算符会强制添加额外的保护措施,而不是进行符号化评估。相反,请使用位运算符来处理这种情况。

sym_float

支持SymInt的浮点数类型转换工具。

sym_int

支持SymInt的整数类型转换工具。

sym_max

支持SymInt的max实用工具,避免在a < b时进行分支判断。

sym_min

支持SymInt的min()实用工具。

sym_not

支持SymInt的逻辑否定实用工具。

sym_ite

导出路径

警告

此功能是一个原型,未来可能会有兼容性破坏性的更改。

导出 生成的/导出数据库/索引

控制流

警告

此功能是一个原型,未来可能会有兼容性破坏性的更改。

cond

有条件地应用 true_fnfalse_fn

优化

compile

使用TorchDynamo和指定的后端优化给定的模型/函数。

torch.compile 文档

操作符标签

class torch.Tag

Members:

核心

data_dependent_output

dynamic_output_shape

生成的

inplace_view

needs_fixed_stride_order

nondeterministic_bitwise

nondeterministic_seeded

逐点

pt2_compliant_tag

view_copy

property name

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源