• 文档 >
  • 火炬
快捷键

火炬 ¶

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

它有一个 CUDA 对应版本,允许您在具有计算能力>= 3.0 的 NVIDIA GPU 上运行您的张量计算。

张量 ¶

is_tensor

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

is_storage

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

is_complex

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

is_conj

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

is_floating_point

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

is_nonzero

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

set_default_dtype

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

get_default_dtype

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

set_default_device

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

get_default_device

获取默认的 torch.Tensordevice 上分配。

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 构建一个没有 autograd 历史记录的 tensor(也称为“叶子 tensor”,见 Autograd 机制)。

sparse_coo_tensor

在指定的 indices 处构建具有指定值的 COO(坐标)格式的稀疏张量

sparse_csr_tensor

在指定的 crow_indicescol_indices 处构建具有指定值的 CSR(压缩稀疏行)格式的稀疏张量

sparse_csc_tensor

在指定的 ccol_indicesrow_indices 处构建具有指定值的 CSC(压缩稀疏列)格式的稀疏张量

sparse_bsr_tensor

构建一个在指定 crow_indicescol_indices 的二维块上的 BSR(块压缩稀疏行)稀疏张量。

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 缓冲区协议的对象创建一个 1 维 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 取值。

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 的 2-D 张量。

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

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

cat

在指定维度上连接给定的张量序列 tensors

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 张量,该张量根据布尔掩码 mask 索引 input 张量,其中 mask 是一个 BoolTensor。

movedim

input 的维度移动到 source 的位置上。

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 的对角元素中,相对于 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

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

swapaxes

torch.transpose() 的别名

swapdims

torch.transpose() 的别名

t

预期 input 为<=2 维张量,并交换维度 0 和 1。

take

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

take_along_dim

input 中选取 1 维索引 indices 沿给定 dim 的值。

tensor_split

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

tile

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

transpose

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

unbind

移除张量维度。

unravel_index

将平面索引的张量转换为坐标张量的元组,这些坐标张量可以索引到指定形状的任意张量。

unsqueeze

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

vsplit

将具有两个或更多维度的张量 input 垂直分割成多个张量。

vstack

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

where

根据需要从 inputother 中选择元素,返回一个张量,具体取决于 condition

加速器 ¶

在 PyTorch 仓库中,我们将“加速器”定义为与 CPU 一起使用以加速计算的 torch.device 。这些设备使用异步执行方案,以 torch.Streamtorch.Event 作为它们执行同步的主要方式。我们还假设在给定的主机上一次只能有一个这样的加速器可用。这使得我们可以将当前加速器用作相关概念(如固定内存、Stream 设备类型、FSDP 等)的默认设备。

截至 today,加速器设备包括(不分先后)“CUDA”、“MTIA”、“XPU”、“MPS”、“HPU”和 PrivateUse1(许多设备不在 PyTorch 仓库本身中)。

PyTorch 生态系统中的许多工具使用 fork 来创建子进程(例如数据加载或操作内并行),因此尽可能延迟任何可能阻止进一步 fork 的操作是很重要的。在这里尤其重要,因为大多数加速器的初始化都有这种效果。在实践中,你应该记住,默认情况下检查 torch.accelerator.current_accelerator() 是一个编译时检查,因此总是 fork 安全的。相反,向此函数传递 check_available=True 标志或调用 torch.accelerator.is_available() 通常会导致后续 fork 失败。

一些后端提供了实验性的 opt-in 选项,以使运行时可用性检查 fork 安全。例如,当使用 CUDA 设备时,可以使用 PYTORCH_NVML_BASED_CUDA_CHECK=1

Stream

按照先进先出(FIFO)顺序异步执行相应任务的有序队列。

Event

查询并记录流状态,以识别或控制流之间的依赖关系并测量时间。

生成器 ¶

Generator

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

随机抽样

seed

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

manual_seed

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

initial_seed

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

get_rng_state

返回随机数生成器的状态,以 torch.ByteTensor 的形式。

set_rng_state

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

返回默认的 CPU torch.Generator

bernoulli

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

multinomial

返回一个张量,其中每行包含从多项式(更严格的定义是多元的,请参阅 torch.distributions.multinomial.Multinomial 获取更多详情)概率分布中采样的 num_samples 索引。

normal

返回一个张量,其中的随机数是从给定的均值和标准差的不同正态分布中抽取的。

