Shortcuts

torch

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

它有一个CUDA对应版本,使您能够在计算能力大于等于3.0的NVIDIA GPU上运行张量计算。

张量

is_tensor

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

is_storage

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

is_complex

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

is_conj

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

is_floating_point

如果 input 的数据类型是浮点型数据类型,即 torch.float64torch.float32torch.float16torch.bfloat16 之一,则返回 True。

is_nonzero

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

设置默认数据类型

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

获取默认数据类型

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

设置默认设备

设置默认的 torch.Tensordevice 上分配。

get_default_device

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

设置默认张量类型

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,其值从更广泛的分布中采样。

张量

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

sparse_coo_tensor

构建一个COO(rdinate)格式的稀疏张量,并在给定的indices处指定值。

sparse_csr_tensor

构建一个CSR(压缩稀疏行)格式的稀疏张量,并在给定的crow_indicescol_indices处指定值。

sparse_csc_tensor

构建一个CSC(压缩稀疏列)格式的稀疏张量,并在给定的ccol_indicesrow_indices处指定值。

sparse_bsr_tensor

构建一个BSR(块压缩稀疏行)格式的稀疏张量,在给定的crow_indicescol_indices处指定二维块。

sparse_bsc_tensor

构建一个BSC(块压缩稀疏列)格式的稀疏张量,在给定的ccol_indicesrow_indices处指定二维块。

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 的一维张量,其值从区间 [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 的一维张量,其值在 basestart{{\text{{base}}}}^{{\text{{start}}}}baseend{{\text{{base}}}}^{{\text{{end}}}},包括端点,在以 base 为底的对数尺度上均匀分布。

eye

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

empty

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

empty_like

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

empty_strided

创建一个具有指定大小步幅并填充未定义数据的张量。

full

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

full_like

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

quantize_per_tensor

将浮点张量转换为具有给定比例和零点的量化张量。

quantize_per_channel

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

反量化

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

complex

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

极坐标

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

heaviside

计算 input 中每个元素的海维赛德阶跃函数。

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

伴随

返回一个共轭且最后两个维度转置的张量视图。

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

返回一个新的张量,该张量沿维度 diminput 张量进行索引,索引的条目来自 index,这是一个 LongTensor

masked_select

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

movedim

input的维度从source位置移动到destination位置。

moveaxis

别名用于 torch.movedim()

narrow

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

narrow_copy

Tensor.narrow() 相同,只不过这返回的是一个副本而不是共享存储。

非零

permute

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

重塑

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

row_stack

别名 torch.vstack()

选择

沿着选定的维度在给定的索引处对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

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

stack

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

交换轴

别名 torch.transpose()

swapdims

别名 torch.transpose()

t

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

take

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

take_along_dim

input 中选择沿给定 dim 的 1 维索引处的值。

tensor_split

将一个张量分割成多个子张量,所有这些子张量都是 input 的视图,沿着维度 dim 根据由 indices_or_sections 指定的索引或段数进行分割。

tile

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

转置

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

unbind

移除一个张量维度。

unravel_index

将一个扁平索引的张量转换为一组坐标张量的元组,这些坐标张量可以索引到具有指定形状的任意张量中。

unsqueeze

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

vsplit

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

vstack

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

where

返回一个张量,其中的元素根据conditioninputother中选择。

生成器

生成器

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

随机抽样

种子

设置生成随机数的种子为一个非确定性的随机数。

manual_seed

设置生成随机数的种子。

初始种子

返回用于生成随机数的初始种子,作为Python 长整型

get_rng_state

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

设置随机数生成器状态

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

torch.default_generator Returns the default CPU torch.Generator

bernoulli

从伯努利分布中绘制二元随机数(0 或 1)。

multinomial

返回一个张量,其中每一行包含从张量 input 对应行的多项分布(更严格的定义是多元的,更多细节请参考 torch.distributions.multinomial.Multinomial)中采样的 num_samples 个索引。

normal

返回一个由随机数组成的张量,这些随机数来自具有给定均值和标准差的独立正态分布。

泊松

返回一个与 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序列的引擎。

序列化

保存

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

加载

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

并行性

get_num_threads

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

设置线程数

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

get_num_interop_threads

返回用于CPU上互操作并行性的线程数(例如)。

set_num_interop_threads

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

本地禁用梯度计算

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

示例:

>>> 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)  # 这也可以作为一个函数使用
>>> 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。

