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.
可用的上取樣模式包括:nearest、linear(僅限 3D)、bilinear、bicubic(僅限 4D)、trilinear(僅限 5D)。
- 引數
input (Tensor) – 輸入張量
size (int 或 Tuple[int] 或 Tuple[int, int] 或 Tuple[int, int, int]) – 輸出的空間大小。
scale_factor (float 或 Tuple[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時,線性插值模式(linear、bilinear 和 trilinear)不會按比例對齊輸出和輸入畫素,因此輸出值可能取決於輸入大小。這是 0.3.1 版本之前這些模式的預設行為。此後,預設行為為align_corners = False。有關此如何影響輸出的具體示例,請參閱Upsample。