poisson

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

rand

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

rand_like

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

randint

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

randint_like

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

randn

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

randn_like

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

randperm

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

原地随机采样

在张量上还定义了一些原地随机采样的函数。点击查看它们的文档:

  • torch.Tensor.bernoulli_() - torch.bernoulli() 的原地版本

  • torch.Tensor.cauchy_() - 从柯西分布中抽取的数字

  • torch.Tensor.exponential_() - 从指数分布中抽取的数字

  • torch.Tensor.geometric_() - 从几何分布中抽取的元素

  • torch.Tensor.log_normal_() - 对数正态分布的样本

  • torch.Tensor.normal_() - torch.normal() 的就地版本

  • 来自离散均匀分布的样本数

  • 来自连续均匀分布的样本数

准随机抽样

quasirandom.SobolEngine

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 模块等将工作发送到另一个线程,则它们将不起作用。

示例:

>>> 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。

数学运算 ¶

常量 ¶

inf

浮点正无穷大。别名 math.inf

nan

浮点数“非数字”值。此值不是一个合法的数字。 math.nan 的别名。

点操作符

abs

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

absolute

torch.abs() 的别名。

acos

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

arccos

torch.acos() 的别名

acosh

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

arccosh

torch.acosh() 的别名

add

other 加上 alpha 缩放的结果加到 input 上。

addcdiv

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

addcmul

tensor1 进行逐元素乘法,将结果乘以标量 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

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

bitwise_and

计算 inputother 的按位与。

bitwise_or

计算 inputother 的按位或。

bitwise_xor

计算 inputother 的按位异或。

bitwise_left_shift

计算对 input 进行 other 位左算术移位。

bitwise_right_shift

计算对 input 进行 other 位右算术移位。

ceil

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

clamp

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

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 的数据使用 scalezero_pointquant_minquant_max 进行伪量化。

fix

torch.trunc() 的别名。

float_power

input 提升到 exponent 的幂,逐元素,以双精度执行。

floor

返回一个新张量,包含 input 中元素的向下取整,即每个元素的最大整数。

floor_divide

fmod

应用 C++的 std::fmod 逐元素操作。

frac

计算每个元素的分数部分。

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

根据标量或张量 weight 对两个张量 start (由 input 给出)和 end 进行线性插值,并返回结果张量 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

input 中的 NaN 、正无穷和负无穷值分别替换为 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

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

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

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

amin

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

aminmax

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

all

测试 input 张量中所有元素是否都评估为 True。

any

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

max

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

min

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

dist

返回( input - other )的 p 范数

logsumexp

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

mean

nanmean

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

median

返回 input 中的值的中位数。

nanmedian

返回 input 中值的中间值,忽略 NaN 值。

mode

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

norm

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

nansum

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

prod

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

quantile

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

nanquantile

这是一种变体,它“忽略” NaN 的值,计算 q 的量数,仿佛 NaN 的值在 input 中不存在。

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

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

isin

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

isinf

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

isposinf

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

isneginf

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

isnan

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

isreal

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

kthvalue

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

le

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

less_equal

torch.le() 的别名

lt

计算元素级 input<other\text{input} < \text{other}

less

torch.lt() 的别名

maximum

计算元素-wise inputother 的最大值。

minimum

计算元素-wise inputother 的最小值。

fmax

计算元素-wise inputother 的最大值。

fmin

计算元素-wise inputother 的最小值。

ne

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

not_equal

torch.ne() 的别名

sort

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

topk

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

msort

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

光谱操作 ¶

stft

短时傅里叶变换(STFT)。

istft

逆短时傅里叶变换。

bartlett_window

巴特莱特窗口函数

blackman_window

布朗曼窗口函数

hamming_window

汉明窗口函数

hann_window

汉宁窗口函数

kaiser_window

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

其他操作 ¶

atleast_1d

返回每个输入张量的 1 维视图,其中没有零维。

atleast_2d

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

atleast_3d

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

bincount

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

block_diag

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

broadcast_tensors

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

broadcast_to

input 广播到 shape 的形状。

broadcast_shapes

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

bucketize

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

cartesian_prod

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

cdist

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

clone

返回 input 的副本。

combinations

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

corrcoef

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

cov

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

cross

返回 inputother 维度中向量的叉积。

cummax

返回一个 namedtuple (values, indices) ,其中 valuesinputdim 维度的元素累积最大值。

