Torch¶
torch包包含了多维张量的数据结构,并定义了在这些张量上进行的数学运算。此外,它还提供了许多实用工具,用于高效地序列化张量和任意类型,以及其他有用的工具。
它有一个CUDA版本,可以让你在计算能力 >= 3.0 的 NVIDIA GPU 上运行你的张量计算。
张量¶
如果 obj 是一个 PyTorch 张量,则返回 True。 |
|
如果obj是PyTorch存储对象,则返回True。 |
|
如果数据类型是复数数据类型,即其中之一 |
|
如果 |
|
如果数据类型为 |
|
如果 |
|
将默认浮点数类型设置为 |
|
获取当前默认的浮点数 |
|
将默认 |
|
获取默认的 |
|
返回 |
|
设置打印选项。 |
|
禁用CPU上的非正规浮点数。 |
创建操作¶
注意
随机采样创建操作列在 随机采样 下,包括:
torch.rand()
torch.rand_like()
torch.randn()
torch.randn_like()
torch.randint()
torch.randint_like()
torch.randperm()
你也可以使用 torch.empty() 和 原地随机采样
方法来创建从更广泛的分布中采样的 torch.Tensor。
通过复制 |
|
使用指定的值在给定的 |
|
使用指定的值在给定的 |
|
使用指定的值在给定的 |
|
构造一个BSR(块压缩稀疏行)中的稀疏张量,在给定的 |
|
使用指定的二维块在给定的 |
|
将 |
|
将 |
|
创建一个现有torch.Tensor |
|
创建一个由内存映射文件支持的存储的CPU张量。 |
|
从 |
|
将外部库中的张量转换为 |
|
从实现Python缓冲协议的对象创建一个一维的 |
|
返回一个用标量值0填充的张量,其形状由变量参数 |
|
返回一个与标量值0相同且大小与 |
|
返回一个用标量值1填充的张量,其形状由变量参数 |
|
返回一个与标量值1相同且大小与 |
|
返回大小为 的 1-D 张量,值从区间 |
|
返回大小为 的一维张量,值从 |
|
创建一个大小为 |
|
创建一个大小为 |
|
返回一个二维张量,对角线上为1,其他位置为0。 |
|
返回一个填充了未初始化数据的张量。 |
|
返回一个与 |
|
创建一个具有指定 |
|
创建一个大小为 |
|
返回一个与 |
|
将一个浮点张量转换为具有给定缩放因子和零点的量化张量。 |
|
将一个浮点张量转换为具有给定比例尺和零点的按通道量化张量。 |
|
返回一个通过反量化量化张量得到的fp32张量 |
|
为 |
索引、切片、连接、变异操作¶
返回一个张量的视图,该视图经过共轭处理并且最后两个维度进行了转置。 |
|
返回一个包含 |
|
在给定的维度上连接给定的 |
|
别名为 |
|
别名为 |
|
返回一个视图,其中 |
|
尝试将张量分割成指定数量的块。 |
|
将 |
|
通过水平堆叠 |
|
沿序列深度(沿第三个轴)堆叠张量。 |
|
沿由dim指定的轴收集值。 |
|
将 |
|
按序列水平(列方向)堆叠张量。 |
|
请参阅 |
|
请参阅 |
|
请参阅 |
|
返回一个新的张量,该张量沿维度 |
|
返回一个新的1-D张量,该张量根据布尔掩码 |
|
将维度 |
|
别名为 |
|
返回一个新的张量,它是 |
|
与 |
|
返回原始张量 |
|
返回一个与 |
|
别名为 |
|
沿选定维度在给定索引处切片 |
|
非原位版本的 |
|
将 |
|
将 |
|
将 |
|
非原位版本的 |
|
将张量分割成块。 |
|
返回一个移除了所有大小为1且指定维度为 |
|
沿着新维度连接一系列张量。 |
|
别名为 |
|
别名为 |
|
期望 |
|
返回一个新张量,其中包含在给定索引处的 |
|
从 |
|
将张量沿维度 |
|
通过重复 |
|
返回一个张量,它是 |
|
移除一个张量维度。 |
|
将一个扁平索引的张量转换为一个坐标张量元组,该元组可以对指定形状的任意张量进行索引。 |
|
返回一个新的张量,在指定位置插入一个大小为一的维度。 |
|
将 |
|
按垂直顺序(逐行)堆叠张量。 |
|
根据 |
随机采样¶
为所有设备上的随机数生成设置种子,以一个非确定性的随机数。 |
|
为所有设备生成随机数设置种子。 |
|
返回生成随机数的初始种子作为Python long。 |
|
返回随机数生成器的状态为torch.ByteTensor。 |
|
设置随机数生成器的状态。 |
- torch.default_generator Returns the default CPU torch.Generator¶
从伯努利分布中抽取二进制随机数(0 或 1)。 |
|
返回一个张量,其中每一行包含从多项式(更严格的定义是多变量,请参阅 torch.distributions.multinomial.Multinomial 以获取更多详细信息)概率分布中采样的 |
|
返回一个张量,其中包含从具有给定均值和标准差的独立正态分布中抽取的随机数。 |
|
返回一个与 |
|
返回一个用区间上的均匀分布随机数填充的张量 |
|
返回一个与 |
|
返回一个填充了在 |
|
返回一个与张量 |
|
返回一个填充有来自均值为0和方差为1(也称为标准正态分布)的正态分布随机数的张量。 |
|
返回一个与 |
|
返回从 |
原地随机采样¶
还有一些在张量上定义的原地随机采样函数。点击链接以参考它们的文档:
torch.Tensor.cauchy_()- 从柯西分布中抽取的数字torch.Tensor.exponential_()- 从指数分布中抽取的数字torch.Tensor.geometric_()- 从几何分布中抽取的元素torch.Tensor.log_normal_()- 对数正态分布的样本torch.Tensor.normal_()- 原地版本的torch.normal()torch.Tensor.random_()- 从离散均匀分布中采样的数字torch.Tensor.uniform_()- 从连续均匀分布中采样的数字
准随机采样¶
The |
序列化¶
将一个对象保存到磁盘文件中。 |
|
从文件中加载使用 |
并行处理¶
返回用于并行化CPU操作的线程数 |
|
设置用于CPU上操作内并行性的线程数。 |
|
返回用于CPU上跨操作并行性的线程数(例如: |
|
设置用于互操作并行性的线程数(例如。 |
局部禁用梯度计算¶
上下文管理器 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
禁用梯度计算的上下文管理器。 |
|
启用梯度计算的上下文管理器。 |
|
上下文管理器,用于设置梯度计算的开启或关闭。 |
|
如果当前启用了梯度模式,则返回True。 |
|
上下文管理器,用于启用或禁用推理模式。 |
|
如果当前启用了推理模式,则返回True。 |
数学运算¶
逐元素运算¶
计算 |
|
别名为 |
|
计算 |
|
别名为 |
|
返回一个新的张量,其中包含 |
|
别名为 |
|
将 |
|
对 |
|
对 |
|
计算给定 |
|
返回一个新的张量,其中包含 |
|
别名为 |
|
返回一个新的张量,其中包含 |
|
别名为 |
|
返回一个新的张量,其中包含 |
|
别名为 |
|
返回一个新的张量,其中包含 |
|
别名为 |
|
逐元素反正切值计算,并考虑象限。 |
|
别名为 |
|
计算给定输入张量的按位NOT。 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
返回一个新的张量,其中包含 |
|
别名为 |
|
计算给定 |
|
创建一个新的浮点张量,其大小为 |
|
返回一个新的张量,其中包含 |
|
返回一个新的张量,其中包含 |
|
返回一个新的张量,其中 |
|
将输入 |
|
别名为 |
|
别名为 |
|
别名为 |
|
返回一个新的张量,其中包含输入张量 |
|
别名为 |
|
返回一个新的张量,其中的数据在 |
|
返回一个新的张量,其中的数据使用 |
|
别名为 |
|
将 |
|
返回一个新的张量,其中包含 |
|
逐元素应用C++的 std::fmod 函数。 |
|
计算 |
|
将 |
|
估计函数在一维或多维中的梯度 使用 二阶精确中心差分法 以及边界处的一阶或二阶估计。 |
|
返回一个新的张量,包含 |
|
将 |
|
对两个张量 |
|
计算伽玛函数绝对值的自然对数在 |
|
返回一个新的张量,其中包含 |
|
返回一个新的张量,其中包含 |
|
返回一个新的张量,其中包含 (1 + |
|
返回一个新的张量,其中包含 |
|
输入的指数和的对数。 |
|
以2为底的输入指数和的对数。 |
|
计算给定输入张量的元素级逻辑与。 |
|
计算给定输入张量的元素级逻辑非。 |
|
计算给定输入张量的元素级逻辑或。 |
|
计算给定输入张量的元素级逻辑异或。 |
|
给定一个直角三角形的两条直角边,返回其斜边。 |
|
别名为 |
|
将 |
|
别名为 |
|
将 |
|
返回一个新的张量,其中包含 |
|
别名为 |
|
返回 |
|
返回 |
|
对 |
|
对4D(NCHW)量化张量应用批归一化。 |
|
对由多个输入平面组成的输入量化张量应用一维最大池化。 |
|
对由多个输入平面组成的输入量化张量应用2D最大池化。 |
|
返回一个新的张量,其中 |
|
返回一个包含 |
|
返回一个新的张量,其元素是 |
|
计算 Python的取模运算 逐元素。 |
|
将 |
|
返回一个新的张量,其中每个元素是 |
|
返回一个新的张量,其中元素的符号与 |
|
此函数是torch.sign()对复数张量的扩展。 |
|
测试 |
|
返回一个新的张量,其中包含 |
|
别名为 |
|
返回一个新的张量,其中包含 |
|
返回一个新的张量,其中包含 |
|
返回一个新的张量,其中包含 |
|
从 |
|
别名为 |
|
返回一个新的张量,其中包含 |
|
返回一个新的张量,其中包含 |
|
别名为 |
|
返回一个新的张量,其中包含元素 |
|
减少操作¶
返回所有元素在 |
|
返回展平张量或沿某个维度的最小值的索引。 |
|
返回给定维度 |
|
返回给定维度的 |
|
计算 |
|
测试 |
|
检查 |
|
返回 |
|
返回 |
|
返回 ( |
|
返回给定维度 |
|
返回 |
|
计算指定维度上所有 non-NaN 元素的平均值。 |
|
返回 |
|
返回 |
|
返回一个命名元组 |
|
返回给定张量的矩阵范数或向量范数。 |
|
返回所有元素的总和,将非数字(NaNs)视为零处理。 |
|
返回 |
|
计算 |
|
这是 |
|
在指定的维度 |
|
计算在由 |
|
返回 |
|
返回输入张量的唯一元素。 |
|
消除每个连续相同元素组中的所有元素,只保留第一个元素。 |
|
计算在由 |
|
计算在由 |
|
计算张量 |
比较运算符¶
此函数检查 |
|
返回沿给定维度按值升序排序的张量的索引。 |
|
计算元素级别的相等性 |
|
|
|
计算每个元素。 |
|
别名为 |
|
计算每个元素。 |
|
别名为 |
|
返回一个新的张量,其中的布尔元素表示 |
|
返回一个包含布尔元素的新张量,表示每个元素是否为finite。 |
|
测试 |
|
测试 |
|
测试 |
|
测试 |
|
返回一个新的张量,其中的布尔元素表示 |
|
返回一个新的张量,其中的布尔元素表示 |
|
返回一个命名元组 |
|
计算每个元素。 |
|
别名为 |
|
计算每个元素。 |
|
别名为 |
|
计算 |
|
计算 |
|
计算 |
|
计算 |
|
计算每个元素。 |
|
别名为 |
|
按值对 |
|
返回给定维度上最大的 |
|
按值对 |
谱运算¶
短时傅里叶变换(STFT)。 |
|
短时傅里叶逆变换。 |
|
巴特利特窗函数。 |
|
布莱克曼窗函数。 |
|
汉明窗函数。 |
|
汉明窗函数。 |
|
计算长度为 |
其他操作¶
返回每个输入张量的零维视图的一维表示。 |
|
返回每个输入张量的二维视图,其中维度为零。 |
|
返回每个输入张量的三维视图,其中维度为零。 |
|
计算非负整数数组中每个值的频率。 |
|
从提供的张量创建一个块对角矩阵。 |
|
根据广播语义广播给定的张量。 |
|
将 |
|
类似于 |
|
返回每个值在 |
|
对给定的张量序列进行笛卡尔积运算。 |
|
计算两个行向量集合中每对之间的批量p-范数距离。 |
|
返回 |
|
计算给定张量长度为的所有组合。 |
|
估计由 |
|
估计由 |
|
返回维度为 |
|
返回一个命名元组 |
|
返回一个命名元组 |
|
返回维度 |
|
返回维度 |
|
|
|
创建一个张量,其特定2D平面(由 |
|
|
|
返回一个部分视图,其中包含 |
|
计算给定维度上的第n阶前向差分。 |
|
根据爱因斯坦求和约定的表示法,沿指定维度对输入 |
|
将 |
|
沿着给定的维度轴反转n维张量的顺序。 |
|
在左/右方向上翻转张量,返回一个新的张量。 |
|
在上下方向上翻转张量,返回一个新的张量。 |
|
计算克罗内克积,记作, |
|
将一个n维张量在由dims轴指定的平面上旋转90度。 |
|
计算 |
|
计算张量的直方图。 |
|
计算张量中值的直方图。 |
|
计算张量中值的多维直方图。 |
|
创建由1D输入在attr:张量指定的坐标网格。 |
|
计算 |
|
返回维度 |
|
返回一个连续的展平张量。 |
|
返回一个张量,其中沿着维度 |
|
重复张量的元素。 |
|
沿给定维度滚动张量 |
|
找到 |
|
返回a和b在多个维度上的收缩结果。 |
|
返回输入2-D矩阵对角线元素的和。 |
|
返回矩阵(2-D张量)或矩阵批次的下三角部分 |
|
返回一个 |
|
返回矩阵(2-D张量)或一批矩阵的上三角部分 |
|
返回一个2乘3矩阵的上三角部分的索引,在一个2乘N的张量中,其中第一行包含所有索引的行坐标,第二行包含列坐标。 |
|
在多个维度上扩展输入张量的一个维度。 |
|
生成一个范德蒙矩阵。 |
|
返回 |
|
返回 |
|
如果 |
|
如果 |
BLAS和LAPACK操作¶
对存储在 |
|
对矩阵 |
|
执行矩阵 |
|
执行向量 |
|
对 |
|
对存储在 |
|
返回 个二维张量的矩阵乘积。 |
|
计算对称正定矩阵的Cholesky分解或一批对称正定矩阵的Cholesky分解。 |
|
计算给定其Cholesky分解的复数Hermitian矩阵或实对称正定矩阵的逆。 |
|
计算具有复数Hermitian或实对称正定左侧的线性方程组的解,给定其Cholesky分解。 |
|
计算两个一维张量的点积。 |
|
这是一个用于直接调用LAPACK的geqrf的低级函数。 |
|
别名为 |
|
计算一维张量的点积。 |
|
计算一个方阵或一批方阵的对数行列式。 |
|
计算矩阵或矩阵批次的LU分解 |
|
返回使用部分旋转的LU分解从 |
|
将由 |
|
两个张量的矩阵乘积。 |
|
对矩阵 |
|
执行矩阵 |
|
计算豪斯霍尔德矩阵乘积与一般矩阵的矩阵-矩阵乘法。 |
|
2和3的外积。 |
|
计算一个矩阵或一批矩阵的QR分解 |
|
计算矩阵或矩阵批次的奇异值分解 |
|
返回矩阵、矩阵批次或稀疏矩阵的奇异值分解 |
|
对低秩矩阵、此类矩阵的批次或稀疏矩阵执行线性主成分分析(PCA)。 |
|
找到对称正定广义特征值问题的k个最大(或最小)特征值及其对应的特征向量,使用无矩阵LOBPCG方法。 |
|
别名为 |
|
计算沿 |
|
累计计算梯形法则沿 |
|
使用一个平方的上三角或下三角可逆矩阵 和多个右侧项 解决方程组。 |
|
计算两个一维向量沿一个维度的点积。 |
逐元素操作¶
警告
此API处于测试阶段,未来可能会有变动。 不支持前向模式自动微分。
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
|
将 |
实用工具¶
返回PyTorch是否在编译时使用了_GLIBCXX_USE_CXX11_ABI=1。 |
|
返回对提供的输入张量执行算术运算后将得到的 |
|
根据类型提升文档中描述的PyTorch类型转换规则,确定是否允许类型转换。 |
|
返回具有最小大小和标量类型的 |
|
设置PyTorch操作是否必须使用“确定性”算法。 |
|
如果全局确定性标志已开启,则返回True。 |
|
如果全局确定性标志仅设置为警告,则返回True。 |
|
设置确定性操作的调试模式。 |
|
返回确定性操作的调试模式当前值。 |
|
设置浮点数矩阵乘法的内部精度为float32。 |
|
返回当前的float32矩阵乘法精度值。 |
|
当此标志为 False(默认值)时,某些 PyTorch 警告可能在每个进程中仅出现一次。 |
|
如果全局warn_always标志被打开,则返回True。 |
|
vmap 是向量化映射; |
|
Python的assert语句的一个包装器,该包装器在符号上是可追踪的。 |
符号数字¶
- class torch.SymBool(node)[source]¶
类似于布尔值(包括魔术方法),但将所有操作重定向到包装的节点。这在符号形状工作流程中特别用于符号记录操作。
与常规布尔值不同,常规的布尔运算符会强制添加额外的保护措施,而不是进行符号化评估。相反,请使用位运算符来处理这种情况。
支持SymInt的浮点数类型转换工具。 |
|
支持SymInt的整数类型转换工具。 |
|
支持 SymInt 的 max() 实用工具。 |
|
支持 SymInt 的 max() 实用工具。 |
|
支持SymInt的逻辑否定实用工具。 |
|