数学运算

逐点操作

绝对值

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

绝对值

别名用于 torch.abs()

acos

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

arccos

别名用于 torch.acos()

acosh

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

arccosh

别名用于 torch.acosh()

add

otheralpha 缩放后加到 input 上。

addcdiv

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

addcmul

tensor1tensor2 进行逐元素相乘,将结果乘以标量 value 并将其加到 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

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

bitwise_and

计算 inputother 的按位与。

bitwise_or

计算 inputother 的按位或。

按位异或

计算 inputother 的按位异或。

bitwise_left_shift

计算 input 的左算术移位,移位位数为 other

bitwise_right_shift

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

ceil

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

clamp

input 中的所有元素限制在范围 [ min, max ] 内。

clip

别名用于 torch.clamp()

conj_physical

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

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

返回一个新的张量,使用 scalezero_pointquant_minquant_maxinput 中的数据按通道进行伪量化,通道由 axis 指定。

fake_quantize_per_tensor_affine

返回一个新的张量,该张量使用 input 中的数据进行伪量化,伪量化的参数包括 scalezero_pointquant_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}}.

梯度

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

imag

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

ldexp

input 乘以 2 ** other

lerp

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

lgamma

计算伽马函数在输入上的绝对值的自然对数。

log

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

log10

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

log1p

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

log2

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

logaddexp

输入的指数和的对数。

logaddexp2

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

logical_and

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

逻辑非

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

logical_or

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

逻辑异或

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

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 张量实数值的新张量。

倒数

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

余数

逐元素计算 Python 的取模运算

round

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

rsqrt

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

sigmoid

别名用于 torch.special.expit()

符号

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

sgn

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

signbit

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

sin

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

sinc

别名 torch.special.sinc()

sinh

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

softmax

别名 torch.nn.functional.softmax()

sqrt

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

平方

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

sub

input 中减去按 alpha 缩放的 other

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

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

aminmax

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

all

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

any

测试input中的任何元素是否评估为True

最大值

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

最小值

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

dist

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

logsumexp

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

均值

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

nanmean

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

中位数

返回input中值的中位数。

nanmedian

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

mode

返回一个namedtuple (values, indices),其中values是给定维度diminput张量每行的众数值,即在该行中出现次数最多的值,而indices是找到的每个众数值的索引位置。

norm

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

nansum

返回所有元素的和,将非数值(NaNs)视为零。

prod

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

quantile

计算沿维度 diminput 张量每行的第 q 个分位数。

nanquantile

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

std

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

std_mean

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

sum

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

唯一

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

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

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

isin

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

isinf

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

isposinf

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

isneginf

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

isnan

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

isreal

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

kthvalue

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

le

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

less_equal

别名用于 torch.le()

lt

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

less

别名用于 torch.lt()

最大值

计算 inputother 的逐元素最大值。

最小值

计算 inputother 的逐元素最小值。

fmax

计算 inputother 的逐元素最大值。

fmin

计算 inputother 的逐元素最小值。

ne

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

not_equal

别名用于 torch.ne()

排序

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

topk

返回给定input张量沿指定维度的前k个最大元素。

msort

input张量的第一个维度上的元素按值的升序进行排序。

光谱操作

stft

短时傅里叶变换 (STFT)。

istft

逆短时傅里叶变换。

bartlett_window

Bartlett 窗口函数。

blackman_window

布莱克曼窗函数。

hamming_window

汉明窗函数。

hann_window

汉恩窗函数。

kaiser_window

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

其他操作

atleast_1d

返回每个输入张量的零维度的1维视图。

atleast_2d

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

atleast_3d

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

bincount

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

block_diag

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

broadcast_tensors

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

broadcast_to

input 广播到形状 shape

broadcast_shapes

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

bucketize

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

cartesian_prod

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

cdist

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

克隆

返回 input 的副本。

组合

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

corrcoef

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

cov

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

cross

返回维度 diminputother 的向量的叉积。

cummax

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

cummin

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

cumprod

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

cumsum

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

diag

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

diag_embed

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

diagflat

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

对角线

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

diff

计算沿给定维度的第n个前向差分。

einsum

基于爱因斯坦求和约定,对输入的操作数元素的乘积沿指定维度求和。