cummin

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

cumprod

返回 input 在维度 dim 上的元素累积乘积。

cumsum

返回 input 在维度 dim 上的元素累积和。

diag

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

diag_embed

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

diagflat

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

diagonal

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

diff

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

einsum

沿着使用爱因斯坦求和约定表示法指定的维度对输入 operands 的元素求和。

flatten

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

flip

沿给定轴在 dims 中对 n 维张量顺序进行反转。

fliplr

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

flipud

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

kron

计算由 inputother 表示的克罗内克积,记作 \otimes

rot90

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

gcd

计算元素-wise 的最大公约数(GCD) inputother

histc

计算张量的直方图。

histogram

计算张量中值的直方图。

histogramdd

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

meshgrid

根据 attr:tensors 中的 1D 输入创建坐标网格。

lcm

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

logcumsumexp

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

ravel

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

renorm

返回一个张量,其中每个沿维度 dim 的子张量都被归一化,使得子张量的 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

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

triu

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

triu_indices

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

unflatten

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

vander

生成 Vandermonde 矩阵。

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

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

baddbmm

执行矩阵 batch1 和矩阵 batch2 的批量矩阵-矩阵乘法。

bmm

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

chain_matmul

返回 NN 2-D 张量的矩阵乘积。

cholesky

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

cholesky_inverse

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

cholesky_solve

计算给定其 Cholesky 分解的复 Hermitian 或实对称正定 lhs 的线性方程组的解。

dot

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

geqrf

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

ger

torch.outer() 的别名。

inner

计算一维张量的点积。

inverse

torch.linalg.inv() 的别名。

det

torch.linalg.det() 的别名。

logdet

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

slogdet

torch.linalg.slogdet() 的别名。

lu

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

lu_solve

返回使用 A 的带部分主元 LU 分解的线性系统 Ax=bAx = b 的 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 分解,并返回一个包含张量的 namedtuple(Q, R),其中 input=QR\text{input} = Q R 是正交矩阵或正交矩阵批, RR 是上三角矩阵或上三角矩阵批。

svd

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

svd_lowrank

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

pca_lowrank

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

lobpcg

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

trapz

torch.trapezoid() 的别名

trapezoid

沿 dim 计算梯形规则。

cumulative_trapezoid

累计计算沿 dim 的梯形法则。

triangular_solve

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

vdot

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

每次操作 ¶

警告

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

_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 ,该类型不小于也不低于 type1 或 type2

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][source]

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

as_integer_ratio()[source][source]

将此整数表示为精确的整数比

返回类型:

tuple[torch.SymInt, int]

class torch.SymFloat(node)[source][source]

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

as_integer_ratio()[source][source]

将这个浮点数表示为精确的整数比

返回类型:

元组[int, int]

conjugate()[来源][来源] ¶

返回浮点数的复共轭。

返回类型:

SymFloat

hex()[来源][来源] ¶

返回浮点数的十六进制表示。

返回类型:

str

is_integer()[来源][来源] ¶

判断浮点数是否为整数。

class torch.SymBool(node)[source][source]

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

与常规 bool 不同,常规布尔运算将强制执行额外的守卫而不是符号评估。请使用位运算符来处理此情况。

sym_float

具有符号整数感知的浮点数转换实用工具。

sym_fresh_size

sym_int

具有符号整数感知的整数转换实用工具。

sym_max

具有符号整数感知的 max 函数,避免在 a < b 时分支。

sym_min

具有符号整数感知的 min()函数。

sym_not

基于符号整数感知的逻辑否定实用工具。

sym_ite

sym_sum

多元加法,对于长列表来说比迭代二进制加法计算更快。

导出路径 ¶

警告

此功能为原型,未来可能存在兼容性破坏的更改。

导出生成的/exportdb/index

控制流 ¶

警告

该功能是一个原型,未来可能会有不兼容的更改。

cond

条件性地应用 true_fn 或 false_fn。

优化 ¶

compile

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

torch.compile 文档

运算符标签 ¶

类 torch.Tag ¶

成员:

核心

数据依赖输出

动态输出形状

灵活布局

生成

内置视图

可能是别名或修改

需要修正步长顺序

非确定性的位运算

非确定性的随机种子

矢量运算

pt2 兼容标签

查看副本

属性名称¶

© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,主题由 Read the Docs 提供。

文档

查看 PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源