torch#
建立日期:2016 年 12 月 23 日 | 最後更新日期:2025 年 7 月 22 日
torch 包包含多維張量的資料結構,並定義了這些張量上的數學運算。此外,它還提供了許多用於高效序列化張量和任意型別的實用工具,以及其他有用的工具。
它有一個 CUDA 對應項,可讓您在計算能力 >= 3.0 的 NVIDIA GPU 上執行張量計算。
張量#
如果 obj 是 PyTorch 張量,則返回 True。 |
|
如果 obj 是 PyTorch 儲存物件,則返回 True。 |
|
如果 |
|
如果 |
|
如果 |
|
如果 |
|
將預設浮點 dtype 設定為 |
|
獲取當前的預設浮點 |
|
將預設 |
|
獲取預設 |
|
|
|
設定列印選項。 |
|
停用 CPU 上的 denormal 浮點數。 |
建立操作#
注意
隨機取樣建立操作列在 隨機取樣 下,包括: torch.rand() torch.rand_like() torch.randn() torch.randn_like() torch.randint() torch.randint_like() torch.randperm() 您也可以使用 torch.empty() 和 原地隨機取樣 方法來建立從更廣泛的分佈中取樣的 torch.Tensor。
透過複製 |
|
使用指定的 |
|
使用指定的 |
|
使用指定的 |
|
使用指定的 2 維塊(在 |
|
使用指定的 2 維塊(在 |
|
將 |
|
將 |
|
使用指定的 |
|
建立一個以記憶體對映檔案為後備的 CPU 張量。 |
|
從 |
|
將外部庫中的張量轉換為 |
|
從實現了 Python 緩衝區協議的物件建立一維 |
|
返回一個填充了標量值 0 的張量,其形狀由可變引數 |
|
返回一個填充了標量值 0 的張量,其大小與 |
|
返回一個填充了標量值 1 的張量,其形狀由可變引數 |
|
返回一個填充了標量值 1 的張量,其大小與 |
|
返回一個大小為 的一維張量,其值在 |
|
返回一個大小為 的一維張量,其值從 |
|
建立一個大小為 |
|
建立一個大小為 |
|
返回一個二維張量,對角線上為 1,其餘為 0。 |
|
返回一個包含未初始化資料的張量。 |
|
返回一個大小與 |
|
建立一個具有指定 |
|
建立一個大小為 |
|
返回一個大小與 |
|
將浮點張量轉換為具有給定縮放和零點的量化張量。 |
|
將浮點張量轉換為具有給定縮放和零點的逐通道量化張量。 |
|
透過對量化張量進行反量化,返回一個fp32張量。 |
|
計算 |
索引、切片、連線、變異操作#
返回共軛且最後兩個維度轉置的張量檢視。 |
|
返回一個包含 |
|
沿著給定維度連線 |
|
|
|
|
|
返回一個具有翻轉共軛位的 |
|
嘗試將張量分割成指定數量的塊。 |
|
根據 |
|
透過水平堆疊 |
|
按順序按深度方向(沿第三個軸)堆疊張量。 |
|
沿由 dim 指定的軸收集值。 |
|
根據 |
|
按水平(列方向)順序堆疊張量。 |
|
參見 |
|
參見 |
|
參見 |
|
返回一個新的張量,該張量使用 |
|
返回一個新的 1D 張量,該張量根據布林掩碼 |
|
將 |
|
|
|
返回一個更窄的 |
|
與 |
|
返回 |
|
返回一個與 |
|
|
|
沿所選維度在給定索引處切片 |
|
|
|
將 |
|
將 |
|
將 |
|
|
|
|
|
沿指定軸對輸入張量執行分段歸約操作。 |
|
將張量分割成塊。 |
|
返回一個張量,其中 |
|
沿新維度連線一系列張量。 |
|
|
|
|
|
期望 |
|
返回一個包含 |
|
在給定 |
|
沿維度 |
|
透過重複 |
|
返回 |
|
移除張量維度。 |
|
將平坦索引張量轉換為座標張量元組,這些元組可以索引到任意指定形狀的張量。 |
|
返回一個新的張量,在指定位置插入一個大小為一的維度。 |
|
根據 |
|
按垂直(行方向)順序堆疊張量。 |
|
根據 |
加速器#
在 PyTorch 倉庫中,我們將“加速器”定義為與 CPU 一起用於加速計算的 torch.device。這些裝置使用非同步執行方案,透過 torch.Stream 和 torch.Event 作為同步的主要方式。我們還假設每個主機上一次只能有一個此類加速器。這使我們可以將當前加速器用作相關概念(例如,固定記憶體、流裝置型別、FSDP 等)的預設裝置。
目前,加速器裝置包括(排名不分先後):“CUDA”、“MTIA”、“XPU”、“MPS”、“HPU”和 PrivateUse1(許多不是 PyTorch 倉庫本身提供的裝置)。
PyTorch 生態系統中的許多工具都使用 fork 來建立子程序(例如,資料載入或內部並行化),因此,儘可能延遲任何會阻止進一步 fork 的操作非常重要。這在這裡尤其重要,因為大多數加速器的初始化都會產生此類影響。實際上,您應該記住,預設情況下,檢查 torch.accelerator.current_accelerator() 是編譯時檢查,因此始終是 fork 安全的。相反,將 check_available=True 標誌傳遞給此函式或呼叫 torch.accelerator.is_available() 通常會阻止後續的 fork。
一些後端提供了一個實驗性的選擇加入選項,以使執行時可用性檢查成為 fork 安全的。例如,在使用 CUDA 裝置時,可以使用 PYTORCH_NVML_BASED_CUDA_CHECK=1。
隨機取樣#
將生成隨機數的種子設定為所有裝置上的非確定性隨機數。 |
|
設定所有裝置上生成隨機數的種子。 |
|
返回生成隨機數的初始種子,作為Python long型別。 |
|
將隨機數生成器狀態作為torch.ByteTensor返回。 |
|
設定隨機數生成器狀態。 |
- torch.default_generator 返回 預設 CPU torch.Generator#
從伯努利分佈中抽取二元隨機數(0 或 1)。 |
|
返回一個張量,其中每行包含從 |
|
返回一個張量,其中包含從具有給定均值和標準差的獨立正態分佈中抽取的隨機數。 |
|
返回一個與 |
|
返回一個張量,其中填充了從區間 上的均勻分佈中抽取的隨機數。 |
|
返回一個大小與 |
|
返回一個張量,其中填充了在 |
|
返回一個形狀與張量 |
|
返回一個張量,其中填充了從均值為 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_()- 從連續均勻分佈中抽樣的數字。
擬隨機取樣#
|
序列化#
將物件儲存到磁碟檔案。 |
|
從檔案載入使用 |
並行性#
返回用於並行化 CPU 操作的執行緒數。 |
|
設定 CPU 上內部並行化使用的執行緒數。 |
|
返回 CPU 上互動並行化使用的執行緒數(例如。 |
|
設定互動並行化使用的執行緒數(例如。 |
區域性停用梯度計算#
上下文管理器 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
停用梯度計算的上下文管理器。 |
|
啟用梯度計算的上下文管理器。 |
|
啟用或停用梯度計算的上下文管理器。 |
|
如果當前啟用了 grad 模式,則返回 True。 |
|
啟用或停用推理模式的上下文管理器。 |
|
如果當前啟用了推理模式,則返回 True。 |
數學運算#
常量#
|
正無窮大浮點數。 |
|
“非數字”浮點值。該值不是合法的數字。 |
逐點操作#
計算 |
|
|
|
計算 |
|
|
|
返回一個新張量,其中包含 |
|
|
|
將 |
|
執行 |
|
執行 |
|
計算給定 |
|
返回一個新張量,其中包含 |
|
|
|
返回一個新張量,其中包含 |
|
|
|
返回一個新張量,其中包含 |
|
|
|
返回一個新張量,其中包含 |
|
|
|
考慮象限的 的逐元素反正切。 |
|
|
|
計算給定輸入張量的按位非。 |
|
計算 |
|
計算 |
|
計算 |
|
計算 |
|
計算 |
|
返回一個新張量,其中包含 |
|
|
|
計算給定 |
|
建立一個新的浮點張量,其幅度來自 |
|
返回一個新張量,其中包含 |
|
返回一個新張量,其中包含 |
|
返回一個新張量,其中 |
|
將輸入 |
|
|
|
|
|
|
|
返回一個新張量,其元素是輸入張量 |
|
|
|
返回一個新的張量,其中 |
|
返回一個新的張量,其中 |
|
|
|
以雙精度計算 |
|
返回一個新張量,其中包含 |
|
應用 C++ 的 std::fmod 入門。 |
|
計算 |
|
將 |
|
使用 二階精確中心差分法 以及邊界處的至少一階或二階估計,估計函式 的梯度。 |
|
返回包含 |
|
將 |
|
對兩個張量 |
|
計算 |
|
返回一個新張量,其中包含 |
|
返回一個新張量,其中包含 |
|
返回一個新張量,其中包含(1 + |
|
返回一個新張量,其中包含 |
|
輸入指數和的對數。 |
|
以2為底的輸入指數和的對數。 |
|
計算給定輸入張量的逐元素邏輯 AND。 |
|
計算給定輸入張量的逐元素邏輯 NOT。 |
|
計算給定輸入張量的逐元素邏輯 OR。 |
|
計算給定輸入張量的逐元素邏輯 XOR。 |
|
給定直角三角形的兩條直角邊,返回其斜邊。 |
|
|
|
將 |
|
|
|
將 |
|
返回一個新張量,其中包含 |
|
|
|
返回 |
|
返回 |
|
計算 |
|
對 4D(NCHW)量化張量應用批次歸一化。 |
|
對由多個輸入平面組成的輸入量化張量應用 1D 最大池化。 |
|
對由多個輸入平面組成的輸入量化張量應用 2D 最大池化。 |
|
返回一個新張量,其中 |
|
返回包含 |
|
返回一個新張量,其中包含 |
|
計算 Python 的模運算入門。 |
|
將 |
|
返回一個新張量,其中包含 |
|
返回一個新張量,其中包含 |
|
此函式是 torch.sign() 對複數張量的擴充套件。 |
|
測試 |
|
返回一個新張量,其中包含 |
|
|
|
返回一個新張量,其中包含 |
|
返回一個新張量,其中包含 |
|
返回一個新張量,其中包含 |
|
從 |
|
|
|
返回一個新張量,其中包含 |
|
返回一個新張量,其元素是 |
|
|
|
返回一個新張量,其中包含 |
|
歸約操作#
返回 |
|
返回扁平張量或沿某一維度的最小值的索引 |
|
在給定維度 |
|
在給定維度 |
|
計算 |
|
測試 |
|
測試 |
|
返回 |
|
返回 |
|
返回 ( |
|
返回給定維度 |
|
計算指定維度上所有 非 NaN 元素的平均值。 |
|
返回 |
|
返回 |
|
返回一個命名元組 |
|
返回給定張量的矩陣範數或向量範數。 |
|
返回所有元素的和,將非數字 (NaN) 視為零。 |
|
返回 |
|
計算 |
|
這是 |
|
計算指定維度 |
|
計算指定維度 |
|
返回 |
|
返回輸入張量的唯一元素。 |
|
從每個連續的等效元素組中刪除除第一個元素之外的所有元素。 |
|
計算指定維度 |
|
計算指定維度 |
|
計算給定維度 |
|
返回 |
比較運算子#
此函式檢查 |
|
根據值按升序返回沿給定維度排序張量的索引。 |
|
計算逐元素相等 |
|
如果兩個張量具有相同的大小和元素,則為 |
|
逐元素計算 。 |
|
|
|
逐元素計算 。 |
|
|
|
返回一個新的布林元素張量,表示 |
|
返回一個新的布林元素張量,表示每個元素是否是 有限的。 |
|
測試 |
|
測試 |
|
測試 |
|
測試 |
|
返回一個新的布林元素張量,表示 |
|
返回一個新的布林元素張量,表示 |
|
返回一個命名元組 |
|
逐元素計算 。 |
|
|
|
逐元素計算 。 |
|
|
|
計算 |
|
計算 |
|
計算 |
|
計算 |
|
逐元素計算 。 |
|
|
|
沿給定維度按值升序對 |
|
返回給定 |
|
沿第一維度對 |
頻譜運算#
短時傅立葉變換 (STFT)。 |
|
逆短時傅立葉變換。 |
|
Bartlett 窗函式。 |
|
Blackman 窗函式。 |
|
Hamming 窗函式。 |
|
Hann 窗函式。 |
|
計算具有視窗長度 |
其他運算#
返回每個輸入張量的一維檢視,其中零維度。 |
|
返回每個輸入張量的二維檢視,其中零維度。 |
|
返回每個輸入張量的三維檢視,其中零維度。 |
|
計算非負整數陣列中每個值的頻率。 |
|
從提供的張量建立塊對角矩陣。 |
|
根據 廣播語義 廣播給定的張量。 |
|
將 |
|
與 |
|
返回 |
|
對給定的張量序列進行笛卡爾積。 |
|
計算兩個行向量集合之間每對向量的 p-範數距離(批處理)。 |
|
返回 |
|
計算給定張量長度為 的組合。 |
|
估計變數的皮爾遜積矩相關係數矩陣,變數由 |
|
估計變數的協方差矩陣,變數由 |
|
返回 |
|
返回一個命名元組 |
|
返回一個命名元組 |
|
返回 |
|
返回 |
|
|
|
建立一個張量,其指定的 2D 平面的對角線(由 |
|
|
|
返回 |
|
計算沿給定維度的 n 階前向差分。 |
|
使用基於愛因斯坦求和約定的符號,對輸入 |
|
透過將 |
|
沿給定軸 |
|
左右翻轉張量,返回一個新張量。 |
|
上下翻轉張量,返回一個新張量。 |
|
計算 |
|
將 n 維張量在由 |
|
計算 |
|
計算張量的直方圖。 |
|
計算張量中值的直方圖。 |
|
計算張量中值的多維直方圖。 |
|
建立由 attr:tensors 中一維輸入指定的座標網格。 |
|
計算 |
|
返回 |
|
返回一個連續的展平張量。 |
|
返回一個張量,其中 |
|
重複張量的元素。 |
|
沿給定維度(們)滾動 |
|
從 |
|
返回 |
|
返回輸入 2D 矩陣對角線元素的和。 |
|
返回矩陣(2D 張量)或矩陣批次的下三角部分 |
|
返回 |
|
返回矩陣(2D 張量)或矩陣批次的上三角部分 |
|
返回 |
|
將輸入張量的某個維度擴充套件到多個維度。 |
|
生成 Vandermonde 矩陣。 |
|
返回 |
|
返回 |
|
如果 |
|
如果 |
BLAS 和 LAPACK 運算#
執行儲存在 |
|
執行 |
|
執行 |
|
計算向量 |
|
執行 |
|
執行儲存在 |
|
返回 個 2D 張量的矩陣乘積。 |
|
計算對稱正定矩陣 或對稱正定矩陣批次的喬里斯基分解。 |
|
在已知其喬里斯基分解的情況下,計算複數厄米或實數對稱正定矩陣的逆。 |
|
在已知其喬里斯基分解的情況下,計算具有複數厄米或實數對稱正定左側的線性方程組的解。 |
|
計算兩個一維張量的點積。 |
|
這是一個直接呼叫 LAPACK geqrf 的低階函式。 |
|
|
|
計算一維張量的點積。 |
|
|
|
|
|
計算方陣或方陣批次的對數行列式。 |
|
計算矩陣或矩陣批次 |
|
使用 |
|
將 |
|
兩個張量的矩陣乘積。 |
|
執行 |
|
執行 |
|
計算豪斯霍爾德矩陣乘積與一般矩陣的矩陣-矩陣乘積。 |
|
|
|
|
|
計算矩陣或矩陣批次 |
|
計算矩陣或矩陣批次 |
|
返回矩陣、矩陣批次或稀疏矩陣 的奇異值分解 |
|
對低秩矩陣、此類矩陣的批次或稀疏矩陣執行線性主成分分析 (PCA)。 |
|
使用無矩陣 LOBPCG 方法查詢對稱正定廣義特徵值問題的前 k 個最大(或最小)特徵值及其對應的特徵向量。 |
|
|
|
沿 |
|
沿 |
|
求解具有方陣上下三角可逆矩陣 和多個右側項 的方程組。 |
|
計算兩個一維向量沿一個維度的點積。 |
Foreach 運算#
警告
此 API 處於 beta 階段,未來可能有所更改。不支援前向模式 AD。
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
|
將 |
工具#
返回 PyTorch 是否使用 _GLIBCXX_USE_CXX11_ABI=1 構建。 |
|
返回在對提供的輸入張量執行算術運算時將產生的結果 |
|
根據 PyTorch 型別提升 文件 中描述的型別提升規則,確定是否允許型別轉換。 |
|
返回大小和標量型別最小的 |
|
設定 PyTorch 運算是否必須使用“確定性”演算法。 |
|
如果全域性確定性標誌已開啟,則返回 True。 |
|
如果全域性確定性標誌設定為僅警告,則返回 True。 |
|
設定確定性運算的除錯模式。 |
|
返回確定性運算除錯模式的當前值。 |
|
設定 float32 矩陣乘法的內部精度。 |
|
返回 float32 矩陣乘法精度的當前值。 |
|
當此標誌為 False(預設)時,某些 PyTorch 警告可能僅在每個程序中顯示一次。 |
|
返回與給定裝置關聯的模組(例如,torch.device('cuda')、"mtia:0"、"xpu" 等)。 |
|
如果全域性 warn_always 標誌已開啟,則返回 True。 |
|
vmap 是向量化對映; |
|
Python assert 的一個包裝器,它是符號可跟蹤的。 |
符號數#
運算元標籤#
- class torch.Tag#
成員
core
cudagraph_unsafe
data_dependent_output
dynamic_output_shape
flexible_layout
generated
inplace_view
maybe_aliasing_or_mutating
needs_contiguous_strides
needs_exact_strides
needs_fixed_stride_order
nondeterministic_bitwise
nondeterministic_seeded
pointwise
pt2_compliant_tag
view_copy
- property name#