flatten

input 通过重塑为一维张量来展平。

flip

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

fliplr

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

flipud

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

kron

计算克罗内克积,记为 \otimes,由 inputother 组成。

rot90

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

gcd

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

histc

计算张量的直方图。

直方图

计算张量中值的直方图。

histogramdd

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

meshgrid

创建由attr:tensors中的一维输入指定的坐标网格。

最小公倍数

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

logcumsumexp

返回在维度dim中,input元素的指数累积和的对数。

ravel

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

renorm

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

repeat_interleave

重复张量的元素。

roll

沿着给定的维度滚动张量 input

searchsorted

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

tensordot

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

trace

返回输入的二维矩阵对角线上元素的和。

tril

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

tril_indices

返回一个2-by-N张量中矩阵的下半部分索引,其中第一行包含所有索引的行坐标,第二行包含列坐标。

triu

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

triu_indices

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

unflatten

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

vander

生成一个范德蒙矩阵。

view_as_real

返回 input 的实数张量视图。

view_as_complex

返回一个复数张数的视图,视图的内容是input

resolve_conj

如果 input 的共轭位设置为 True,则返回一个新的具有具体共轭的 tensor,否则返回 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

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

cholesky_inverse

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

cholesky_solve

计算具有复数厄米特或实对称正定左端系统的线性方程组的解,已知其Cholesky分解。

dot

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

geqrf

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

ger

别名 torch.outer()

inner

计算一维张量的点积。

别名 torch.linalg.inv()

det

别名 torch.linalg.det()

logdet

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

slogdet

别名 torch.linalg.slogdet()

lu

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

lu_solve

返回线性系统 Ax=bAx = b 的LU求解,使用从 lu_factor() 获得的A的部分枢轴LU分解。

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

计算Householder矩阵的乘积与一般矩阵的矩阵-矩阵乘法。

outer

外积 inputvec2

pinverse

别名 torch.linalg.pinv()

qr

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

svd

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

svd_lowrank

返回矩阵、矩阵批次或稀疏矩阵 AA 的奇异值分解 (U, S, V),使得 AUdiag(S)VTA \approx U diag(S) V^T

pca_lowrank

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

lobpcg

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

trapz

别名 torch.trapezoid()

梯形积分

计算沿dim梯形法则

cumulative_trapezoid

沿 dim 累积计算 梯形法则

triangular_solve

求解具有方形上三角或下三角可逆矩阵 AA 和多个右端项 bb 的方程组。

vdot

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

Foreach 操作

警告

此API处于测试阶段,可能会在未来进行更改。 不支持前向模式自动微分。

_foreach_abs

对输入列表中的每个张量应用 torch.abs()

_foreach_abs_

对输入列表中的每个张量应用 torch.abs()

_foreach_acos

对输入列表中的每个张量应用 torch.acos()

_foreach_acos_

对输入列表中的每个张量应用 torch.acos()

_foreach_asin

对输入列表中的每个张量应用 torch.asin()

_foreach_asin_

对输入列表中的每个张量应用 torch.asin()

_foreach_atan

对输入列表中的每个张量应用 torch.atan()

_foreach_atan_

对输入列表中的每个张量应用 torch.atan()

_foreach_ceil

对输入列表中的每个张量应用 torch.ceil()

_foreach_ceil_

对输入列表中的每个张量应用 torch.ceil()

_foreach_cos

对输入列表中的每个张量应用 torch.cos()

_foreach_cos_

对输入列表中的每个张量应用 torch.cos()

_foreach_cosh

对输入列表中的每个张量应用 torch.cosh()

_foreach_cosh_

对输入列表中的每个张量应用 torch.cosh()

_foreach_erf

对输入列表中的每个张量应用 torch.erf()

_foreach_erf_

对输入列表中的每个张量应用 torch.erf()

_foreach_erfc

对输入列表中的每个张量应用 torch.erfc()

_foreach_erfc_

对输入列表中的每个张量应用 torch.erfc()

_foreach_exp

对输入列表中的每个张量应用 torch.exp()

_foreach_exp_

对输入列表中的每个张量应用 torch.exp()

_foreach_expm1

对输入列表中的每个张量应用 torch.expm1()

_foreach_expm1_

对输入列表中的每个张量应用 torch.expm1()

