評價此頁

torch.nn.functional.upsample#

torch.nn.functional.upsample(input, size=None, scale_factor=None, mode='nearest', align_corners=None)[原始碼]#

對輸入進行上取樣。

提供的張量將被上取樣到給定的 size 或給定的 scale_factor

警告

此函式已棄用,推薦使用 torch.nn.functional.interpolate()。這等效於 nn.functional.interpolate(...)

注意

此操作在使用 CUDA 裝置上的張量時可能會產生非確定性梯度。有關更多資訊,請參閱 可復現性

用於上取樣的演算法由 mode 確定。

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

The input dimensions are interpreted in the form: mini-batch x channels x [optional depth] x [optional height] x width.

可用的上取樣模式包括:nearestlinear(僅限 3D)、bilinearbicubic(僅限 4D)、trilinear(僅限 5D)。

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

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

  • scale_factor (floatTuple[float]) – 空間尺寸的乘數。如果為元組,則必須與輸入大小匹配。

  • mode (str) – 用於上取樣的演算法:'nearest' | 'linear' | 'bilinear' | 'bicubic' | 'trilinear'。預設為:'nearest'

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

注意

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

警告

align_corners = True 時,線性插值模式(linearbilineartrilinear)不會按比例對齊輸出和輸入畫素,因此輸出值可能取決於輸入大小。這是 0.3.1 版本之前這些模式的預設行為。此後,預設行為為 align_corners = False。有關此如何影響輸出的具體示例,請參閱 Upsample