4K+ 次瀏覽
要裁剪影像中心,我們使用 CenterCrop()。它是 torchvision.transforms 模組提供的眾多變換之一。此模組包含許多可用於對影像資料進行操作的重要變換。CenterCrop() 變換接受 PIL 和張量影像。張量影像是一個形狀為 [C, H, W] 的 PyTorch 張量,其中 C 是通道數,H 是影像高度,W 是影像寬度。此變換還接受一批張量影像。一批張量影像是一個形狀為 [B, C, H, W] 的張量。B 是… 閱讀更多
6K+ 次瀏覽
要將帶有梯度的 Torch 張量轉換為 NumPy 陣列,首先我們必須將張量從當前計算圖中分離。為此,我們使用 Tensor.detach() 操作。此操作將張量從當前計算圖中分離。現在我們無法計算相對於此張量的梯度。在 detach() 操作之後,我們使用 .numpy() 方法將其轉換為 NumPy 陣列。如果在 GPU 上定義了 requires_grad=True 的張量,則要將此張量轉換為 NumPy 陣列,我們必須執行一個額外的步驟。首先,我們必須將張量移動到… 閱讀更多
7K+ 次瀏覽
要檢查物件是否是張量,我們可以使用 torch.is_tensor() 方法。如果輸入是張量,則返回 True;否則返回 False。語法 torch.is_tensor(input) 引數 input – 要檢查的物件,判斷其是否是張量。輸出 如果輸入是張量,則返回 True;否則返回 False。步驟 匯入所需的庫。所需的庫是 torch。定義張量或其他物件。使用 torch.is_tensor(input) 檢查建立的物件是否是張量。顯示結果。示例 1 # 匯入所需的庫 import torch # 建立物件 x x = torch.rand(4) print(x) # 檢查上述物件是否是張量… 閱讀更多
使用 "with torch.no_grad()" 就像一個迴圈,其中迴圈內的每個張量都將 requires_grad 設定為 False。這意味著當前與當前計算圖附加的任何具有梯度的張量現在都與當前圖分離。我們無法再計算相對於此張量的梯度。張量與當前圖分離,直到它在迴圈內。一旦它不在迴圈內,如果張量是使用梯度定義的,它將再次附加到當前圖。讓我們來看幾個例子,以便更好地… 閱讀更多
3K+ 次瀏覽
backward() 方法用於在神經網路的反向傳播過程中計算梯度。執行此方法時計算梯度。這些梯度儲存在各自的變數中。計算這些變數的梯度,並使用 .grad 訪問梯度。如果我們不呼叫 backward() 方法來計算梯度,則不會計算梯度。而且,如果我們使用 .grad 訪問梯度,則結果為 None。讓我們來看幾個例子來演示它的工作原理。示例 1 在此示例中,我們嘗試在不呼叫 backward() 方法的情況下訪問梯度。我們注意到… 閱讀更多
2K+ 次瀏覽
連續張量是一個其元素以連續順序儲存的張量,元素之間沒有任何空隙。最初建立的張量始終是連續張量。張量可以以連續的方式檢視不同的維度。張量的轉置會建立一個非連續順序的原始張量的檢視。張量的轉置是非連續的。語法 Tensor.is_contiguous() 如果張量是連續的,則返回 True;否則返回 False。讓我們來看幾個例子來演示如何使用此函式來檢查張量是連續的還是非連續的。示例 1 # 匯入 torch 庫 import torch … 閱讀更多
要轉置張量,我們需要轉置兩個維度。如果張量是 0 維或 1 維張量,則張量的轉置與其自身相同。對於 2 維張量,轉置使用兩個維度 0 和 1 計算,即 transpose(input, 0, 1)。語法 對於標量、向量或矩陣的轉置,我們可以應用下面定義的第一個語法。對於任何維度的張量,我們可以應用第二個語法。對於
25K+ 次瀏覽
可以在 CPU 上定義的 torch 張量可以移動到 GPU,反之亦然。對於高維張量計算,GPU 利用平行計算的能力來減少計算時間。諸如影像之類的二維張量計算密集型,如果在 CPU 上執行則需要花費太多時間。因此,我們需要將此類張量移動到 GPU。語法 要將 torch 張量從 CPU 移動到 GPU,使用以下語法:Tensor.to("cuda:0") 或 Tensor.to(cuda) 以及 Tensor.cuda() 要將 torch 張量從 GPU 移動到 CPU,使用以下語法:Tensor.to("cpu") 以及 Tensor.cpu() 讓我們來看幾個例子來演示如何… 閱讀更多
1K+ 次瀏覽
可以使用 torch.linalg.matrix_rank() 獲取矩陣的秩。它將矩陣或一批矩陣作為輸入,並返回包含矩陣秩值的張量。torch.linalg 模組為我們提供了許多線性代數運算。語法 torch.linalg.matrix_rank(input) 其中 input 是 2D 張量/矩陣或一批矩陣。步驟 我們可以使用以下步驟來獲取矩陣或一批矩陣的秩:匯入 torch 庫。確保你已安裝它。import torch 建立一個 2D 張量/矩陣或一批矩陣並列印它。t = torch.tensor([[1., 2., 3.], [4., 5., 6.]]) print("Tensor:", t) 計算秩… 閱讀更多
28K+ 次瀏覽
可以使用 torch.nn.functional 模組提供的 normalize() 函式來歸一化 PyTorch 中的張量。這是一個非線性啟用函式。它對給定張量在指定維度上執行 Lp 歸一化。它返回原始張量元素的歸一化值的張量。可以對 1D 張量在維度 0 上進行歸一化,而可以對 2D 張量在維度 0 和 1 上進行歸一化,即列向或行向歸一化。可以對 n 維張量在維度 (0, 1, 2, ..., n-1) 上進行歸一化。語法 torch.nn.functional.normalize(input, p=2.0, dim = 1) 引數 Input – 輸入張量 p – 範數公式中的冪(指數)值 dim – 進行歸一化的維度… 閱讀更多