捷徑

torch.nn.functional.interpolate

torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None, recompute_scale_factor=None, antialias=False)[原始碼][原始碼]

對輸入進行降/升採樣。

張量會內插到給定的 sizescale_factor

用於內插的演算法由 mode 決定。

目前支援時間、空間和體積取樣,即預期的輸入形狀為 3-D、4-D 或 5-D。

輸入維度以以下形式解釋:mini-batch x 通道 x [可選深度] x [可選高度] x 寬度

可用於調整大小的模式有:nearestlinear (僅限 3D)、bilinearbicubic (僅限 4D)、trilinear (僅限 5D)、areanearest-exact

參數
  • input (Tensor) – 輸入張量

  • size (intTuple[int] 或 Tuple[int, int] 或 Tuple[int, int, int]) – 輸出空間大小。

  • scale_factor (floatTuple[float]) – 空間大小的倍數。如果 scale_factor 是一個元組,則其長度必須與空間維度的數量相符;input.dim() - 2

  • mode (str) – 用於升採樣的演算法:'nearest' | 'linear' | 'bilinear' | 'bicubic' | 'trilinear' | 'area' | 'nearest-exact'。預設值:'nearest'

  • align_corners (bool, optional) – 在幾何上,我們將輸入和輸出的像素視為正方形而不是點。如果設定為 True,則輸入和輸出張量會通過其角點像素的中心點對齊,從而保留角點像素的值。如果設定為 False,則輸入和輸出張量會通過其角點像素的角點對齊,並且內插使用邊緣值填充來處理越界值,從而使此操作在 scale_factor 保持不變時獨立於輸入大小。這僅在 mode'linear''bilinear''bicubic''trilinear' 時有效。預設值:False

  • recompute_scale_factor (bool, optional) – 重新計算用於內插計算的 scale_factor。如果 recompute_scale_factorTrue,則必須傳入 scale_factor,並且 scale_factor 用於計算輸出 size。計算出的輸出 size 將用於推斷內插的新比例。請注意,當 scale_factor 是浮點數時,由於捨入和精度問題,它可能與重新計算的 scale_factor 不同。如果 recompute_scale_factorFalse,則 sizescale_factor 將直接用於內插。預設值:None

  • antialias (bool, optional) – 應用反鋸齒的標誌。預設值:False。將反鋸齒選項與 align_corners=False 一起使用,內插結果將與 Pillow 下採樣操作的結果相符。支援的模式:'bilinear''bicubic'

回傳類型

Tensor

注意

使用 mode='bicubic',可能會導致過衝,換句話說,它可能會產生負值或大於 255 的影像值。如果您想在顯示影像時減少過衝,請顯式呼叫 result.clamp(min=0, max=255)

注意

模式 mode='nearest-exact' 與 Scikit-Image 和 PIL 最近鄰內插演算法相符,並修復了 mode='nearest' 的已知問題。引入此模式是為了保持向後相容性。模式 mode='nearest' 與有錯誤的 OpenCV INTER_NEAREST 內插演算法相符。

注意

當使用模式 ['linear', 'bilinear', 'bicubic', 'trilinear', 'area'] 時,CUDA 上的 float16 dtype 的梯度在升採樣操作中可能不準確。 有關更多詳細信息,請參閱 issue#104157 中的討論。

注意

當在 CUDA 裝置上給定張量時,此操作可能會產生非確定性的梯度。 有關更多信息,請參閱 可再現性

文件

存取 PyTorch 的綜合開發人員文件

檢視文件

教學

獲取針對初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並取得您的問題解答

檢視資源