_foreach_floor

对输入列表中的每个张量应用 torch.floor()

_foreach_floor_

对输入列表中的每个张量应用 torch.floor()

_foreach_log

对输入列表中的每个张量应用 torch.log()

_foreach_log_

对输入列表中的每个张量应用 torch.log()

_foreach_log10

对输入列表中的每个张量应用 torch.log10()

_foreach_log10_

对输入列表中的每个张量应用 torch.log10()

_foreach_log1p

对输入列表中的每个张量应用 torch.log1p()

_foreach_log1p_

对输入列表中的每个张量应用 torch.log1p()

_foreach_log2

对输入列表中的每个张量应用 torch.log2()

_foreach_log2_

对输入列表中的每个张量应用 torch.log2()

_foreach_neg

对输入列表中的每个张量应用 torch.neg()

_foreach_neg_

对输入列表中的每个张量应用 torch.neg()

_foreach_tan

对输入列表中的每个张量应用 torch.tan()

_foreach_tan_

对输入列表中的每个张量应用 torch.tan()

_foreach_sin

对输入列表中的每个张量应用 torch.sin()

_foreach_sin_

对输入列表中的每个张量应用 torch.sin()

_foreach_sinh

对输入列表中的每个张量应用 torch.sinh()

_foreach_sinh_

对输入列表中的每个张量应用 torch.sinh()

_foreach_round

对输入列表中的每个张量应用 torch.round()

_foreach_round_

对输入列表中的每个张量应用 torch.round()

_foreach_sqrt

对输入列表中的每个张量应用 torch.sqrt()

_foreach_sqrt_

对输入列表中的每个张量应用 torch.sqrt()

_foreach_lgamma

对输入列表中的每个张量应用 torch.lgamma()

_foreach_lgamma_

对输入列表中的每个张量应用 torch.lgamma()

_foreach_frac

对输入列表中的每个张量应用 torch.frac()

_foreach_frac_

对输入列表中的每个张量应用 torch.frac()

_foreach_reciprocal

对输入列表中的每个张量应用 torch.reciprocal()

_foreach_reciprocal_

对输入列表中的每个张量应用 torch.reciprocal()

_foreach_sigmoid

对输入列表中的每个张量应用 torch.sigmoid()

_foreach_sigmoid_

对输入列表中的每个张量应用 torch.sigmoid()

_foreach_trunc

对输入列表中的每个张量应用 torch.trunc()

_foreach_trunc_

对输入列表中的每个张量应用 torch.trunc()

_foreach_zero_

对输入列表中的每个张量应用 torch.zero()

实用工具

compiled_with_cxx11_abi

返回 PyTorch 是否在 _GLIBCXX_USE_CXX11_ABI=1 的情况下构建

result_type

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

can_cast

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

promote_types

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

use_deterministic_algorithms

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

are_deterministic_algorithms_enabled

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

is_deterministic_algorithms_warn_only_enabled

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

设置确定性调试模式

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

get_deterministic_debug_mode

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

set_float32_matmul_precision

设置float32矩阵乘法的内部精度。

get_float32_matmul_precision

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

set_warn_always

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

is_warn_always_enabled

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

vmap

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

_assert

一个围绕Python的assert的包装器,它在符号上是可追踪的。

符号数字

class torch.SymInt(node)[源代码]

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

class torch.SymFloat(node)[源代码]

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

is_integer()[源代码]

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

class torch.SymBool(node)[源代码]

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

与常规的布尔值不同,常规的布尔运算符会强制额外的保护,而不是符号化地进行评估。请改用按位运算符来处理这种情况。

sym_float

用于浮点数转换的SymInt感知工具。

sym_int

用于整数转换的SymInt感知工具。

sym_max

SymInt-aware 的最大值实用工具。

sym_min

SymInt 感知的 max() 实用工具。

sym_not

用于逻辑否定的 SymInt 感知工具。

sym_ite

导出路径

警告

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

导出 生成的/exportdb/索引

控制流程

警告

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

cond

有条件地应用true_fnfalse_fn

优化

编译

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

torch.compile 文档

操作符标签

class torch.Tag

成员:

核心

数据依赖输出

动态输出形状

生成的

就地视图

需要固定步长顺序

非确定性位运算

非确定性种子

逐点

pt2_compliant_tag

视图复制

property name