torch¶
torch 包包含用于多维的数据结构 张量,并定义对这些张量的数学运算。 此外,它还提供了许多实用程序,用于高效序列化 张量和任意类型,以及其他有用的实用程序。
它有一个 CUDA 对应项,使您能够运行张量计算 在计算能力 >= 3.0 的 NVIDIA GPU 上
Tensors¶
如果 obj 是 PyTorch 张量,则返回 True。 |
|
如果 obj 是 PyTorch 存储对象,则返回 True。 |
|
如果 的数据类型是复杂数据类型,即 、 和 之一,则返回 True。 |
|
如果 是共轭张量,即其共轭位设置为 True,则返回 True。 |
|
如果 的数据类型是浮点数据类型,即 、 、 和 之一,则返回 True 。 |
|
如果 是类型转换后不等于零的单元素张量,则返回 True。 |
|
将默认浮点 dtype 设置为 . |
|
将默认类型设置为 浮点张量类型 。 |
|
返回张量中的元素总数。 |
|
设置打印选项。 |
|
禁用 CPU 上的非正规浮点数。 |
创建任务¶
注意
随机采样创建操作列在 Random sampling 和
include:
您还可以与 In-place 随机采样方法一起使用
,以创建
具有从更广泛的
分布范围。
通过复制构造没有 autograd 历史记录的张量(也称为“叶张量”,请参阅 Autograd 机制)。 |
|
以 COO(rdinate) 格式构造一个稀疏张量,并在给定的 . |
|
转换为 Tensor。 |
|
将数据转换为张量,共享数据并尽可能保留 autograd 历史记录。 |
|
创建现有Torch的视图。具有指定 、 和 的 Tensor 。 |
|
从 |
|
返回一个填充了标量值 0 的张量,其形状由变量参数 定义。 |
|
返回一个填充有标量值 0 的张量,其大小与 相同。 |
|
返回一个填充了标量值 1 的张量,其形状由变量参数 定义。 |
|
返回一个填充了标量值 1 的张量,其大小与 相同。 |
|
返回大小为使用区间中的值,其中的公差从 start 开始。 |
|
返回大小为其中值从 到 与步骤 . |
|
创建一个 size 的一维张量,其值从 to 到 (包括 to )均匀分布。 |
|
创建一个大小的一维张量,其值与 |
|
返回一个二维张量,其中 1 在对角线上,在其他位置上为 0。 |
|
返回一个填充了未初始化数据的张量。 |
|
返回大小与 相同的未初始化张量。 |
|
使用指定的 和 和 填充未定义的数据创建张量。 |
|
创建一个大小为 的张量,其中填充了 。 |
|
返回一个大小与 fill with 相同大小的张量。 |
|
将浮点张量转换为具有给定比例和零点的量化张量。 |
|
将浮点张量转换为具有给定比例和零点的每通道量化张量。 |
|
通过对量化的 Tensor 进行反量化,返回 fp32 Tensor |
|
计算 中每个单元的 Heaviside 阶跃函数。 |
索引、切片、联接、更改运算¶
返回已变位且最后两个维度转置的张量的视图。 |
|
返回一个张量,其中包含 的所有非零元素的索引。 |
|
连接给定维度中的给定张量序列。 |
|
返回具有翻转共轭位的视图。 |
|
尝试将张量拆分为指定数量的块。 |
|
根据 ,将具有三个或更多维度的张量 (Splits) 深度划分为多个张量。 |
|
通过在 中水平堆叠张量来创建新的张量。 |
|
按顺序纵向堆叠张量(沿第三个轴)。 |
|
沿 dim 指定的轴收集值。 |
|
Splits ,根据 将具有一个或多个维度的张量水平拆分为多个张量。 |
|
水平顺序(逐列)堆叠张量。 |
|
返回一个新的张量,该张量使用其中的 LongTensor 条目沿维度为张量编制索引。 |
|
返回一个新的 1-D 张量,该张量根据布尔掩码(即 BoolTensor)为张量编制索引。 |
|
将 位置的尺寸移动到 中的位置。 |
|
返回一个新的 Tensor,该 Tensor 是 Tensor 的缩小版本。 |
|
返回原始张量的视图,其维度已排列。 |
|
返回一个张量,其数据和元素数与 相同,但具有指定的形状。 |
|
在给定索引处沿所选维度对张量进行切片。 |
|
沿 的对角线元素将张量的值嵌入到 中,相对于 和 。 |
|
将张量的值嵌入到给定的索引中。 |
|
将张量的值嵌入到给定维度中。 |
|
将张量中的所有值减少到张量中指定的索引。 |
|
将张量拆分为块。 |
|
返回删除了大小为 1 的所有维度的张量。 |
|
沿新维度连接一系列张量。 |
|
期望为 <= 2-D 张量并转置维度 0 和 1。 |
|
返回一个新张量,其中包含给定索引的元素。 |
|
从沿给定 的 1 维索引处选择值。 |
|
根据 指定的索引或截面数,将一个张量拆分为多个子张量,所有这些子张量都是 的视图,沿维度。 |
|
通过重复 的元素来构造张量。 |
|
返回一个张量,该张量是 的转置版本。 |
|
删除张量维度。 |
|
返回在指定位置插入维度大小为 1 的新张量。 |
|
根据 将具有两个或多个维度的张量垂直拆分为多个张量。 |
|
按顺序垂直(逐行)堆叠张量。 |
|
返回从 或 中选择的元素的张量,具体取决于 。 |
随机抽样¶
将用于生成随机数的种子设置为非确定性随机数。 |
|
设置用于生成随机数的种子。 |
|
返回用于生成 Python long 形式的随机数的初始种子。 |
|
将随机数生成器状态返回为Torch。ByteTensor 的 ByteTensor 中。 |
|
设置随机数生成器状态。 |
-
torch.
default_generator
返回默认的 CPU Torch。发电机¶
从伯努利分布中绘制二进制随机数(0 或 1)。 |
|
返回一个张量,其中每行都包含从位于相应行 tensor 中的多项式概率分布中采样的索引。 |
|
返回从给定平均值和标准差的单独正态分布中提取的随机数张量。 |
|
返回一个张量,其大小与从泊松分布中采样的每个元素相同,其中 rate 参数由相应的元素给出,即 |
|
返回一个张量,其中填充了区间上均匀分布的随机数 |
|
返回一个张量,其大小与在区间上均匀分布中填充的随机数相同 |
|
返回一个张量,其中填充了在 (含) 和 (不含) 之间均匀生成的随机整数。 |
|
返回一个与 Tensor 形状相同的张量,其中填充了在 (含) 和 (不包括) 之间均匀生成的随机整数。 |
|
返回一个张量,该张量填充了均值为 0 且方差为 1 的正态分布中的随机数(也称为标准正态分布)。 |
|
返回一个大小相同的张量,该张量填充了来自均值为 0 且方差为 1 的正态分布中的随机数。 |
|
返回整数的随机排列 from to 。 |
就地随机采样¶
在 Tensor 上还定义了一些更多的就地随机采样函数。单击以参考其文档:
准随机采样¶
排比¶
返回用于并行化 CPU 操作的线程数 |
|
设置用于 CPU 上的内部操作并行性的线程数。 |
|
返回用于 CPU 上的操作间并行性的线程数(例如 |
|
设置用于互操作并行度的线程数(例如 |
在本地禁用梯度计算¶
上下文管理器 、
和
有助于在本地禁用和启用
梯度计算。有关的更多详细信息,请参阅本地禁用梯度计算
它们的用途。这些上下文管理器是线程本地的,因此它们不会
work 如果你使用模块将 work 发送到另一个线程,等等。
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
禁用梯度计算的上下文管理器。 |
|
启用梯度计算的 context-manager 来启用梯度计算。 |
|
将梯度计算设置为 on 或 off 的 context-manager。 |
|
如果当前启用了 grad 模式,则返回 True。 |
|
启用或禁用推理模式的上下文管理器 |
|
如果当前启用了推理模式,则返回 True。 |
数学运算¶
Pointwise Ops¶
计算 中每个元素的绝对值。 |
|
计算 中每个元素的反余弦值。 |
|
返回一个具有 的元素的反双曲余弦的新张量。 |
|
将 、缩放比例为 的 添加到 。 |
|
执行 by 的元素级除法,将结果乘以标量,然后将其添加到 。 |
|
执行 by 的元素乘法,将结果乘以标量,然后加到 。 |
|
计算给定张量的元素角度(以弧度为单位)。 |
|
返回一个新张量,其中包含 的元素的反正弦值。 |
|
返回一个新张量,其中包含 的元素的反双曲正弦值。 |
|
返回一个具有 元素的反正切值的新张量。 |
|
返回一个具有 的元素的反双曲正切的新张量。 |
|
元素反正切考虑到象限。 |
|
计算给定输入张量的按位 NOT。 |
|
计算 和 的按位 AND 。 |
|
计算 和 的按位 OR 。 |
|
计算 和 的按位 XOR 。 |
|
计算 by bits 的左算术移位。 |
|
计算按位的正确算术移位。 |
|
返回一个新的张量,其中元素的 ceil 为 ,大于或等于每个元素的最小整数。 |
|
计算给定张量的元素共轭。 |
|
按元素创建一个大小为 和 符号 的新浮点张量。 |
|
返回一个新张量,其元素的余弦值为 。 |
|
返回一个具有 元素的双曲余弦值的新张量。 |
|
返回一个新的张量,其中包含从以度为单位的角度转换为弧度的每个元素。 |
|
将输入的每个元素除以 的相应元素。 |
|
返回一个新张量,其 input tensor 的元素是指数。 |
|
返回一个新的张量,其中每个通道使用 、 和 、 在 指定的通道上对 数据进行假量化。 |
|
返回一个新的张量,其中数据使用 、 和 进行假量化。 |
|
在 element 上提高到 , 的幂,精度为双倍精度。 |
|
返回一个新张量,其中元素的下限为 ,是小于或等于每个元素的最大整数。 |
|
逐个入口应用 C++ 的 std::fmod。 |
|
计算 中每个元素的小数部分。 |
|
分解为尾数和指数张量,使得 |
|
估计函数的梯度在一个或多个维度中使用二阶精确中心差分方法。 |
|
返回包含张量的虚数值的新张量。 |
|
乘以 2**:attr:other。 |
|
对两个张量(由 给出)进行线性插值,并基于标量或张量,并返回结果张量。 |
|
计算 上 的 gamma 函数绝对值的自然对数。 |
|
返回一个具有 元素的自然对数的新张量。 |
|
返回一个新的张量,其对数为 的 以 的 10 为底的元素。 |
|
返回自然对数为 (1 + ) 的新张量。 |
|
返回一个新的张量,其对数为 以 的 2 为底的元素。 |
|
输入的幂和的对数。 |
|
以 2 为基数的输入的幂数之和的对数。 |
|
计算给定输入张量的元素级逻辑 AND。 |
|
计算给定 input 张量的元素级逻辑 NOT。 |
|
计算给定输入张量的元素级逻辑 OR。 |
|
计算给定输入张量的元素级逻辑 XOR。 |
|
给定直角三角形的边,返回其斜边。 |
|
乘以 。 |
|
将 、 中的正无穷大和负无穷大值分别替换为 、 和 中指定的值。 |
|
返回一个元素为 负数的新张量。 |
|
返回 towards 之后的下一个浮点值 , elementwise。 |
|
返回。 |
|
获取 with 中每个元素的幂,并返回包含结果的张量。 |
|
对 4D (NCHW) 量化张量应用批量归一化。 |
|
对由多个输入平面组成的输入量化张量应用 1D 最大池化。 |
|
将 2D 最大池化应用于由多个输入平面组成的输入量化张量。 |
|
返回一个新的张量,其中每个元素都从以弧度为单位的角度转换为度数。 |
|
返回一个包含张量实数值的新张量。 |
|
返回一个新张量,其中包含 的元素的倒数 |
|
按入口计算 Python 的模运算。 |
|
将 的元素舍入到最接近的整数。 |
|
返回一个新的张量,其中包含 的每个元素的平方根的倒数。 |
|
返回一个带有 元素符号的新张量。 |
|
此函数是 torch.sign() 对复杂张量的扩展。 |
|
测试每个元素是否设置了其符号位(小于零)。 |
|
返回一个新张量,其中包含 的元素的正弦值。 |
|
返回一个具有 元素的双曲正弦值的新张量。 |
|
返回一个具有 元素的平方根的新张量。 |
|
返回一个新张量,其元素为 的平方。 |
|
从 中减去 、缩放 、 。 |
|
返回一个新张量,其元素的正切值为 。 |
|
返回一个具有 元素的双曲正切的新张量。 |
|
的别名 |
|
返回一个新的张量,其中包含 的元素的截断整数值。 |
|
减少操作¶
返回张量中所有元素的最大值的索引。 |
|
返回展平张量的最小值或沿维度的索引 |
|
返回给定 dimension(s) 中张量的每个切片的最大值。 |
|
返回给定 dimension(s) 中张量的每个切片的最小值。 |
|
计算张量的最小值和最大值。 |
|
测试 中的所有元素是否计算结果都为 True。 |
|
测试 中的任何元素是否计算为 True。 |
|
返回张量中所有元素的最大值。 |
|
返回张量中所有元素的最小值。 |
|
返回 ( |
|
返回给定 dimension 中张量的每一行的指数求和对数。 |
|
返回张量中所有元素的平均值。 |
|
计算沿指定维度的所有非 NaN 元素的平均值。 |
|
返回 中值的中位数。 |
|
返回 中值的中位数,忽略值。 |
|
返回一个命名元组,其中 是给定维度中张量的每一行的模式值,即该行中最常出现的值,并且是找到的每个模式值的索引位置。 |
|
返回给定张量的矩阵范数或向量范数。 |
|
返回所有元素的总和,将非数字 (NaN) 视为零。 |
|
返回张量中所有元素的乘积。 |
|
计算沿 dimension . 的每行张量的第 q 个分位数。 |
|
如果为 ,则将使用 Bessel 的校正。 |
|
如果为 ,则 Bessel 校正将用于计算标准差。 |
|
返回张量中所有元素的总和。 |
|
返回输入张量的唯一元素。 |
|
从每组连续的等效元素中消除除第一个元素之外的所有元素。 |
|
如果为 ,则将使用 Bessel 的校正。 |
|
如果为 ,则 Bessel 的校正将用于计算方差。 |
|
计算张量中沿给定 的非零值的数量。 |
比较操作¶
此函数检查 all 是否满足条件: |
|
返回沿给定维度按值升序对张量进行排序的索引。 |
|
计算元素相等性 |
|
|
|
计算元素。 |
|
计算元素。 |
|
返回一个新的张量,其中包含布尔元素,表示 的每个元素是否“接近”的相应元素 。 |
|
返回一个新的张量,其中包含布尔元素,表示每个元素是否为有限。 |
|
测试 的每个元素是否都在 中。 |
|
测试 的每个元素是否为无限(正或负无穷大)。 |
|
测试 的每个元素是否为正无穷大。 |
|
测试 的每个元素是否为负无穷大。 |
|
返回一个新的张量,其中包含布尔元素,表示 的每个元素是否为 NaN。 |
|
返回一个新的张量,其中包含布尔元素,表示 的每个元素是否为实值。 |
|
返回一个 namedtuple,其中 是给定维度中张量的每一行的第 个最小元素。 |
|
计算元素。 |
|
计算元素。 |
|
计算 和 的元素最大值。 |
|
计算 和 的元素最小值。 |
|
计算 和 的元素最大值。 |
|
计算 和 的元素最小值。 |
|
计算元素。 |
|
沿给定维度按值升序对张量的元素进行排序。 |
|
返回给定张量沿给定维度的最大元素。 |
|
沿张量的第一个维度按值升序对张量的元素进行排序。 |
Spectral Ops¶
短时傅里叶变换 (STFT)。 |
|
逆短时傅里叶变换。 |
|
Bartlett 窗口函数。 |
|
Blackman 窗口函数。 |
|
汉明窗函数。 |
|
Hann 窗口函数。 |
|
使用 window length 和 shape parameter 计算 Kaiser 窗口。 |
其他操作¶
返回每个输入张量的一维视图,维度为零。 |
|
返回每个输入张量的二维视图,维度为零。 |
|
返回每个输入张量的 3 维视图,维度为零。 |
|
计算非负 int 数组中每个值的频率。 |
|
从提供的张量创建块对角矩阵。 |
|
根据 Broadcasting 语义广播给定的 Tensor。 |
|
广播到形状 。 |
|
返回 中每个值所属的存储桶的索引,其中存储桶的边界由 设置。 |
|
对给定的张量序列进行笛卡尔积。 |
|
对两个行向量集合的每对之间的 p-norm 距离进行批处理。 |
|
返回 的副本。 |
|
计算长度的组合给定张量的 Tensor 中。 |
|
估计矩阵给定的变量的 Pearson 乘积矩相关系数矩阵,其中行是变量,列是观测值。 |
|
估计矩阵给定的变量的协方差矩阵,其中 rows 是变量,columns 是观测值。 |
|
返回向量在维度 和 中的叉积。 |
|
返回一个 namedtuple,其中 是维度 中的元素的累积最大值。 |
|
返回一个 namedtuple,其中 是维度 中的元素的累积最小值。 |
|
返回维度 中 的元素的累积乘积。 |
|
返回维度 中的元素的累积总和 。 |
|
|
|
创建一个张量,其某些 2D 平面(由 和 指定)的对角线由 填充。 |
|
|
|
返回 的部分视图,其中包含相对于形状的对角线元素,并作为维度附加到形状的末尾。 |
|
计算沿给定维度的第 n 个正向差值。 |
|
对输入元素的乘积沿使用基于 Einstein 求和约定的表示法指定的维度求和。 |
|
通过将其重塑为一维张量来展平。 |
|
反转沿给定轴的 n-D 张量的顺序(以 dims 为单位)。 |
|
向左/向右翻转张量,返回一个新的张量。 |
|
向上/向下翻转张量,返回一个新的张量。 |
|
计算 Kronecker 乘积,表示为、 的 和 。 |
|
在 dims axis 指定的平面上将 n-D 张量旋转 90 度。 |
|
计算 和 的元素最大公约数 (GCD)。 |
|
计算张量的直方图。 |
|
计算张量中值的直方图。 |
|
计算张量中值的多维直方图。 |
|
创建由 attr:tensors 中的 1D 输入指定的坐标网格。 |
|
计算 和 的元素最小公倍数 (LCM)。 |
|
返回维度 中元素的幂的累积总和的对数。 |
|
返回一个连续的扁平化张量。 |
|
返回一个张量,其中沿维度的每个子张量都被归一化,使得子张量的 p-norm 低于该值 |
|
重复张量的元素。 |
|
沿给定维度滚动张量。 |
|
从最内层维度中查找索引,这样,如果 中的相应值插入到索引之前,则在排序时,将保留 中相应最内层维度的顺序。 |
|
返回 a 和 b 在多个维度上的收缩。 |
|
返回输入 2-D 矩阵的对角线元素之和。 |
|
返回矩阵的下三角部分(二维张量)或矩阵批次,结果张量的其他元素设置为 0。 |
|
返回 2×N 张量中 -by- 矩阵的下三角部分的索引,其中第一行包含所有索引的行坐标,第二行包含列坐标。 |
|
返回矩阵(二维张量)或矩阵批次的上三角部分,结果张量的其他元素设置为 0。 |
|
返回 2×N 张量中 by 矩阵的上三角部分的索引,其中第一行包含所有索引的行坐标,第二行包含列坐标。 |
|
生成 Vandermonde 矩阵。 |
|
返回作为实际张量的视图。 |
|
返回 作为复杂张量的视图。 |
|
如果 的共轭位设置为 True,则返回具有物化共轭的新张量,否则返回 。 |
|
如果 的负位设置为 True,则返回具有具体化否定的新张量,否则返回 。 |
BLAS 和 LAPACK 操作¶
执行存储在 和 中的矩阵的批量矩阵-矩阵积,并减小了加法步长(所有矩阵乘法都沿第一维累积)。 |
|
执行矩阵 和 的矩阵乘法。 |
|
执行矩阵和向量 的矩阵-向量乘积。 |
|
执行向量的外积,并将其添加到矩阵 中。 |
|
执行 和 中的矩阵的批量矩阵-矩阵乘积。 |
|
执行存储在 和 中的矩阵的批量矩阵-矩阵积。 |
|
返回2-D 张量。 |
|
计算对称正定矩阵的 Cholesky 分解或对称正定矩阵的批次。 |
|
计算对称正定矩阵的逆矩阵使用其 Cholesky 因子:返回 matrix 。 |
|
求解具有正半定矩阵的线性方程组,该矩阵在给定其 Cholesky 因子矩阵的情况下进行逆化. |
|
计算两个 1D 张量的点积。 |
|
计算实方阵的特征值和特征向量。 |
|
这是一个用于直接调用 LAPACK 的 geqrf 的低级函数。 |
|
计算 1D 张量的点积。 |
|
计算方阵或方阵批次的对数行列式。 |
|
计算满秩矩阵的最小二乘法和最小范数问题的解大小和一个矩阵大小. |
|
计算矩阵或矩阵批次的 LU 因式分解。 |
|
将数据解压缩并从张量的 LU 分解为张量 和 排列张量,以便 。 |
|
两个张量的矩阵积。 |
|
返回 2-D 张量的数值秩。 |
|
执行矩阵 和 的矩阵乘法。 |
|
执行矩阵和向量 的矩阵-向量乘积。 |
|
计算 Householder 矩阵与一般矩阵的乘积的矩阵乘法。 |
|
的外积 和 。 |
|
计算矩阵或一批矩阵的 QR 分解,并返回张量的命名元组 (Q, R),使得 |
|
此函数返回线性方程组的解,由和 A 的 LU 因式分解,以便作为命名二元组解决方案 LU。 |
|
计算矩阵或矩阵批次的奇异值分解。 |
|
返回矩阵、矩阵批次或稀疏矩阵的奇异值分解 |
|
对低秩矩阵、此类矩阵的批次或稀疏矩阵执行线性主成分分析 (PCA)。 |
|
此函数返回实数对称或复数埃尔米特矩阵或其批次的特征值和特征向量,由命名元组(特征值、特征向量)表示。 |
|
使用无矩阵 LOBPCG 方法查找对称正定广义特征值问题的 k 个最大(或最小)特征值和相应的特征向量。 |
|
沿 计算梯形规则 。 |
|
沿 累积计算梯形规则。 |
|
求解具有平方上三角或下三角可逆矩阵的方程组和多个右侧. |
|
计算两个 1D 张量的点积。 |
公用事业¶
返回 PyTorch 是否是使用 _GLIBCXX_USE_CXX11_ABI=1 构建的 |
|
确定类型提升文档中描述的 PyTorch 强制转换规则是否允许类型转换。 |
|
设置 PyTorch 操作是否必须使用 “确定性” 算法。 |
|
如果全局确定性标志处于打开状态,则返回 True。 |
|
如果全局确定性标志设置为 warn only,则返回 True。 |
|
设置确定性操作的调试模式。 |
|
返回确定性操作的调试模式的当前值。 |
|
当此标志为 False (默认) 时,某些 PyTorch 警告可能每个进程只出现一次。 |
|
如果打开了全局 warn_always 标志,则返回 True。 |
|
Python 的 assert 的包装器,可符号地跟踪。 |